TreeATE测试组件和界面插件开发指南

本文介绍TreeATE平台下测试组件与界面插件的开发方法,包括基于QT开发测试组件的具体步骤,以及如何定义导出接口、实现接口等关键环节。同时,文章还阐述了界面插件的作用及开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是TreeATE测试组件

基于TreeATE平台特定接口,专为上层测试脚本提供服务的组件称为TreeATE测试组件。测试组件通常以DLL文件形式存在。当然大家可参照样例中js或py后缀的文件作为组件,这些也是为了某些测试需要自定义的测试组件,但本文不作描述。
一般控制某个特定的仪器或产品时,可以将该部分分装成测试组件。以下就以源代码中Plugins/TA_MsgBox组件为例,介绍如何通过QT开发TreeATE测试组件。

新建项目工程

打开QT Creator,选择“文件”->“新建文件或项目”菜单,显示对话框。在这里插入图片描述
在该对话框的“项目”中选择“Library”->“C++库”,再下一步选择“共享库”,并设置好测试组件名称(请根据实际情况定义测试组件名称),本样例的名称为TA_MsgBox。点击“下一步”直到创建测试组件工程。

定义导出接口

仍然以TA_MsgBox为例,打开头文件ta_msgbox.h

///
/// @brief         common of the MessageBox
/// @author        David Yin  2018-12 willage.yin@163.com
///
/// @license       GNU LGPL v3
///
/// Distributed under the GNU GPL v3 License
/// (See accompanying file LICENSE or copy at
/// http://www.gnu.org/licenses/gpl.html)
///

#include <QObject>
extern "C" TA_MSGBOXSHARED_EXPORT void* CreateDeviceInst(const char *strPara);
class TA_MSGBOXSHARED_EXPORT TA_MsgBox : public QObject
{
    Q_OBJECT
public:
    TA_MsgBox();
    
public slots:
    bool BandObj(const QString& obj);
    QString MsgBox(const QString& strPic, const QString& strMsg, const int type, const int mSec);
    int AsyncMsgBox(const QString& strPic, const QString& strMsg, const int type, const int mSec);
    QString CloseAsyncMsgBox(int nMsgBoxId);

protected:
    QString cmdProcess(const QString& strCmd, int mSec);

private:
    QString m_strObj;
    QString m_strLstErr;
};

#endif // TA_MSGBOX_H

定义测试组件接口有以下几点需要注意

  • 其中上面代码中的TA_MSGBOXSHARED_EXPORT为QT Creator自动添加的导出宏定义。实际你自己创建测试组件名称,例如xxx就是测试组件名称,那么xxxSHARED_EXPORT就是自动生成的导出定义。
  • TA_MsgBox类需要继承QObject
  • 需要定义统一的函数接口 CreateDeviceInst(const char *strPara); 注意为C接口,留意前缀:extern “C”
  • 如果需要测试脚本能够调用到的函数,如同上面代码所示,请在导出函数前加上public slots关键字

实现接口

打开源文件ta_msgbox.cpp,添加CreateDeviceInst接口代码。在CreateDeviceInst接口中返回创建TA_MsgBox的实例。

void* CreateDeviceInst(const char *strPara)
{
    Q_UNUSED(strPara)
    return new TA_MsgBox();
}

注:new生成的对象实例将由TreeATE平台管理和释放。
其他函数接口实现参见TA_MsgBox源代码文件ta_msgbox.cpp。
以上仅以TA_MsgBox为例描述了测试组件开发方法,请根据实际测试需要开发自己的测试组件函数接口。

构建测试组件

TreeATE需要使用Release构建模式,请选择Release构建模式生成dll文件,最后参见TreeATE Dev开发指南导入测试组件即可。

什么是TreeATE界面插件

界面插件主要解决特定情况下的人机交互,例如TreeATE自带的GUI_TA_MsgBox对话框操作提示。TreeATE界面插件主要运行在TreeATE界面进程内,与后台测试引擎TestEngine是不同的进程。后台测试程序需要调用界面插件时,需要借助TA_MsgBox的以下2个接口调用。

  • BandObj:绑定界面对象
  • GuiCmdProcess:处理界面事务

样例:
假设MyVideo.dll是自定义的TreeATE界面插件,作用是显示特定网址的视频。在tpx文件内有一个myvideo对象的界面插件,如下图所示。
在这里插入图片描述我们定义了一个专为MyVideo界面插件访问的测试组件对象myv,可复用TA_MsgBox测试组件。
测试组件
测试脚本也非常简单,如下:

function setup_testdemo()
{
	tm.BandObj("msg");
	myv.BandObj("myvideo");	// 绑定了前面定义的界面插件对象myvideo
	// ...
}
function test_test1()
{
	// 界面将显示地址为http://www.abcdef.com/x.mp4的视频窗口
	myv.GuiCmdProcess("showVideo('http://www.abcdef.com/x.mp4')", 200); // 200毫秒内得到执行
	// ...

基于TreeATE平台开发自动化测试程序,不推荐做界面扩展,但实在需要特定的界面自定义扩展,TreeATE也是支持的。

如何开发自定义的TreeATE界面插件

与测试组件类似,但界面插件接口为CreateGuiInst,例如源代码中的GUI_TA_MsgBox插件。

extern "C" GUI_TA_MSGBOXSHARED_EXPORT void* CreateGuiInst(const void *strPara);

在tpx文件中配置好界面插件

打开TreeATE Dev,找到tpx文件,如上面的样例新增界面插件即可,详见TreeATE Dev开发指南。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值