专家笔记:再谈ETestDEV标准化的测试工装页面开发方法

1

概述

ETestDEV作为一款自动化测试平台开发工具,具有测试环境拓扑描述、测试监控、测试脚本开发、测试数据设计、测试执行数据采集与展示、测试结果分析等功能,基于该开发工具可以完成半实物仿真测试软件的开发与部署。

在前一篇利用ETestDEV开发标准化的测试工装页面的文章中,我们介绍了如何利用带有被测件和测试设备的连接拓扑,通过更换绑定连接拓扑,实现一套测试程序、一套监控页面,分别的对“设备A”和“设备B”进行测试的方法。这一篇作为对前一篇的补充,我们采用另外一种方式,达到与前一篇相同的效果,实现一套测试程序、页面、用例分别对“设备A”和“设备B”的测试。

2

重温上一篇的做法

2.1  需求重温

让我们首先重温一下测试需求,对于如下图所示的连接关系拓扑,“设备A”与“设备B”之间通过RS232接口进行通信,“设备A”发送的报文,自然就是“设备B”需要接收的,“设备B”发送的报文自然也就是“设备A”需要接收的。

图片

“设备A”与“设备B”均是“系统S”的组成部分,为了对系统S中的各个设备进行有效的测试,需要分别对A进行单独测试,也要对B进行单独测试,然后将“设备A”与“设备B”连成“系统S”,进行“系统S”的功能、性能测试等。

之所以要进行“设备A”与“设备B”的分别独立测试,可能的原因包括:

(1)“设备A”、“设备B”由不同的厂家研制,不可能等到集成时再进行测试与试验;

(2)“设备A”或“设备B”逻辑处理均十分复杂,测试与试验需要的触发条件或测试环境均需要有良好的可控性,可以方便地进行各种容错性测试;

(3)“设备A”或“设备B”不仅是“系统S”的组成部分,可能还是“系统T”的组成部分,也就需要分别对“设备A”和“设备B”进行独立验证。

在对“设备A”进行测试时,自然就需要模拟“设备B”向“设备A”发送报文,然后模拟的“设备B”也需要接收“设备A”发出的报文,对其进行解析和判断。

同理,在对“设备B”进行测试时,则需要模拟“设备A”向“设备B”发送报文,然后从模拟的“设备A”也需要接收“设备B”发出的报文,对其进行解析和判断。

2.2  测试环境的描述

ETestDEV作为一款自动化测试平台开发工具,所承担的角色就是作为测试设备,模拟“设备A”或“设备B”,并在模拟设备的基础上,加入故障注入能力和测试处理逻辑。

ETestDEV中测试环境的描述包括了设备、连接拓扑和通信协议。设备目录下可以包含组成系统的所有设备;连接拓扑可以通过设备组成连接拓扑,可以有多个连接拓扑,用于实现对系统中的不同设备进行分别测试。

在上一篇《如何利用ETestDEV制作标准化的测试工装页面》一文中,我们采用分别绘制连接拓扑方法,制作出针对“设备A”和“设备B”的连接拓扑。如下图所示,为“设备B”测试的连接拓扑,在该连接拓扑中“设备B”作为被测设备,“设备A”就作为了仿真测试设备。

图片

同理,对“设备A”进行测试的连接拓扑就需要另外建立,形成如下的连接拓扑,在该连接拓扑中“设备A”作为被测设备,“设备B”则变为了仿真测试设备。

图片

2.3  绑定关系的约束

在ETestDEV 3.0版本中,测试用例、测试程序、页面、连接拓扑之间的绑定关系,如下图所示。

图片

一个UI页面可以绑定多个用例,一个用例只能绑定一个程序,一个程序只能绑定一个连接拓扑。关于UI页面的绑定对应关系,可以得到以下结论:

(1)一个UI页面可以绑定多个用例

(2)一个UI页面可以绑定多个程序

(3)一个UI页面可以绑定多个连接拓扑

关于用例的绑定对应关系,可以得到如下结论:

(1)一个用例只能绑定一个程序

(2)一个用例只能绑定一个连接拓扑

(3)一个用例可以绑定多个UI页面

关于程序的绑定关系,可以得到如下结论:

(1)一个程序只能绑定一个连接拓扑

(2)一个程序可以绑定多个用例

(3)一个程序可以绑定多个UI页面

在分别对“设备B”和“设备A”进行测试时,由于绑定关系的约束,要想使用相同的UI页面完成测试,必然要使用如下如下图所示的连接拓扑绑定关系。

图片

但由于目前在ETestDEV 3.0版本中测试程序对连接拓扑的绑定是静态而非动态的。同时,在连接拓扑中,被测件UUT的通道对于测试程序是不可见的。也就是说对 “设备B”测试的连接拓扑而言,“设备B”并不包含在全局变量devices中,这就为测试程序的通用化带来了障碍。

在上一文中,为了实现匹配的判定,在选择设备的响应函数中,我们遍历环境拓扑中的devices集合,devices集合中包含了当前连接拓扑中的全部测试设备描述对象,但不包含被测设备对象,因此如果将被测设备设置为当前连接拓扑中的测试设备时,自然是无法在devices集合中找到的。因此,ETLua的响应函数脚本,我们只能使用如下程序段:

图片

注释掉的脚本语句中,不能直接使用被测设备devices.Guidance.TaskManagerRS232,会导致执行器出错。

通过遍历devices,用通道的名称与预制的设备通道名称进行匹配,匹配后将通道赋值给一个全局的通道对象TestDeviceRS232,在程序的所有处理函数中均用这个通道对象进行处理,用这种方法可以实现测试程序与通道对象的松耦合,提高了测试程序的复用和移植能力。

3

又一种做法

在上一篇做法中,我们是采用匹配判定的方法,实现一套UI页面、用例和程序分别对“设备A”和“设备B”进行测试。这种做法一个明显的弊端是,每次都需要重新绑定一下测试程序与对应的连接拓扑,无法支持工装开发后脱离ETestDEV的打包运行。本章我们利用ETestDEV中的虚拟端口资源的功能,另辟蹊径,将绘制的连接拓扑中将全部设备都定义为测试设备,从而实现更为简洁的测试页面与测试程序。

3.1  不含被测设备的连接拓扑

在ETestDEV中建立连接拓扑时,我们将所有设备均作为测试设备,这完全是支持的,如下图所示。   

图片

在该图中,我们看到两个设备均为测试设备,这样我们就可以在测试程序中直接使用ETestDEV中的全局变量devices来访问连接拓扑中的所有设备了,而不用像上一章那样绕道而行了。在下图中的测试程序中,可以直接应用端口

devices.TaskManager.RS232_Guidance

devices.Guidance.RS232_TaskManager

图片

3.2  虚拟端口mocker

在ETestDEV中执行板卡配置,我们会看到如下板卡配置工具,该板卡配置工具中提供了一个模拟器通道,如下图所示:

图片

执行设备自检,会看到ETestDEV所有支持的模拟器通道,包括了AI、AO、DI、DO以及CAN、RS232、RS485、RS422、RS232等。

图片

模拟器通道的存在,使得我们在运行时绑定资源时,可以选择被成为mocker的通道,如下图所示。

图片

在测试程序运行时,必须首先进行测试环境的运行时绑定,否则测试程序执行时将会发生找不到测试设备的错误,如下图所示。

图片

mocker通道的存在,一方面方便了测试程序的调试工作,另一方面也解决了“设备A”与“设备B”分别开展测试时测试资源不足的问题。

3.3  模拟被测件

由于我们采用的连接拓扑中“设备A”与“设备B”均为测试设备,我们需要在运行时绑定连接拓扑中所有用到的通道,用实际的测试资源通道来实现对连接拓扑的支持。但我们知道,作为半实物仿真测试平台,对“设备B”进行测试时,只需要有一个串口RS232连接被测件就可以了,并且现实中我们可能也就只有一个RS232串口通道。但由于我们采用的连接拓扑中,需要具有两个实际的RS232通道,资源的限制可能会使得即使我们使用了上述连接拓扑,由于资源的限制,也导致测试执行器无法工作。mocker通道的存在破除了这种障碍。

在进行测试工装开发时,我们可以将所有的通道都绑定在mocker通道上,并采用模拟程序的方法进行测试工装UI页面与测试程序的调试。我们可以编写测试程序作为模拟程序,如下图所示。

图片

测试程序要作为模拟程序存在,需要配置其为模拟程序,如下图所示,执行右键操作在弹出的菜单中配置所选定的程序为模拟被测件。

图片

在测试程序作为模拟程序时,也需要绑定一个连接拓扑,而在绑定的连接拓扑中,模拟程序则只能使用被测件设备及其通道。因此,我们将采用如下的连接拓扑,作为模拟程序的绑定连接拓扑,该连接拓扑中两个设备均为被测设备。

图片

3.4  运行结果

下图所示为运行结果,以控制台方式运行的是模拟被测件测试程序,以UI页面运行的是测试程序。由测试程序向模拟被测件发送一条报文后,模拟被测件接收后进行响应,向测试程序发送报文。可以看出,被测件模拟程序既可以模拟“设备A”,也可以模拟“设备B”,同样,测试程序也可以既用来测试“设备A”,也用来测试“设备B”,只需要在UI页面中选择相应的测试设备即可。

图片

调试完成后,我们可以将所有的UI页面打包形成测试工装的界面,在UI设计页面中执行打包,会在系统设置的打包目录下形成一个文件夹,该文件夹中包含一个ETestPlay.exe可执行程序,双击执行ETestPlay.exe,则会展示出如下界面。

图片

我们可以对打包形成的文件夹稍作配置,重新绑定相应的实际测试资源,就可以快速完成实际测试工装的部署。

4

结束语

ETesDEV为半实物仿真测试工装的开发提供了许多灵活的选择方案,在开发测试工装时,用户无需具有实际的如RS232、CAN、AO、AI这样的测试资源,通过mocker通道以及被测件模拟,在通用的计算机平台上就可以完成半实物仿真测试工装的开发和调试工作,打包形成的测试工装程序,只需要重新进行简单的绑定配置,就可以跟测试硬件资源进行关联。

ETesDEV作为测试系统集成开发环境,不仅可以支持简单配置快速完成常规测试任务,还能支持通过UI页面与测试程序开发完成复杂的测试任务,形成专业化的测试工装。如何使用好ETesDEV这款集成开发环境,一方面需要ETesDEV自身功能强大外,使用模式的探索和培训也是不容忽视的重要工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值