本发明涉及一种城轨软件测试平台,尤其是涉及一种适用于城轨软件自动化测试的测试脚本设计方法。
背景技术:
城轨软件测试平台主要用于城市轨道交通安全产品的软件测试、子系统测试和系统测试,包括iTC(intelligent Train Control)产品测试、ATS(Automatic Traffic Supervision)产品测试、联锁(Computer-based Interlocking system,CI)产品测试、轨旁安全平台(Trackside Safety Platform,TSP)测试、通用模块(General Module,GM)安全协议测试。
现有测试脚本普遍存在描述复杂难懂、实时性差、无法扩展等问题。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种适用于城轨软件自动化测试的测试脚本设计方法。
本发明的目的可以通过以下技术方案来实现:
一种适用于城轨软件自动化测试的测试脚本设计方法,包括以下步骤:
用于配置各种测试接口的测试环境描述脚本设计;
测试激励数据脚本设计;
测试结果的分析脚本设计;
脚本的时序性和实时性测试。
所述的测试环境描述脚本设计具体为:
步骤S1、描述本地网络信息,关键字段包括编号、IP地址和端口号;
步骤S2、描述远端网络信息,关键字段包括编号、IP地址和端口号;
步骤S3、描述网络通道信息,关键字段包括通道编号、本地网络编号和远端网络编号;
步骤S4、描述本地网络监听信息,关键字段包括编号、对应的本地网络编号和消息回调处理方法;
步骤S5、描述串口通道信息,关键字段包括编号、本段串口号、远端串口号和消息回调处理方法;
步骤S6、描述IO端口信息,关键字段包括编号、IO端口编号和消息回调处理方法;
步骤S7、描述仿真设备信息,关键字段为对应仿真设备具有的功能组件。
所述的步骤S7具体为:
步骤S71、在仿真设备信息描述脚本中,依次添加具有的功能组件,关键字段包括功能组件名称和功能组件对应的配置文件;
步骤S72、若该仿真设备添加了消息组件,则需要在组件配置文件中描述对应的消息格式,关键字段包括消息名称和消息格式描述;
步骤S73、若该仿真设备添加了变量控制组件,则需要在组件配置文件中描述对应的变量,关键字段包括消息名称和变量类型。
所述的测试激励数据脚本设计具体为:
步骤S8、描述仿真设备输出的数据信息,关键字段包括周期号和变量值;仿真设备将网络消息、串口消息和IO状态对被测对象进行激励。
所述的测试结果的分析脚本设计具体为:
步骤S9、描述数据源,关键字段包括数据源的类型和读取方式;
步骤S10、描述数据的格式,关键字段包括名称、数据格式和数据大小;
步骤S11、描述分析规则,采取“@A:B@”去定义,其中2个@是标识符,标明这之间的变量是需要通过诊断数据进行获取;A是数据源,标识数据是从数据源A中获取的;B是该数据源中的对应格式中的字段名;
通过这种描述从测试数据记录中获取该数据的值,进行相关规则的检查和分析。
所述的脚本的时序性和实时性测试具体为:
步骤S12、在测试平台用同源时钟的两块实时嵌入式系统板,标记为A和B;
步骤S13、测试平台初始启动后,A每隔50ms向所有的仿真设备广播UDP时钟同步命令,时钟同步命令中包含了时钟源地址和时间戳,时间戳为从1开始累加的整数;
步骤S14、B收到第一个来自A的时钟同步命令后,开始每个100ms向所有的仿真设备广播UDP时钟命令,时钟同步命令中包含了时钟源地址和时间戳,时间戳为从1开始累加的整数;
步骤S15、仿真设备收到时钟消息后,进行时钟校验,若校验成功则更新本仿真设备的周期值;若校验不成功,则发送错误消息,停止本次用例的执行;
步骤S16、仿真设备成功更新周期值后,根据当前周期值,执行本周期需执行的脚本内容。
所述的步骤S15中仿真设备使用的时钟校验算法如下:
步骤S151、初始化收到A的时钟命令计数ta=0,初始化收到B的时钟命令计数tb=0;
步骤S152、开启网络消息监听任务,并绑定回调函数fa和fb,分别处理来自A和B的时钟命令;
步骤S153、fa的处理为,校验消息中的源地址,若源地址为A,则设置ta为时间戳的值;
步骤S154、fb的处理为,校验消息中的源地址,若源地址为B,则设置tb为时间戳的值,且判断条件tb=2ta+1or tb=2ta-1,若条件满足则,周期校验成功,若不满足则周期校验失败。
与现有技术相比,本发明具有以下优点:
1、易于实现,采取了领域语言的描述方式,测试人员可以从业务的角度去描述测试环境,测试激励和结果分析;
2、时序性和实时性好,测试脚本可以分布式的在每个仿真设备上运行,且测试平台能保证所有仿真设备的时序性和实时性;
3、结果分析脚本可以采取伪代码的方式编写,易于扩展;
具体实施方式
下面结合具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一种测试环境描述脚本,可以配置各种测试接口,包括网络,串口,IO接口,以及仿真设备。测试环境脚本包括:
步骤S1、描述本地网络信息,关键字段为,编号,IP地址,端口号;
步骤S2、描述远端网络信息,关键字段为,编号,IP地址,端口号;
步骤S3、描述网络通道信息,关键字段为,通道编号,本地网络编号,远端网络编号;
步骤S4、描述本地网络监听信息,关键字段为,编号,对应的本地网络编号,消息回调处理方法;
步骤S5、描述串口通道信息,关键字段为,编号,本段串口号,远端串口号,消息回调处理方法;
步骤S6、描述IO端口信息,关键字段为,编号,IO端口编号,消息回调处理方法;
步骤S7、描述仿真设备信息,关键字段为该仿真设备具有的功能组件,及该仿真设备为一些功能组件的集合;
所述的步骤S7具体为:
步骤S71、在仿真设备信息描述脚本中,依次添加具有的功能组件,关键字段为功能组件名称,功能组件对应的配置文件;
步骤S72、若该仿真设备添加了消息组件,则需要在组件配置文件中描述对应的消息格式,关键字段为,消息名称,消息格式描述;
步骤S73、若该仿真设备添加了变量控制组件,则需要在组件配置文件中描述对应的变量,关键字段为,消息名称,变量类型;
测试激励数据脚本包括:
步骤S8、描述仿真设备输出的数据信息,关键字段为周期号,变量值;仿真设备将该信息网络消息,串口消息和IO状态对被测对象进行激励;
测试结果的分析脚本包括:
步骤S9、描述数据源,关键字段为,数据源的类型和读取方式,网络消息或者为本地数据;
步骤S10、描述数据的格式,关键字段为,名称,数据格式,数据大小;
步骤S11、描述分析规则,采取“@A:B@”去定义,其中2个@是标识符,标明这之间的变量是需要通过诊断数据进行获取;A是数据源,标识数据是从数据源A中获取的;B是该数据源中的对应格式中的字段名。通过这种描述可以从测试数据记录中获取该数据的值,进行相关规则的检查和分析;
所述的脚本的时序性和实时性测试具体为:
步骤S12、在测试平台用同源时钟的两块实时嵌入式系统板,标记为A和B;
步骤S13、测试平台初始启动后,A每隔50ms向所有的仿真设备广播UDP时钟同步命令,时钟同步命令中包含了时钟源地址和时间戳,时间戳为从1开始累加的整数;
步骤S14、B收到第一个来自A的时钟同步命令后,开始每个100ms向所有的仿真设备广播UDP时钟命令,时钟同步命令中包含了时钟源地址和时间戳,时间戳为从1开始累加的整数;
步骤S15、仿真设备收到时钟消息后,进行时钟校验,若校验成功则更新本仿真设备的周期值;若校验不成功,则发送错误消息,停止本次用例的执行;
步骤S16、仿真设备成功更新周期值后,根据当前周期值,执行本周期需执行的脚本内容。
所述的步骤S15中仿真设备使用的时钟校验算法如下:
步骤S151、初始化收到A的时钟命令计数ta=0,初始化收到B的时钟命令计数tb=0;
步骤S152、开启网络消息监听任务,并绑定回调函数fa和fb,分别处理来自A和B的时钟命令;
步骤S153、fa的处理为,校验消息中的源地址,若源地址为A,则设置ta为时间戳的值;
步骤S154、fb的处理为,校验消息中的源地址,若源地址为B,则设置tb为时间戳的值,且判断条件tb=2ta+1or tb=2ta-1,若条件满足则,周期校验成功,若不满足则周期校验失败。
本发明具体实现过程如下:
1、网络配置脚本
2、添加UDP服务组件
<Item Ref='udp'ClassName="UDPServer"confile="./setting/simulator/simulator_networks.xml"OnMethod="startServer"
OffMethod="stopServer"ModuleFile=""/>
3、描述消息格式
3、数据激励脚本
3、结果分析脚本
验证车载定位功能的分析脚本示例如下。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。