动车组自动报站功能测试方法

2023-09-27 08:21左登超
计算机测量与控制 2023年9期
关键词:测试用例字段端口

左登超

(中车青岛四方车辆研究所有限公司,山东 青岛 266031)

0 引言

动车组旅客信息系统根据列车的实时GPS坐标,速度、门状态信息,在列车即将到站、列车到站停稳、列车起步离站,三个关键时刻进行语音和文本的自动播报,用于向乘客展示列车的运行情况。其中列车运行的线路信息、站点信息、报站语音信息和报站文本信息,预存在数据库中,列车在行驶过程中实时从数据库中读取相关信息,实现自动报站功能[1]。

当完成报站逻辑功能开发或者修改、数据库新增车次报站信息或者修改信息时,均需要对列车报站功能进行验证,保证列车的正常运营[2]。

目前动车组旅客信息系统自动报站逻辑的测试方法较少,传统的测试方法为选择需要验证的车次,将修改后的软件或者数据库更新至动车组旅客信息系统控制器内。测试人员添乘跟车,在列车运行过程中对每一站的三个关键时刻,观察验证对应的语音和文字播报是否与预期一致,从而完成本车次的报站逻辑验证工作[3]。这种测试方法存在如下缺陷:

需要在列车实际运行过程中才能验证,由于现场实验资源条件有限,有时安排不了列车进行验证,导致报站功能验证工作延后[4];

在验证过程中,当某一站点的报站功能出现问题时,本站的报站时机已经过去,从而只能记录问题,不能根据问题进行对应缺陷的修改,事后可能不能全面进行修复,导致仍然存在缺陷[5];

在列车载客运营过程中测试报站逻辑,可能导致某站播报错误,引起乘客下错站的运营事故,影响恶劣;

当需要验证的车次较多时,加上车次站点较多时,依靠测试人员现场跟车的测试方法,无法充分验证[6];

当软件或者数据库变更后,需要重复进行现场测试,现场测试的方法回归性差,并且费时费力,无法适应修改,导致仍然会存在缺陷[7];

本文采用GPS模拟软件,模拟列车实时位置,计算列车当前位置与一下站的距离;采用MVB数据收发装置,模拟发送列车开关门信号、列车速度信号,完成以MVB为通讯方式的旅客信息系统自动报站测试,降低了现场环境对测试的限制,测试方法回归测试能力强,复测时无需修改任何陪测内容或者只做少量修改,即可进行报站逻辑测试,提高了测试的灵活性及通用性,为设备的稳定运行提供保障。

1 动车组自动报站原理

1.1 报站功能拓扑结构

动车组报站功能由旅客信息系统完成。旅客信息系统涉及到报站功能的系统拓扑结构如图1所示。

图1 旅客信息系统报站功能拓扑结构

其中系统由旅客信息系统控制器、车厢控制器、车外信息显示器、车内信息显示器、扬声器组成[8]。

旅客信息系统控制器通过MVB总线,获取列车网络系统发送的数据,例如:速度信号、开关门信号;通过GPS天线获取GPS数据,并通过GPS板卡上的RS232串口,将GPS数据传送至旅客信息系统控制器软件[9]。

当旅客信息系统进行报站时,将音频信号传输至UIC568总线,车厢控制器通过UIC568总线获取广播音频信号,经过音频功放放大后驱动本车扬声器进行广播;将车内外信息显示内容通过以太网向车厢控制器发送,车厢控制器将其转换为RS485数据,控制本车车内外信息显示[10]。

1.2 报站功能触发条件

动车组旅客信息系统根据列车的实时GPS坐标,速度、门状态信息,在列车即将到站、列车到站停稳、列车起步离站,三个关键时刻进行语音和文本的自动播报,用于向乘客展示列车的运行情况。

列车运行的线路信息、站点信息、站间距、预报站阈值、站点的GPS坐标值、报站语音信息和报站文本信息,预存在数据库中;列车在行驶过程中实时从数据库中读取相关信息,实现自动报站功能[11]。

预报站:根据当前列车实时GPS坐标值,与下一站点GPS坐标值计算距离,当检测到列车距离下一站小于数据库编辑的阈值时,触发预报站;

到报站:当检测到列车门信号为开,且列车速度小于5 km/h时,触发到报站;

离报站:当到站后,检测到门信号为关,且列车速度大于等于5 km/h,触发离报站;

2 自动报站测试装置硬件设计

根据自动报站原理,测试自动报站逻辑时需要模拟GSP数据、列车开关门信息、列车速度信息。自动报站测试装置如图2所示。

图2 旅客信息系统自动报站逻辑测试装置

图3 GPS模拟软件处理流程

自动报站逻辑测试装置包含:

测试主机,测试主机内运行用例执行软件、GPS模拟软件;

MVB数据收发装置;

自动报站测试装置向外提供MVB接口、RS232接口,用于测试基于MVB网络通讯的动车组旅客信息系统报站逻辑。

测试主机采用X86架构,Win10操作系统,接口包含千兆以太网口、USB接口。测试主机内运行用例执行软件与GPS模拟软件。使用GPS模拟软件,通过USB转RS232线缆与被测设备相连,用来向被测设备发送GPS模拟坐标数据;

MVB数据收发装置通过USB供电,对外提供两路MVB接口,一路RJ45以太网口。装置采用ARM架构,QNX操作系统,运行MVB数据收发软件,一方面接收用例执行软件的测试指令,获取用户设置的速度、开关门信息,另一方面与被测设备以MVB进行通讯,将收取到的速度、开关门信息通过MVB转发给被测设备。

3 自动报站测试装置软件设计

3.1 GPS模拟软件设计

GPS模拟软件用于模拟列车实时位置数据,实现方式如下:

1)GPS模拟软件运行后,初始化与用例执行软件的TCP通讯,准备接收测试人员在用例执行软件中设置的经、纬度数据;由于GPS模拟软件与用例执行软件,运行于同一台设备,故使用回环地址127.0.0.1进行通讯;

2)初始化与被测设备的RS232通讯;

3)当接受到用例执行软件指令时,首先判断指令的正确性,若不正确,则记录错误状态,否则将用例执行软件通过TCP设置的经纬度数据,填充到标准的GPS坐标数据中,向被测设备发送RS232协议的GPS坐标数据;

其中GPS的原始数据以及各字段含义如下:

$GPRMC,014600.00,A,2237.496474,N,11356.089515,E,0.0,225.5,310518,2.3,W,A *23

GPS数据中,涉及到报站的字段为字段2、字段3、字段4、字段5、字段6;其中字段2在组合数据时,默认填写A,即定位成功;由于中国各省市均在东经和北纬区域内,字段4填写N,字段6填写E;字段3和字段5的数值填充为通过TCP通讯接收测试人员在用例执行软件中设置的经、纬度数据。其余字段按照正确的数据格式填写即可,其中校验和在0~12填充完毕后,由GPS模拟软件进行计算,并填充到字段13中[12]。

3.2 MVB数据收发软件设计

MVB数据收发软件,实现方式如下。

3.2.1 初始化MVB数据收发软件运行环境

软件运行时,读取配置文件获取软件运行信息,用于指导软件的运行方式,配置文件内容为如下:

localhost表示本机IP地址,localport表示本机端口号,此信息用于开启TCP服务器,接收测试用例执行软件的用户测试指令;

byteorder与bitorder分别表示字节开端与字节内开端,取值为0表示大开端,取值为1表示小开端;

baenable表示开启或关闭总线管理功能,当被测设备为MVB主设备时,需要设置本装置关闭总线管理功能,取值为0;当被测设备为MVB从设备时,需要设置本装置开启总线管理功能,取值为1。

3.2.2 初始化MVB硬件设备,开启、关闭总线管理功能

MVB数据收发软件在启动后,根据用户配置,开启或者关闭BA功能,即MVB装置作为主设备或者从设备使用,自动完成MVB硬件的初始化过程,从而适配不同被测设备的测试需求。当MVB装置作为主设备时,即开启总线管理功能,程序运行后,需要读取端口信息二进制文件,进行对应端口的调度;端口信息二进制文件存放路径固定在/app目录下,文件名为BA_MVB.bin;在测试前需要根据具体的项目,使用D2000工具生成该二进制文件,并使用FTP文件传输工具,将此文件下载到装置的对应目录中[13];

当MVB测试设备作为从设备时,即配置文件baenable字段配置为0,测试时无需向装置传输端口信息二进制文件,程序在初始化MVB硬件时,不使用二进制文件路径参数[14]。

3.2.3 解析MVB端口配置文件,初始化通讯端口

本软件可以根据不同被测设备的端口信息,进行端口的初始化操作,程序使用的端口信息配置文件如下:

#type port size cycle

sink 110 h 32 64

source 160 h 32 64

每一行表示一个端口的信息;type表示该端口的方向,sink表示装置接收数据方向的端口,source表示装置发送数据方向的端口;port表示端口号,size表示端口的大小,cycle表示端口刷新周期;程序存储端口信息的结构体如下所示:

struct MVBPdData

{

unsigned int port;

unsigned int cycle;

unsigned int size;

uint8_t type[16];

uint8_t data[32];

};

MVB数据收发软件读取端口配置文件后,将配置文件中的每一行信息,分配一个结构体,进行对应字段的记录;调用端口初始化接口,进行端口初始化操作。

3.2.4 解析MVB端口默认值配置文件,初始化端口默认值

软件可以根据不同被测设备的端口信息,进行端口数据的初始化操作。MVB数据收发软件使用的默认值配置文件如下:

@0x113

21 1 Boolean1 1

22 0 Boolean1 1

#0x113

@0x123

21 1 Boolean1 1

22 4 Boolean1 1

#0x123

其中以@开头和#开头的数字,表示端口号的十六进制数,之间的内容为本端口下,默认值信息;

第一列表示字节偏移、第二列表示位偏移、第三列表示数据类型、第四列表示默认值;

MVB数据收发软件处理MVB端口默认值的过程如图4所示。

图4 默认值处理流程

首先打开默认值配置文件,开始读取一行数据,如果该行数据非空且不为#,并且以@开头,则表示读取到一个端口的地址数据,记录该端口的数值port,并且后续读取到的信息为该端口下的数据信息;

如果该行数据非空且不为#,并且不以@开头,则读取该端口下的字节偏移、位偏移、数据类型、默认值,然后根据记录的端口值,寻找端口信息内存地址,并根据记录的信息,设置该内存地址对应的数据;设置完内存地址数据后,循环读取一行数据并处理,直到读取的内容为空,结束。

3.2.5 根据初始化的端口,开启线程进行MVB端口数据收发

MVB数据收发软件在启动后,根据用户配置的端口信息,自动进行MVB数据收发操作,从而适配不同被测设备的测试需求[16]。

在端口初始化时,涉及被测设备的MVB端口信息已经存储到MVBPdData结构体中,数据发送读取主要根据此结构体的信息,将端口数据发出或者存储,处理过程如图5所示。

图5 MVB数据收发处理流程

图6 旅客信息系统报站逻辑测试系统

首先取出一条MVB端口信息MVBPdData,检测其成员变量type,如果为“source”类型,并且到该端口的发送周期,则调用相关接口将端口信息MVBPdData中的数据data发送出去;否则调用相关接口进行数据收取,将收取到的数据存放在端口信息MVBPdData的data中[17]。

3.2.6 接收用户测试指令、解析测试指令、执行测试指令

MVB数据收发软件能够接收用户的测试指令,解析并执行测试指令。MVB数据收发软件在处理用户测试指令方面,首先初始化TCP套接字,并等待测试用例执行软件客户端的连接,当用例执行软件发送指令数据时,MVB数据收发软件收取相关数据,并调用相关接口进行处理与响应[18];

MVB数据收发软件响应工具发送的指令类型有:set指令、sleep指令;

用例执行软件发送set指令的数据区的各字节含义如表4所示。

MVB数据收发软件提取端口号、字节偏移、位偏移、变量类型,在MVBPdData结构体中查询相关的数据信息,如果协议中有重置标志,则将默认值设置到对应数据中,否则将当前值设置到对应的数据中;

用例执行软件发送sleep指令的数据区的各字节的含义如表5所示。

MVB数据收发装置提取字节1的信息,调用相关接口进行对应时间的延时,时间单位为毫秒,即1秒=1 000毫秒;

测试用例执行软件,其实现方式如下:

测试用例执行软件作为向测试人员提供的操作装置或者软件的统一接口,接受测试人员输入的指令,并将指令发送给MVB数据收发装置及GPS模拟软件。测试人员控制经纬度信息指令,在测试用例执行软件中的写法如下:

longitude=2237.496474;

latitude=11356.089515;

其中变量名为固定写法,数值根据不同的站点信息做相应修改;

当测试用例执行软件执行此测试指令时,将如下信息发送给GPS模拟软件:

动作名称 变量名 值;

set longitude 2237.496474 或者set latitude 11356.089515

测试人员根据具体项目使用的MVB协议,编写MVB通讯协议文件,文件内容如表6所示。

测试人员根据待测试的项目,按照上述表格格式整理MVB通讯协议,并将通讯协议导入至用例执行软件,用例执行软件会根据此协议文件生成MVB数据收发装置使用的默认值配置文件、端口配置文件,根据端口配置文件,使用D2000工具生成BA文件。将配置文件及BA文件通过FTP传至MVB数据收发装置,指导MVB数据收发。

4 自动报站逻辑测试实验步骤及结果分析

以中国标准动车组CR400BF旅客信息系统为例进行验证,测试系统的连接方式如下所示。

报站逻辑由旅客信息系统控制器完成。旅客信息系统控制器中具有MVB板卡,GPS板卡。其中MVB板卡为从卡,用于获取列车数据,例如:速度信号、开关门信号;GPS板卡通过GPS天线获取GPS数据,并通过GPS板卡上的RS232串口,将GPS数据传送至旅客信息系统控制器软件[19]。测试时,将动车组旅客信息系统自动报站逻辑测试装置的RS232线缆直接连接至GPS板卡RS232串口,模拟GPS数据[20]。CPU板卡内运行程序,负责读取数据库并结合系统内部设备完成报站功能。

将车次G5线路信息编辑到数据库内:

将各站点GPS坐标信息编辑到数据库内:

将报站文字信息编进数据库内:

数据库中配置的报站文字信息中,以%开头和结尾的字符为通配符;在列车实时运行的过程中,根据当前的列车状态、列车站点车次情况,将%Next%、%Arrived%、%Origination%、%Destination%、%TrainCode%通配符信息,替换为当前列车状态下的前方到站中英文、当前停靠站中英文、列车始发站、终点站中英文、车次号信息,向内外信息显示器发送,进行当前状态下对应信息的显示。

将编辑完的数据库、程序、语音文件传输到旅客信息系统控制器内,完成测试环境中被测设备端的软件环境搭建。

测试环境中,测试设备的搭建步骤如下:

步骤一:结合具体项目,制作MVB通讯协议,将MVB协议导入至测试用例执行软件,生成端口配置文件、默认值配置文件;

步骤二:将配置端口、默认值配置文件导入至MVB数据收发装置内,使用D2000工具,根据端口配置文件生成BA文件,导入MVB数据收发装置内;设置MVB数据收发装置的配置文件如下:

步骤三:编写测试用例;

编写测试用例时,使用GPS模拟数据、速度信号、门信号信息,模拟三个报站阶段。使用如下公式,计算当前列车位置与下一站位置距离,如果小于数据库记录的报站距离,则触发预报站;S=2arcsin

其中:Lat1、Lung1表示A点经纬度,Lat2、Lung2表示B点经纬度;a=Lat1-Lat2为两点纬度之差b=Lung1-Lung2为两点经度之差;6 378.137为地球半径,单位为千米。

测试用例使用的各站点GPS数据如下:

由于第一站只有始发离站,无预报站,模拟预报站条件,需要使用公式计算第2~5站预报站条件GPS坐标位置:编写测试用例:

在测试时,依次从第一条开始,手动执行一条测试用例,观察旅客信息系统是否触发对应站点的报站语音信息与文字信息。各站点对比信息如表14所示。

表1 GPS数据各字段含义说明

表2 软件运行信息配置文件

表3 结构体各字段含义说明

表4 set指令含义说明

表5 sleep指令含义说明

表7 线路信息

表8 GPS坐标信息

表10 MVB通讯协议

表11 软件运行信息配置文件

表12 模拟GPS坐标信息

表13 模拟自动报站测试用例

表14 信息验证

当手动执行测试用例TC-2-1后,观察车内信息显示器是否依次循环显示“列车即将到达济南西站。”、“The train is arriving at JiNanXi.”;扬声器是否播报“济南西预报.wav”音频对应的信息内容,即是否触发旅客信息系统G5车次下的济南西预报站状态;当手动执行测试用例TC-2-2后,观察车内信息显示器是否依次循环显示“列车现在停靠 济南西 站。”、“We are now at JiNanXi.”;扬声器是否播报“济南西到报.wav”音频对应的信息内容,即是否触发旅客信息系统G5车次下的济南西到报站状态;当手动执行TC-2-3后,观察车内信息显示器是否依次循环显示“欢迎乘坐 北京南-上海虹桥 的G5次列车。”、“Welcome aboard the Fu Xing train.Train number:G5.Destination:BeiJingNan-ShangHaiHongQiao.”;“本次列车全列禁烟,禁止携带危险品乘车。”、“No smoking.Dangerous articles prohibited”、“G5 北京南-上海虹桥 下一站 南京南”、“G5 BeiJingNan-ShangHaiHongQiao Next Stop:NanJingNan”;扬声器是否播报“济南西离报.wav”音频对应的信息内容,即是否触发旅客信息系统G5车次下的济南西离报站状态;车外信息显示器在报站过程中是否固定显示G5车次、循环交替显示“北京南-上海虹桥”、“BeiJingNan-ShangHaiHongQiao”;执行测试用例TC-3-1~TC-5-3后,确认信息的方式与测试用例TC-2-1~TC-2-3相同。如果旅客信息系统的播报内容正确,则本车次报站功能测试执行通过。

当需要自动执行报站测试用例时,需要在每条测试用例后,加上延时模块,例如sleep=60000(sleep延时时间单位为毫秒,此处即延时60秒),延时时间根据语音文字播报完的时间进行确定,由测试人员观察旅客信息系统各站点的报站触发情况。

5 结束语

借助动车组自动报站功能测试方法,通过测试主机的GPS模拟软件生成GPS模拟坐标数据传送至待测设备和通过MVB数据收发装置将列车测试数据传送至待测设备,实现了针对不同MVB通讯协议的自动报站逻辑的模拟测试,可以满足大部分动车组的测试需求;测试时在地面实验室进行报站逻辑测试,降低了现场环境对测试的限制;测试方法回归测试能力强,复测时无需修改任何陪测内容或者只做少量修改,即可进行报站逻辑测试,提高了测试的灵活性及通用性,为设备的稳定运行提供保障。

猜你喜欢
测试用例字段端口
图书馆中文图书编目外包数据质量控制分析
一种端口故障的解决方案
基于SmartUnit的安全通信系统单元测试用例自动生成
基于混合遗传算法的回归测试用例集最小化研究
端口阻塞与优先级
初识电脑端口
基于依赖结构的测试用例优先级技术
8端口IO-Link参考设计套件加快开发速度
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述