CANoe作为专业的系统级总线网络开发和测试工具被众多整车厂和供应商的系统设计师、开发工程师和测试工程师所广泛使用,由于市场对CANoe使用需求的多元化和不确定性,CANoe对外提供了通用API来供应用集成来解决在人机交互过程中的各种问题。比如:在不同环境下怎么运行多个CANoe客户端,在执行长时间的测试任务时,怎么对测试过程实现监听和控制,以及在测试过程中怎么实时获取测试数据,测试任务完成之后怎么归类测试数据、生成多元项目报告等。
北汇团队基于丰富的汽车电子测试项目经验,提取了工程师在CANoe使用过程中的各阶段需求,并结合信息化技术手段,提供了一套CANoe集成解决方案,作为CANoe交互的代理引擎,用于监控管理CANoe工程,采集、仿真CANoe报文数据,同时完成测试数据、测试日志解析和报告定制等功能。
CANoe远程调用在自动化测试阶段,存在需要在多个客户端执行CANoe工程的业务场景,那么如何快速的将工程部署执行,以及工程有变更时如何在远程客户端重新测试执行是我们需要解决的问题,目前CANoe代理提供了工程执行服务,通过接收服务端的执行请求,使得CANoe可以执行指定工程。
服务端通过监听客户端配置信息在服务端注册代理:
用户将配置好的工程文件打包,上传到服务器,在服务器端统一管理。
用户可以将工程分配给客户端,并且将工程下发给客户端执行。客户端在执行过程中,将执行步骤信息实时上传给服务端。用户在服务端可以查看各个CANoe客户端在执行什么工程,执行进度如何,也可中断CANoe客户端执行的工程下发新的工程给客户端执行。
CANoe实时监听
在测试过程中,工程师比较关注CANoe工程是否在运行,工程执行过程中重要参数是否超限等信息,CANoe代理可以实现把运行状态及重要数据组成结构化的心跳数据,实时推送到消息队列,提供给服务端应用消费,并将最终数据推送给Web页面、移动端等。
为了更加友好与服务端交互,我们使用Json这种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。我们将心跳数据定义为以下格式,也可根据实际业务增减内容。
每个客户端定时上报自己的心跳数据,就可实时监控每个代理运行情况和重要参数实时值,从而达到监控的目的。
同时可以查看参数的历史数值及变化趋势。
报文读取和仿真
无论是开发还是测试过程中,很多时候用户需要读取总线上数据,在总线上仿真一些数据来验证、建模或者分析问题。目前获取CANoe报文的方式有两种,一是通过查看Trace窗口,二是录制报文后使用CANoe打开分析。第三方应用很难直接获取和处理报文数据,我们通过代理与CANoe的交互,使用标准的RestFul框架提供了常用的数据读取接口供外部或远程应用调用。CANoe仿真可以通过CAPL脚本或者CANoe本地的Matlab/Simulink接口来完成。但工程师经常不局限于本地仿真,这样既繁琐也不可控。我们通过中央服务器统一去控制仿真就可解决这一难题,同时代理提供了可供外部调用的仿真接口。
在做数据分析时,服务端需要一段时间的数据,而CANoe总线上数据的节拍是毫秒级的,如果通过读取方式,就存在丢帧的情况,这里我们引入了消息中间件。在报文产生时,触发ON事件,实时将报文推送到消息中间件,这样我们服务端可以通过消费中间件通道的数据,进行分析展示。
以太网PDU数据的读取和仿真也采用相同结构和方式
定制化测试报告
CANoe工程执行完成后可以生成测试报告,默认的测试报告格式是.vtestreport,需要CANoe report viewer工具打开,另外还有.xml格式的测试报告,属于结构化文本格式。不管是哪种方式,用户很难快速的获取到有效信息,CANoe代理可通过解析原始报告文件,并根据实际业务需求生成定制化的测试分析报告,实现了数据获取和数据分析的一体化,用户可以直观看到测试结果和统计分析,节省了整理数据的成本,提高了用户的工作效率。
更多功能,敬请期待
▲加载DBC、ARXML等数据库,通过标准WebService接口进行CANoe工程中Frames、PDUs、Signals等数据的获取,实现云端实时通讯。
▲DBC、ARXML、ODX等文件加密,保证数据安全的同时进行测试功能释放。
▲CANoe工程解析,进行测试用例、系统变量等读取,通过权限控制以及工程预处理,实现测试范围界定。
▲CANoe刷写和诊断扩展,基于可视化操作界面实现刷写、诊断任务管理、TSP云端认证、集成等。
北汇信息通过CANoe集成解决方案,搭配测试管理平台,实现测试项目的集中管理,测试工作的高效执行,本文希望能够在这方面起到抛砖引玉的作用,和小伙伴们一起搭建符合自身发展的自动化测试平台,后续我们将带来基于此文配合Jenkins如何实现CI/CT。
文章评论(0条评论)
登录后参与讨论