APP下载

一种基于测试脚本数据实时监控的实现方法

2023-03-28吕睿娟张梅洁胡佳贝

通信电源技术 2023年1期
关键词:发布者测试数据脚本

吕睿娟,张梅洁,胡佳贝

(航空工业西安航空计算技术研究所,陕西 西安 710068)

0 引 言

随着信息技术和计算机科学技术的快速发展,在各个领域中均有相应的软件来帮助人们处理日常的各项业务工作。在某些领域,如航空电子中会要求软件具有较高的可靠性,来保证飞机的运行安全。为了满足用户对软件质量的要求以及对软件的可靠性保证,相应的测试工作必不可少[1]。

软件测试作为软件开发生命周期中独立且重要的阶段,是保证软件质量的关键步骤。针对不同的软件测试要求,测试人员依据测试需求开展测试工作,大多情况下自动化测试技术可提高测试效率[2]。但在使用测试脚本进行自动化测试时,多数测试软件无法向测试人员实时传递测试数据并反馈测试结果只是完成对测试脚本的执行,将测试过程信息保存至日志文件中,在定位问题时需要查看数据量巨大的日志文件进行确认,确定问题的速度较慢。同时,面对一些测试项较多且需测试人员实时监控测试结果的系统软件,需进行复杂且重复的手动操作,非常耗时耗力[3]。

针对自动化测试脚本中的测试数据和测试结果无法实时反馈的问题,本文提出了一种针对测试脚本数据进行实时监控的实现方法。该方法使用Qt框架完成界面设计,实现测试数据的实时监控,使用数据分发服务(Data Distribution Service,DDS)作为通信服务组件完成数据的实时交互。在开展测试工作时,根据测试对象的测试需求编写测试脚本,通过该软件进行测试,完成测试数据、测试结果的实时监控。

1 实时数据监控技术

1.1 实时通信技术

实时通信技术要求传递的数据可即时传送至接收对象或服务对象,传统的实时数据通信以客户/服务器(Client/Server,C/S)模式完成设计,但存在扩展性低、传输效率低等缺陷。为了实现较高的传输性能,保证数据传输的可靠性,对象管理组织(Object Management Group,OMG)在以数据为中心的订阅-发布(Data Centric Publish-Subscribe,DCPS)模型基础上,制定了DDS标准[4]。

在DDS规范中,以DCPS模型为基础,建立了一个以传送数据为主导的发布/订阅(Publish/Subscribe,P/S)服务,发布者和订阅者只需在数据域中获取各自感兴趣的数据,而无需关注该数据由哪个实体进行发布或接收[5]。DDS包含的实体有域参与者(Domain Participant)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber)、数据读者(Data Reader)以及数据写者(Data Writer)[6]。一个域中可以有多个主题,通过数据读者和数据写者进行主题订阅,完成数据分发。

DDS只有在同一域中的各实体才可以完成数据通信。其数据分发的实现流程如下:(1)创建数据类型;(2)创建域,一般使用整型数据来标识;(3)创建域参与者,由域参与者进行后续操作;(4)注册数据类型,该数据类型为步骤(1)中所创建的数据类型;(5)创建主题和主题对象,以便数据读者和数据写者进行订阅;(6)在发布端创建发布者和数据写者,并与主题进行关联,在订阅端创建订阅者、监听器和数据读者,并与主题进行关联。

本文中使用DDS的开源框架Open DDS完成实时通信中数据分发任务的设计与实现。

1.2 数据监控实现技术

数据监控可以理解为数据采集与数据呈现,即对关注的数据信息内容进行收集,并使用一定的方式向用户进行呈现[7]。在本文的设计中,需完成对脚本封装数据内容的展示,因此通过图形用户界面(Graphical User Interface,GUI)为用户提供良好的界面,实现此部分的功能。

为了提供良好的适配性,本文使用Qt框架完成GUI程序的设计。Qt是基于面向对象的框架,易扩展,并支持跨平台,可以实现一次编写到处执行,其提供了丰富的组件满足界面设计需求[8]。基于C++完成开发,可以完成基本的功能处理,满足开发需求。此外,提供了信号和槽的机制进行事件处理,使整个GUI界面具有强大的交互性[9,10]。

2 实时数据监控软件设计与实现

2.1 整体设计与实现

以航空电子信号作为具体的被测对象,使用C++语言进行软件的设计与实现,Qt框架完成界面设计,OpenDDS完成信息的实时交互。

通常情况下,机载嵌入式软件的测试平台包含上位机与下位机。上位机运行测试脚本,通过通信介质向下位机发送测试数据,下位机将其发送给被测设备。本文主要关注上位机实时数据监控软件的设计,该软件的整体设计思路与数据交互如图1所示。

图1 数据监控软件交互

上位机测试软件提供人机交互界面,包括信号数据监控界面和自动化测试功能界面。在脚本执行时,将脚本中的测试数据发送给上位机软件;调用Python接口完成测试功能执行,将测试激励发送至下位机。下位机与被测设备相连,接收上位机的激励,同时向被测设备发送激励,接收测试结果并将测试结果传递给上位机。

2.2 界面设计

在本文中,经过功能划分,软件界面分为2大部分,分别是信号数据监控界面和自动化测试功能界面。

在信号数据监控界面,主要是展示被测设备的信号,包含信号的基本信息,如信号名称、设置值,为满足后续该软件可以针对不同的测试对象实现适配,通过读取相应的界面配置文件确定信号数据监控界面的内容显示。

在自动化测试功能界面中,设计一个进行自动化测试的操作界面,完成测试脚本执行的基本功能。该界面包括以下信息:(1)基本的测试信息,如测试项目、测试时间、测试人员等;(2)测试脚本执行的显示界面,如测试脚本名称、测试脚本的执行状态、执行次数、执行结果以及通过率等;(3)测试脚本的控制指令按钮,如测试用例导入、开始、停止、暂停、测试用例清空以及导出日志等功能按钮。

2.3 实时通信服务设计

在本软件中,实时通信是为了实现脚本中测试数据、上位机软件及下位机之间的数据传输与交互。

在使用DDS实现实时通信时,需要先定义数据类型来完成基本代码框架的构建。本文定义的数据类型包含信号类型、信号传递方向、通道号、内容、操作指令等。同时,根据数据交互需求及DDS的数据通信要求,即数据仅可在同一数据域中进行交互,各个域的发布者与订阅者设计如图2所示。

图2 域及其发布者与订阅者设计

在图2中,上位机实时数据监控软件创建了域10和20,均为订阅者,即订阅主题Topic1和Topic3。域10订阅者完成对测试脚本数据的订阅,域20的订阅者完成对下位机反馈测试结果的订阅。测试脚本执行端调用接口部分创建域10和域30的发布者,域10的发布者关联Topic1,域30的发布者关联Topic2。下位机创建域20的发布者并关联Topic3,创建域30的订阅者订阅Topic2,接收测试激励数据。

2.4 脚本数据解析功能处理

将航空电子信号作为主要测试对象,在大多测试脚本中,信号数据采用十六进制进行存储,针对本文的测试对象,需要将测试脚本中的数据转换为十进制数据,完成界面显示。本文中主要对ARINC429信号、离散量信号以及模拟量信号的解析过程进行说明。

在实际处理中,脚本数据解析过程应与前文设计的DDS实现过程进行交互,共同完成此部分功能。首先根据DDS消息中的参数进行信号类型判断,不同的数据对应不同的解析过程。ARINC429信号中的数据包含正负2种数据,由label号获取数据起始位和终止位完成数据计算。离散量和模拟量由通道号等完成数据位的确定,根据计算规则得到最终数据。完成解析后的数据结果通过DDS发送给上位机软件界面,完成界面显示。

3 软件应用效果

根据第2节所述的设计与实现思路,该软件的界面如图3和图4所示。

图3 信号数据实时监控界面

图4 自动化测试界面

两个功能相结合即可完成测试脚本数据的实时显示。在打开该软件时,先进行设备自检和各项资源(如DDS)的初始化,然后自动化测试界面可进行测试脚本上传,开始自动化测试。步骤为选择待执行的测试脚本,执行脚本开始进行自动化监测。当测试脚本开始运行后,可切换至信号数据监控界面,在此界面根据脚本的自动化执行次序显示当前执行的测试脚本中封装的各项测试数据和该测试项的执行结果。

以上为该软件进行自动化测试并实时显示测试数据的方法,在此过程中用户可以实时查看测试脚本的运行情况、脚本执行结果以及测试数据的详细内容,同时也可生成日志便于问题定位。

4 结 论

本文中提出的基于测试脚本数据实时监控的实现方法,采用Qt框架与DDS作为实现实时监控的技术手段,实现了在执行自动化测试的同时,向测试软件实时发送测试数据,支持测试人员完成对测试数据的实时监控,在提高测试工作效率的同时,为产品质量提供了一定的保证。

猜你喜欢

发布者测试数据脚本
酒驾
安奇奇与小cool 龙(第二回)
新加坡新法规引争议
测试数据管理系统设计与实现
数据库系统shell脚本应用
基于NDN的高效发布/订阅系统设计与实现
快乐假期
广告发布者的著作权审查义务问题研究
基于自适应粒子群优化算法的测试数据扩增方法
加权映射匹配方法的站内搜索引擎设计