孟祥振,韩 坤,李桂虎
(中车青岛四方车辆研究所有限公司,山东 青岛 266000)
目前,工业以太网总线已被成功应用于列车网络控制系统中,并逐渐成为列车网络控制系统的主流通信模式[1-3]。如,“复兴号”CR300动车组、北京地铁大兴机场线列车、北京地铁17号线列车和深圳地铁20号线列车等均采用以太网控车,大量运用了车载交换机和采用以太网接口的车载控制器等车载以太网设备。
轨道交通应用工况特殊,其对车载以太网设备功能和性能提出了较高的要求,设备出厂前均需进行例行测试[4]。但目前传统的手动测试方法操作复杂、测试指标单一、测试效率低下,已逐渐无法满足批量车载以太网设备的测试要求,严重限制了生产线的产能;而且,由于测试产品及接口太多,如果使用专用测试仪表,需要配置的仪表数量众多,将导致测试成本急剧增加。
针对上述问题,本文提出一种轨道交通车载以太网设备自动化测试方法,其基于以太网性能分析仪等专用测试仪表,并结合Python自动化测试技术,既降低了测试成本,又能满足车间批量测试需求,具有良好的经济效益。
车载以太网设备分为两类:交换设备和终端设备。交换设备主要包括二层交换机、三层交换机等;终端设备主要指网络、牵引、制动等车载系统的控制器。由于网络设备接口数量较多,测试人员若要完成产品测试,则需要花费较多时间。测试交换机产品时,手动测试原理和方法如图1所示,将测试笔记本计算机1和测试笔记本计算机2的以太网接口配置为同网段的IP地址,利用笔记本计算机1和笔记本计算机2相互执行ping指令。如果能ping通(端对端连通),则接口测试通过;否则,判定为失败。如此遍历所有交换机接口。对于终端设备测试,将测试笔记本计算机与终端设备的以太网接口配置为同网段IP地址,执行ping指令进行测试。按照8编组列车设备数量进行统计,仅交换设备,平均1列车需要测试240个以太网接口,每个接口测试需要5 min,总共需要1 200 min,测试时间较长。
图1 车载以太网设备手动测试原理图Fig. 1 Schematic diagram of manual test for onboard Ethernet equipment
此外,车载工业以太网采用列车实时数据协议(train real-time data protocol,TRDP),对于丢包率、时延、吞吐量和背靠背等指标有明确要求[5-7]。受测试设备的限制,手动测试仅能覆盖最简单的ping通测试,测试指标无法量化。
可见,手动测试已无法满足生产线批量产品测试要求。
本文基于React框架的web前端技术和Python自动化测试技术研究开发了一套适用于轨道交通行业的车载以太网产品自动化测试系统(图2)。该系统包括控制网和测试网,其中测试网主要用于测试仪表与被测设备的网络连接;控制网中包含了用户端,即工控机终端,主要测试部件包括自动化测试服务器、工控机、以太网测试仪、程控电源及测试工装等。所有功能设备被安装在一个机柜内,可同时完成24口、48口和96口等多个端口的百兆以太网设备测试。
图2 车载以太网设备自动化测试系统Fig. 2 Automatic test system for onboard Ethernet equipment
自动化测试系统硬件系统由以太网测试仪、程控电源、工控机及自动化测试服务器组成。其中,自动化测试服务器和工控机运行系统软件,控制以太网测试仪和程控电源自动完成测试。
2.1.1 以太网测试仪
以太网测试仪是测试系统中的核心部分,负责向被测交换机和以太网终端设备等被测设备进行流量压力测试,并通过结果分析判断被测交换机设备和终端设备的性能是否合格。
2.1.2 程控电源
将整个测试系统的110 V电源统一接入程控电源,保证所有被测设备的启动、停止和压力测试流程都可以被工控机统一管理;并按照例行试验大纲要求,完成高低温循环测试和常温下的功能循环测试。
2.1.3 工控机
工控机即测试操作平台,其可通过web浏览器登录到自动化测试服务器进行测试操作并获得测试结果。
2.1.4 自动化测试服务器
测试系统的自动化测试服务器控制以太网测试仪和程控电源等,提供web控制服务接口给工控机[8],通过自动化脚本完成测试流程,并将结果传送给工控机。
基于web的控制界面大大降低了测试系统对工控机的依赖,因此可以降低工控机的硬件配置;同时,自动化测试服务器符合商用服务器标准,基于Linux系统开发,具备长时间稳定运行的能力,保证其所提供的web服务以及测试自动化程序可以稳定运行。
2.1.5 测试连接示意
如图3所示,自动化测试系统通过2根测试线缆连接交换机的2个端口,测试系统产生的测试流量通过交换机的第1个端口进入,交换机将测试流量转发到第2个端口,经过第2个端口发回测试系统,测试系统完成对交换机的测试。测试交换机时,需要连接交换机的所有端口,每2个端口为一组进行测试。自动化测试系统通过1根测试线缆连接终端设备,终端设备将状态反馈给自动化测试系统。
图3 车载以太网设备自动化测试系统测试连接Fig. 3 Test connection of the automatic test system for onboard Ethernet equipment
测试系统软件前端基于React框架的web前端技术实现,利用Python脚本实现测试流程自动化,操作界面具备完善的权限管理,针对不同使用人员分为系统管理员界面、技术工程师界面和测试人员界面。
2.2.1 用户权限控制
测试系统具备用户权限控制,如图4所示,用户在基于web的界面登陆;在所有用户中可以区分不同的权限等级,不同的用户名会对应不同的使用权限,例如测试人员、技术工程师、系统管理员等。测试人员可以看到需要完成的测试用例以及产品是否通过测试,但是无法查看抓包、详细的测试结果,也无法修改测试用例。而技术工程师可以修改测试用例的配置,在定位问题时有权限看到所有的测试结果以及抓包等信息。系统管理员则有权限对自动化测试系统的配置、流程进行修改,并可以修改不同用户的权限。
图4 用户登录界面Fig. 4 User login interface
通过权限管理,简化操作人员测试界面,并且保证其任何误操作不会影响到整个测试系统。
2.2.2 测试人员界面
图5为测试人员界面示意图。测试人员登录后可以看到非常简洁易懂的界面,界面上有每个端口的连接状态、测试用例、测试结果、设备序列号等信息。测试人员只需要在连接好被测设备后,通过识别产品二维码将产品序列号导入系统,确认连接状态,即可点击开始进行测试,测试结束后会自动显示测试结果。
图5 测试界面Fig. 5 Test interface
简洁的测试界面对于缺乏专业知识的测试人员来说,易于操作,测试难度低。采用二维码采集方式替代原手工记录被测产品信息,提高了测试效率。
2.2.3 技术工程师界面
图6为用技术工程师权限登录后的界面图,技术工程师可以管理仪表、测试用例、测试床等,同时如蓝色框中所示,可以调整测试的次数、时长等参数。
图6 设计界面Fig. 6 Design interface
针对不同产品的测试,技术工程师定制化配置测试项目并生成配置文件,测试人员只需导入预置的配置文件即可开始测试。
车载以太网设备自动化测试系统按照产品例行试验大纲、RFC2544《网络互连设备的互连基准》、RFC2889《局域网(LAN)交换设备基准(测试)方法学》、RFC3918《混合转发吞吐量测试》要求批量、自动地完成车载以太网交换设备和终端设备的出厂例行试验,其测试功能见表1。
表1 车载以太网设备自动化测试系统测试功能Tab.1 Test items of the automatic test system for onboard Ethernet equipment
根据测试人员选择的测试项点,测试系统自动生成Python格式的自动化测试脚本并完成自动化测试[9]。自动化测试脚本示意如图7所示。
图7 自动化测试脚本Fig.7 An automatic test script
自动化测试系统通过运行自动化测试脚本来控制测试仪表对被测目标进行测试,直接调用测试仪表的应用程序接口(API),使测试更加灵活、可控性更强,不但节省了人力与时间成本,提高了测试执行的效率,而且测试操作的可重复性和结果的可再现性更高,所得到的测试结论更加精确、客观,排除了不可控的人为因素干扰,增强了测试结果的横向可比性。自动化测试的脚本流程如图8所示,以太网性能分析仪根据测试脚本自动遍历所有测试端口。
图8 自动化测试的脚本流程Fig. 8 Script flow of the automatic test
车载以太网设备自动化测试系统能满足轨道列车车载以太网设备测试需求,具有测试指标量化、测试高效自动化、运行稳定、人机界面友好、数据安全、易扩展性和易维护性等优点。
2.4.1 测试指标量化
该测试系统以业界标准仪表为基础,配合简单易用的自动化测试软件系统,按照RFC2544等标准实现以太网吞吐量、时延、丢包率和背靠背等指标的精确测试,从而确保产品的出厂品质。
2.4.2 测试高效自动化
该自动化测试系统能提供至少240个以太网测试接口,可满足一列8编组列车以太网产品同时测试,测试效率高。测试系统根据预设的测试配置文件自动完成所有测试项点,并自动生成测试报告,全程无人值守。
2.4.3 系统运行稳定性好
自动化测试服务器为高稳定性、高可靠性设备,具备长期不关机连续运行的能力。工控机可根据需求配置一台或多台,不用时可下电,以节约电能。
2.4.4 界面易用
该测试系统能通过简单友好的web界面进行操作,并提供准确的结果,让测试人员可以在最短的时间内学会如何使用。
自动化测试服务器提供了测试自动化以及控制所需的所有功能,因此操作终端具备瘦终端的特点,生产线操作终端(工控机)仅需要安装浏览器即可。
当测试出现问题时,技术工程师可同步远程查看测试床状态,并支持远程配置更新软件。
2.4.5 数据安全
所有的测试数据被集中存储在自动化测试服务器上,统一安全管理和保存。自动化测试服务器基于Linux系统开发,具备良好的稳定性以及安全性,保证了系统数据安全性与完整性。
此外,通过完善的权限控制,保证只有高级权限登陆者才能够下载测试数据。
2.4.6 测试床扩展性强
由于自动化脚本都存储在自动化测试服务器上,因此管理和添加新测试床、第三方仪表、第三方设备和测试用例都很方便,只需要进行自动化测试服务器的升级、改造即可,对工控机终端无须进行任何操作。同时系统迁移也非常容易实现。
2.4.7 系统维护成本低
由于自动化测试系统软件以及测试仪表软件都被安装在自动化测试服务器上,在后期的维护中只需要对自动化测试服务器进行维护即可,大幅降低了维护成本。维护成本还体现在易耗品的更换方面,如网线、测试仪端口损坏等。使用大量的测试仪端口,每次测试插拔测试仪端口的网线容易导致测试仪端口故障,从而影响测试进度,同时更换损坏的测试仪端口也大大提高了维护成本。本方案测试工装线与测试仪表端固定,每次只插拔被测试端接口,降低了测试仪表端口被损坏的概率,降低了测试设备成本。
采用车载以太网设备自动化测试系统对“复兴号”CR300型动车组的交换机和终端设备进行测试,测试项点覆盖了被测产品实际应用场景的所有功能,自动化测试系统与手动测试项点对比如表2所示。
表2 测试项点对比Tab. 2 Comparison of test items
按照8编组列车计算,16口交换设备每车配置2台,总共16台;终端设备接口数量按照交换设备接口数量的三分之二计算,总共170个,则被测以太网设备接口为426个。对于交换机,按照图9所示将256根测试线缆同时连接到被测交换机,通过在测试软件上选择吞吐量、时延、背靠背、丢帧率、掉电重启、稳定性测试等测试项点,实现无人值守的自动化测试,并自动生成测试报告。测试覆盖表2中所有测试项点,按照单个以太网接口测试时间5 min计算(5 s接入工装+ 4 min55 s测试),手动测试的时间约为2 130 min,自动化测试系统测试时间约为40 min,仅为手动测试时间的1.9%。
图9 自动化测试系统交换机测试连接Fig. 9 Connection of switches with the automatic test system
自动化测试系统根据测试人员勾选的测试用例汇总所有测试项点结果,并自动生成测试报告(图10)。较手动测试方法,自动化测试省去手动记录过程,缩短了测试报告完成时间,并提高了报告准确性。
图10 车载以太网设备自动化测试系统测试报告Fig. 10 Test report of the automatic test system for onboard Ethernet equipment
本文针对目前轨道交通车载以太网设备人工测试耗时长、成本高问题,提出一种适用于车载以太网设备的自动化测试系统。该系统应用Python自动化测试技术,结合专用测试仪表和测试工装,具有友好的人机交互界面。在“复兴号”CR300型动车组项目上的应用表明,该系统操作简单、测试项点准确全面、占用测试工时少、可无人值守,能满足车载以太网设备的生产线批量测试需求,具有良好的经济效益。
近年来,工业以太网已逐渐成为轨道交通行业主流控车技术,产品出厂前整车环境下的例行联调测试逐渐被业主和主机厂所重视。后续,我们将重点研究整车级地面联调自动化测试及其应用。