作者 | 李伟 上海控安安全测评中心安全测评部总监

01 ECU软件和通用软件性能测试的区别

通用软件进行性能测试时通常会通过压力测试、负载测试、稳定性测试、疲劳强度测试、用户并发访问测试等等方法来了解当前软件系统的各项性能指标数据,并在这些测试过程中发现并修复系统存在的问题,或者优化系统运行效率等。

通用软件和ECU软件使用场景的不同产生的需求不同,从而出现了性能测试的差异和侧重点的不同。

首先系统运行场景的不同,通用软件一般直接面向客户使用,如果是提供在线web服务的系统,面向的客户群体有时候会是一个庞大数量。车载ECU一般不会面向最终用户,ECU的数据输入和输出对象一般是其他ECU或者系统TSP后台,以Tbox为例,车内通讯对象有网关、娱乐主机等,外部通讯对象是TSP后台,以及单个用户的手机蓝牙或者WiFi。

除使用场景和服务对象的不同外,性能需求也不一样。通用软件对于系统的在线并发处理,同时在线用户数等性能有较高的要求。车载ECU不会有多个最终用户的并发使用情况,所有信息通讯交互对象都是有限定的,从功能安全和产品需求设计出发,性能需求集中在系统长时间运行稳定性,以及各种场景下内存溢出和泄漏测试。

02 Tbox的性能测试项

在进行tbox性能测试项设计时,我们常用的做法是先进行使用场景的梳理,在梳理场景过程中,对数据流和逻辑的控制流相结合按照不同业务进行细分析,对这些过程中发现的瓶颈处设计性能测试项进行验证。

以Tbox为中心形成的车内子系统中,CAN总线上的通讯数据是明确固定的,意思是CAN总线上主动向TBOX发送的各种信号是明确的,tbox被动响应的或主动向网络发送的信号也是明确的,这部分信号在项目的早期就被确定下来,在项目研发过程中会有轻微的调整,tbox对这部分数据的处理是依靠自身的CAN通讯芯片,这部分的设计已经非常成熟,设计师选型会留有充分的余量,这部分的性能测试通常会放在硬件部分跟CAN网络和诊断测试在项目早期一起完成,系统级的性能测试一般不会考虑这部分内容。

Tbox和各子系统的通讯如下图所示,子系统间的通讯通常有从车端至云端,从TSP端至车端,周期性和触发型等几个部分。在这些通讯过程中,除了云端的TSP平台,车端还会跟Internet上的各种网络服务有通讯,主要是给娱乐主机提供各种定制化的服务,但是这些服务不会主动从云端向车端发起。

车载测试需要用到MySQL吗_性能测试

图 1

从车端上报至TSP端的通讯,周期性上报数据通常包括:大数据、新能源国标或地标上报等。触发型上报数据通常包括:各种报警信息、娱乐系统互联网服务。

从TSP端至车端的通讯,一般只包含触发型数据,不会从TSP端向车端主动发起周期性的通讯请求,通常包括:车况的查询与上报、远程控制车辆等。

经过分析我们可以看到,在这个子系统中,场景比较简单,消费子系统资源的最终用户是单一的,不存在通用软件类似大量用户并发访问的情况,我们对系统的性能要求主要集中在稳定性,和一定负载下的长时间疲劳测试中。通常的性能测试设计主要集中在以下几个方面:

车端网络上传下载速率测试,对tbox整体的上传和下载的最大速率进行测试,确定是否存在车端上传下载在网络速率上的瓶颈。

车端和云端网络通讯长时间的稳定性测试,一般测试24小时以上,测试车端和云端的通讯是否存在丢包,网络抖动等情况。

系统内存溢出和泄漏测试,通过对系统增加一定的负载,长时间运行并对系统资源使用情况进行监控,确认是否存在系统资源异常消耗的事件存在。

03 Tbox性能测试工具

Tbox系统运行软件一般是在各种Linux环境之上,如Ubuntu、CentOS、Android等,所以各种性能测试的开源工具是比较多的,我们列举常用的一些跟大家分享。

Speedtest,无论是Linux还是windows环境下,speedtest都是非常好用的网络带宽测试工具,可以测试出当前网络连接Internet的上传和下载最大速率,平均速率,网络延迟等参数,在针对车端上网性能的测试项时我们一般都会用到这款工具。

Iperf,是一款已经存在了很多年的著名网络测试工具,应用非常广泛,可以设置参数对TCP、UDP等协议进行性能测试,获得网络带宽、MTU/MSS,网络丢包,延迟等数据。我们在测试长时间的网络稳定性时会用到这款工具。

Monit,是Linux上最灵活、功能最强大的监视工具之一,已经存在了很多年,支持各种参数的自定义设置和报警阈值设置,还提供一个轻量化的web服务,方便用户通过浏览器来监视系统资源情况。我们在进行长时间内存泄漏探测时,会用到这款工具。

目前各种性能测试的小工具是非常多的,实际的使用中首先是根据测试设计的需要来进行选取,其次对工具的测试精确度,易操作性,成本等进行考虑,最终确认适合项目产品测试的最佳工具。

04 总 结

车载ECU的性能测试跟传统的通用软件,特别是提供web服务的互联网软件系统有非常大的区别,并发测试不再是tbox测试的重点,TBOX的运行稳定性和探测内存泄漏溢出成为了首要测试目标。车载的其他ECU也存在类似的情况,我们需要通过系统的ECU设计使用场景分析,基于数据和控制流对功能模块全面覆盖细分类考虑,来具体情况具体对待。