邵金萍 刘建飞 张维行 王涛 秦玉军
【摘 要】网联车载终端Tbox作为智能网联的关键节点,车内与控制器通过传统CAN总线或车载以太网进行数据交互,车外与企业远程服务平台通过基站无线技术进行信息交互。实现Tbox应用软件自动放行测试,能够完成Tbox版本迭代升级的测试,有效提高软件开发品质和测试效率。
【关键词】Tbox;自动化测试;车联网;软件
中图分类号:U463.6 文献标识码:A 文章编号:1003-8639( 2024 )05-0076-02
The Automatic Test Technology Research of Networking Vehicle Terminal Software
SHAO Jinping,LIU Jianfei,ZHANG Weihang,WANG Tao,QIN Yujun
(Weichai Power Co.,Ltd.,Weifang 261061,China)
【Abstract】Tbox is an essential terminal of intelligent networking vehicles. It can perform data interaction with vehicle controllers by traditional CAN bus or Vehicle-mounted Ethernet inside while complete information exchange with enterprise remote service platform outside. The automatic test solution can be used to testify Tbox software for version upgradation automatically during developing phases so as to improve softeware accuracy and test efficiency.
【Key words】Tbox;automatic test;vehicle networking;software
作者简介
邵金萍(1984—),女,硕士,工程师,主要研究方向为内燃机电控测试。
1 引言
网联车载终端Tbox是一款集车载OBD通信模块、高精度定位GPS/BD模块、4G全网通信模块、WIFI热点模块、G-Sensor、BT蓝牙通信模块、RS232串口通信模块、DI/DO数字输入输出等于一体的智能通信车载终端。Tbox可根据客户需求进行定制化开发,被广泛应用于新能源汽车、商用车车队定制管理、传统车辆远程监控定制管理等。Tbox除了具备远程升级、远程锁车、故障监控及诊断等功能外,还可对新能源车辆电池数据、传统ECU数据、车况数据、定位数据、驾驶行为数据等进行监测与存储,并上传车联网平台进行大数据深度挖掘。
通过进行Tbox应用软件功能自动化放行测试工具链研究,建立测试人员Tbox应用软件功能自动化测试脚本开发的能力,将有效提升Tbox应用软件功能的测试效率和品质,提高产品竞争力,同时进行汽车传统行业云端交互自动化测试方法的技术储备。
2 Tbox测试框架
由于Tbox自动化测试所需的输入仿真(平台指令下发)和输出监测(ECU报文响应)闭环存在一定难度,目前基本采用手动或半自动化(比如ECU端通过自动测试用例模拟发送数据流报文)的传统方式进行测试,依靠人在环方式记录测试数据以及比对判断测试结果的准确性。但是该方法测试效率低且覆盖度受限,并且,智能网联Tbox终端产品系列和软件版本多,更新迭代快,手动测试方法难以满足市场需求、研发的快速迭代和深度验证要求。Tbox测试架构如图1所示。
3 自动化测试开发
3.1 工具类通用性自动化测试开发
Tbox测试用到3项工具。其中,INCA用于进行ECU实时数据监控;CANalyzer用于进行ECU通信和诊断报文监控;串口继电器用于控制ECU和Tbox各自T15开关的自动上下电。
1)INCA软件的自动化测试采用了基于Python的XML-RPC自动化测试方法。XML-RPC是一种将命令和数据定义成XML文本格式,并使用HTTP协议进行远程传输的RPC机制。RPC(Remote Procedure Call)称为远程过程调用,一个RPC系统必然包括2部分:RPC客户端,用来向RPC服务端调用方法并接收方法的返回值;RPC服务端用于响应RPC客户端的请求并执行方法和回传方法执行结果。
针对服务端的自动化脚本通过CLR类库调用INCA对应的接口文件incacom.dll和Etas.Base.ComSupport.dll执行对应方法,同时通过Xmlrpc第三方庫在RPC服务端构造一个最基本的XML-RPC服务器架构,确定URL和端口后启动服务器并使其对这个连接可用,最终通过Pyinstaller将该部分脚本生成Exe可执行文件,解决了32位DLL文件不能在64位Python环境下运行的问题。
针对客户端的自动化脚本通过Xmlrpc第三方库用于调用注册在XML-RPC服务器端的函数。INCA自动化测试架构如图2所示。
2) CANalyzer软件的自动化测试采用了基于Python的COM组件自动化测试方法。COM(Component Object Model)是微软为Windows平台提出的实现软件互操作的标准,所有在Windows组件管理器中经过注册的组件都可以实现对象交互。Pywin32提供了调用COM组件在内的Windows API的扩展命令。
针对CANalyzer应用程序本身的自动化脚本,包括通过Pywin32类库调用CANalyzer的COM组件命令实现创建对象实例,获取并调用CAPL函数名,获取CANalyzer Write窗口内容,开始监控报文,停止监控报文等方法。其中,发送指定报文等CAPL函数是通过Python自动写入.can文件中CAN消息事件相关代码实现的。CANalyzer自动化测试架构如图3所示。
3)通过串口继电器实现ECU和Tbox终端T15开关的自动上下电。继电器的自动化测试采用基于Python的Serial第三方类库[1],通过自动化脚本收发485串口报文命令。自动上下电用例执行结果如图4所示。
安装完成USB转RS485驱动后,设置正確的电脑串口号和波特率,打开并发送串口报文,实现控制继电器DO开关自动断开和闭合,直到读取串口回显成功为止。串口继电器如图5所示。
3.2 基于企业平台的Web自动化测试开发
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(Web服务器)发送所有请求,请求消息包括请求行(Request line)、请求头(Header)、空行和请求体4个部分。服务端根据客户端请求头获取客户端信息,客户端通过请求体向服务端传递参数。请求类型包括GET请求、POST请求、PUT请求等。
HTTP响应由响应行、响应头、空行和响应体4个部分组成。响应行显示使用的协议名称和版本号,响应状态码及状态码描述。响应头向客户端显示响应类型、字符编码和字节大小等信息。响应体是服务器发送到客户端的实际内容。
基于企业平台的Web自动化测试采用基于Web接口的自动化测试方法。利用Python的Requests第三方库编写自动化测试脚本处理URL资源,发送HTTP格式报文,获取Web端的Tbox应用软件各功能条目的ECU数据并以一定格式保存。
3.3 基于APP的自动化测试开发
APP的自动化测试采用了基于Appium的移动端自动化方案。执行设备包括一台安装企业云平台APP的移动终端和一台测试电脑,移动终端和电脑通过USB连接。在电脑上安装Appium并基于Python开发自动化脚本,通过执行脚本可以自动操作移动终端上云平台APP。同时自动化脚本支持Api接口调用方式,不管自动化测试用例部署在内网环境哪台机器上,都可以通过HTTP接口发起对APP的自动化执行。APP端自动化测试基本架构如图6所示。
4 结束语
本文提供了一种基于Web和APP的Tbox软件自动化测试思路,利用Python脚本实现了模拟Web平台端和APP客户端指令自动下发及数据获取;利用Python脚本调用ETAS INCA、Vector CANalyzer等测试工具,进行ECU变量和报文数据自动采集记录;通过合理设计自动测试用例步骤,逐条下发指令并和ECU响应数据进行闭环对比验证,确保由Tbox连接的输入仿真(平台指令下发)和输出监测(ECU报文响应)逻辑对应关系正确,极大提高了测试效率和准确性。
参考文献:
[1] 马飞. 运行Python脚本的自动化测试平台设计及实现[J]. 中国集成电路,2018(10):54-57.
(编辑 杨凯麟)
收稿日期:2023-09-30