APP下载

基于TCP与UDP通讯的设备自动化接口测试方法

2022-12-01左登超

计算机测量与控制 2022年11期
关键词:配置文件链路通讯

左登超

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

0 引言

TCP与UDP以太网通讯在各行各业应用十分广泛。TCP与UDP的通讯种类多且配置灵活,在不同的应用场景下,以太网通讯控制设备的通讯方式不尽相同[1]。为了确保各类以太网控制设备在运行过程中的稳定性,需要在产品投入运行前进行接口测试工作[2]。

针对以太网控制设备的接口测试方法较少,传统的测试方式是将PC机与以太网控制设备相连,利用网络调试工具,向被测设备发送原始数据指令,观察设备的动作是否与预期一致;或者抓取被测设备发出的数据,人工进行数据分析,判断设备的工作情况[3];另一种测试方式是针对不同的设备需求,编写设备测试软件,由测试人员进行手动点击软件相关功能按键进行指令发送,观察设备的动作或者设备回复数据,判断是否达到预期效果[4]。

传统的测试方法完全依赖于人工手动测试,通过组合原始数据指令进行测试并观察结果,效率非常低,且易出错;如果涉及到的以太网通讯种类较多,数据量较大时,使用网络调试工具则不能满足测试的需求[5];开发测试软件,需要按照特定被测设备进行开发;由于软件是新开发的,没有经过实践,软件本身可能存在缺陷,需要经过一段时间的调试才能投入使用,使用过程中也不能确保其功能完全正确,造成测试工作停滞,转而解决调试软件本身的问题[6]。在软件的修改过程中,为了不引起新的错误,测试人员需要进行大量重复测试,而手动测试回归性差,无法适应软件修改需求,导致软件可能存在大量缺陷[7]。借助基于TCP与UDP通讯的设备自动化接口测试方法,根据用户测试指令自动完成以TCP与UDP为通讯方式的控制设备的接口测试,为设备的稳定运行提供保障。

1 自动化接口测试装置结构及原理

基于TCP与UDP通讯的设备自动化接口测试装置如图1所示。装置包含电源板卡、CPU板卡、网口扩展板卡。其中网口扩展板卡有两个M12-4芯以太网口,通过背板连接至CPU,为CPU提供扩展网口;CPU板卡有1个M12-4芯以太网口,系统采用X86架构,Linux操作系统。该设备包含两路测试通道,分别提供3个以太网口进行测试,每个网口IP地址可配置。

图1 自动化接口测试装置

TCP与UDP接口测试装置中运行软件,解析用户定义的通讯链路信息,指导装置与被测设备进行通讯链路的建立;解析用户定义的设备通讯协议信息以及数据收发关系信息,按照被测设备协议规定的数据格式,自动进行数据收发,与被测设备进行数据通讯;与工具软件建立通讯,接收用户录入的接口测试指令,执行接口测试。

2 自动化接口测试装置接口设计

使用自动化接口测试装置,可以对任意基于TCP与UDP通讯的以太网控制设备进行接口测试工作。TCP可以使用服务器或者客户端,支持一对一通讯、一对多通讯、多对一通讯、多对多通讯。UDP可以使用单播或者组播,单播支持一对一通讯、组播支持加入一个或者多个组播组通讯[8]。

2.1 TCP服务器接口设计

装置网口开启一个TCP服务器,接收被测设备一个或者多个TCP客户端的连接,即TCP服务器一对一或一对多通讯[9]。接口示意图如图2所示,每路TCP客户端连接可以在相同或者不同的被测设备上,此处仅指出每路TCP协议链路连接,同下。

图2 TCP服务器一对一、一对多通讯接口

装置网口开启多个TCP服务器,每个TCP服务器接受一个或者多个TCP客户端的连接,即TCP服务器多对一或多对多通讯[10]。接口示意图如图3所示。

图3 TCP服务器多对一、多对多通讯接口

2.2 TCP客户端接口设计

装置网口开启一个TCP客户端,连接被测设备一个或者多个TCP服务器,即TCP客户端一对一或一对多通讯[11]。接口示意图如图4所示。

图4 TCP客户端一对一、一对多通讯接口

装置网口开启多个TCP客户端,连接被测设备一个或者多个TCP服务器,即TCP客户端多对一或多对多通讯[12]。接口示意图如图5所示。

图5 TCP客户端多对一、多对多通讯接口

2.3 UDP单播接口设计

装置网口开启一个或者多个UDP单播,与被测设备进行一对一通讯[13];接口示意图如图6所示。

图6 UDP单播通讯

2.4 UDP组播接口设计

装置网口加入一个或者多个组播组,与被测设备进行通讯[14];接口示意图如图7所示。

图7 UDP组播通讯

2.5 TCP与UDP组合接口设计

装置每路网口均支持TCP服务器、TCP客户端、UDP单播、UDP组播的任意组合,组合接口的设计可以参考2.1~2.4。

1)TCP服务器、TCP客户端组合;

2)TCP服务器、UDP单播组合;

3)TCP服务器、UDP组播组合;

4)TCP客户端、UDP单播组合;

5)TCP客户端、UDP组播组合;

6)UDP单播、UDP组播组合;

7)TCP服务器、TCP客户端、UDP单播组合;

8)TCP服务器、TCP客户端、UDP组播组合;

9)TCP服务器、UDP单播、UDP组播组合;

10)TCP客户端、UDP单播、UDP组播组合;

11)TCP服务器、TCP客户端、UDP单播、UDP组播组合。

3 自动化接口测试装置软件设计

自动化接口测试装置内运行程序,与被测设备进行通讯链路的建立与管理、按照被测设备的通信协议进行数据收发、接收工具软件的测试指令,自动化执行接口测试工作。工作原理如图8所示。

图8 接口自动化测试流程图

1)软件运行后,读取通讯配置文件,获取与被测设备的通讯方式,指导装置与被测设备建立通讯链接。自动化接口测试装置使用的通讯配置文件各字段如表1所示。

2)读取数据配置文件。装置与被测设备链路下的通讯数据由数据配置文件定义,当软件读取到数据标识信息后,在内存中分配该数据的存储信息,一方面自动化接口测试装置根据此内存,进行数据的发送或者存储接收到被测设备发送的对应数据;另一方面接收工具软件发送的测试指令,根据指令中携带的链路名称、数据标识、字节偏移、位偏移信息,进行内存数据的设置与获取。数据配置文件各字段如表2所示。

表1 通讯配置文件字段含义

3)读取数据收发关系配置文件。指导自动化接口测试装置如何发送与被测设备的通讯数据,收发关系配置文件各字段如表3所示;

4)根据通讯配置文件信息,建立与被测设备的通讯并管理通讯过程;

5)针对每一个通讯链路,开启数据收发线程,根据数据配置文件以及收发关系配置文件,开始与被测设备进行数据通讯;

6)初始化与工具软件的TCP通讯,用以接收工具软件发送的测试指令;自动化接口测试装置支持的测试指令种类如表4所示;

设置指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,将对应内存中的数据进行更新,由后台线程自动获取内存数据进行发送,强制指令只能设置装置发送方向的数据[15];

表2 数据配置文件字段含义

表3 收发关系配置文件字段含义

延时指令:工具软件将具体的延时时间发送给自动化接口测试装置,装置接收到该信息后,会延时相应的时间,再处理其他测试指令[16];

心跳指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、累加步长n、累加频率f信息发送给自动化接口测试装置,装置接收到该信息后,以累加频率f,将当前值累加n,向内存中的数据进行更新[17];

表4 测试指令类型说明

上升沿指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、时间t信息发送给自动化接口测试装置,装置接收到该信息后,将对应内存中的数据先设置成0,保持时间t,然后设置为1,由后台线程自动获取内存数据进行发送;

下升沿指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、时间t信息发送给自动化接口测试装置,装置接收到该信息后,将对应内存中的数据先设置成1,保持时间t,然后设置为0,由后台线程自动获取内存数据进行发送[18];

递增指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、最小值、最大值、步长n、频率f信息发送给自动化接口测试装置,装置接收到该信息后,以频率f,将当前值从最小值开始累加,每次累加步长n,直至累加到最大值后保持,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

递减指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、最小值、最大值、步长n、频率f信息发送给自动化接口测试装置,装置接收到该信息后,以频率f,将当前值从最大值开始递减,每次递减步长n,直至递减到最小值后保持,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送[19];

系统时间年指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,从当前系统时间中获取年的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

系统时间月指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,从当前系统时间中获取月的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

系统时间日指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,从当前系统时间中获取日的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

系统时间时指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,每小时从当前系统时间中获取时的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

系统时间分指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,每分钟从当前系统时间中获取分的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

系统时间秒指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,每秒钟从当前系统时间中获取秒的数据,向内存中的数据进行更新,由后台线程自动获取内存数据进行发送[20];

范围内指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移、极大值、极小值信息发送给自动化接口测试装置,装置接收到该信息后,取极大值与极小值范围内的随机数据,向对应内存中的数据进行更新,由后台线程自动获取内存数据进行发送;

获取指令:工具软件将具体链路名称、数据标识、字节偏移、位偏移信息发送给自动化接口测试装置,装置接收到该信息后,从对应内存中取出一次实时数据,然后通过TCP通讯向工具软件发送结果;

7)自动化接口测试装置收到测试指令后,根据指令中携带的链路名称、数据标识、字节偏移、位偏移信息,操作内存数据,从分配的内存中设置或者获取数据;当获取到数据后,向工具软件返回获取到的数据,工具软件根据此数据判断执行是否通过;

4 自动化接口测试实验结果与分析

4.1 自动化接口测试实验步骤

由于自动化接口测试装置可以测试的情况比较多,以TCP服务器一对一通讯为例,即被测设备作为TCP客户端,装置作为TCP服务器,对被测设备进行接口测试,测试系统连接如图9所示。

图9 测试系统连接

测试前需要按照被测设备的要求修改装置的IP地址。通过修改脚本文件即可配置本装置的网口IP地址。IP地址脚本内如下:

#eth1

ifconfig eth1 down

ifconfig eth1 172.30.131.60 netmask 255.255.255.0 up

#eth2

ifconfig eth2 down

ifconfig eth2 172.30.131.61 netmask 255.255.255.0 up

#eth3

ifconfig eth3 down

ifconfig eth3 172.30.131.62 netmask 255.255.255.0 up

eth1、eth2、eth3分别分别对应设备上的三个网口;

被测设备的TCP客户端信息:172.31.41.50,端口8001,与其通讯的TCP服务器信息:IP地址172.31.41.36,端口8000;由装置主动发送1001数据,然后被测设备回复1002数据。

步骤1:通过交换机,将被测设备、工具软件以及设备进行组网连接;

步骤2:按照设备IP地址修改方法,修改脚本文件eth1的IP地址:

#eth1

ifconfig eth1 down

ifconfig eth1 172.31.41.36 netmask 255.255.255.0 up

步骤3:编写通讯配置文件,如表5所示。

表5 通讯配置文件内容

此配置文件供装置使用,由于被测设备作为TCP客户端,需要使用装置模拟与被测设备通讯的TCP服务器;配置文件中,通讯类型填写TCP,通讯方式填写服务器,通讯本方信息填写与被测设备通讯的TCP服务器的地址端口信息,通讯对方信息填写被测设备的信息;

步骤4:编写数据配置文件如表6所示,其中1001数据由接口测试装置主动发出,1002为装置接收被测设备返回的数据;该配置文件供装置和工具软件使用;

表6 数据配置文件内容

步骤5:编写数据收发关系配置文件,文件内容如表7所示。

表7 收发关系配置文件内容

此配置文件供自动化接口测试装置使用,内容描述了装置Ch-1通讯链路下,收取1002的数据,主动发送1001的数据。

步骤6:将上述配置文件通过FTP工具导入设备,并重启接口测试装置;

步骤7:在工具软件中编写测试指令,设置或者获取变量的数据,下发至接口测试装置;

步骤8:工具软件根据设备返回的数据,判断测试是否通过。

4.2 实验结果及分析

在自动化执行完接口测试后,工具软件会将测试结果保存成表格的形式,结果如表8所示。

表8 自动化接口测试结果记录

保存的结果记录中,会记录工具软件每次执行的动作,收取自动化接口测试装置返回的变量名以及对应的实际数据,工具软件可以根据动作中的期望,自动判断测试的结果是否正确,并在测试结论中给出Pass或者Fail,方便测试人员查看测试结果。

5 结束语

借助基于TCP与UDP通讯的设备自动化接口测试方法,能够进行TCP服务器、TCP客户端、UDP单播、UDP组播通以及四种通讯方式任意组合的接口测试;接口测试装置对外提供6个测试网口,IP地址可配置,可以通过数据配置文件以及数据收发关系配置文件,指导自动化接口测试装置的数据收发,使得测试不同被测设备时无需修改代码,提高了测试的灵活性、通用性以及效率,为设备的稳定运行提供保障。

猜你喜欢

配置文件链路通讯
《茶叶通讯》简介
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
《茶叶通讯》简介
一种移动感知的混合FSO/RF 下行链路方案*
天空地一体化网络多中继链路自适应调度技术
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
浅析民航VHF系统射频链路的调整
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片