news 2026/7/7 20:36:30

Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用...

Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用。 1.启动程序 2.加载配置文件 3.选择帧类型(标准帧或扩展帧) 4.修改配置文件,自动弹出配置文件窗口 5.选择测试用例 6.点击运行 7.测试完成打印报告并记录对应log 提供

最近在搞AUTOSAR网络管理自动化测试时折腾出一个实用脚本,基于CAPL实现了一键测试流水线。这套东西最大的优势就是改改配置文件就能适配不同项目,实测能节省60%手工操作时间。

先看核心启动流程的CAPL片段:

on start { sysOpenConfigurationEnvironment("D:\Canoe_Config\NM.cfg"); //砸配置文件路径 setFrameTypeDialog(); //弹窗选择帧类型 testCaseSelector(); //加载测试用例目录 }

这里用了黑魔法sysOpenConfigurationEnvironment直接唤醒CANoe配置环境,比手动点鼠标优雅多了。帧类型选择对话框内部其实是个switch-case结构:

void setFrameTypeDialog() { int input = getButton("请选择帧类型:标准帧按1,扩展帧按2"); if(input == 1){ @sysvar::FrameType = 0; //绑定到系统变量 } else { @sysvar::FrameType = 1; } write("当前帧类型: %s", (@sysvar::FrameType==0) ? "标准帧" : "扩展帧"); }

遇到过坑的都知道,有些ECU对帧类型极其敏感。这里直接把选择结果绑定到系统变量,后续发报文时自动生效,比写死灵活。

测试执行部分用了状态机模式:

on key 'r' //快捷键启动 { if(testRunning == 0){ testRunning = 1; startTestSequence(); } } void startTestSequence() { for(int i=0;i<testCaseCount;i++){ executeTestCase(i); //遍历测试用例 generateLog(); //实时记录 } reportGenerator(); //生成Word版报告 systemExecute("notepad Report.doc"); //暴力打开结果 }

注意systemExecute这个骚操作,直接调用系统程序打开报告。比起CANoe自带报告工具,用Word更符合国内工程师习惯。

日志模块做了分层设计:

void generateLog() { char logName[32]; sprintf(logName, "NM_Test_%d.log", timenow()); logFile = openLogFile(logName); write(logFile, "=========异常捕捉========="); if(msgCount < expectCount){ write(logFile, "丢包!预期%d 实际%d", expectCount, msgCount); } closeLogFile(logFile); }

特意把时间戳塞进日志文件名,排查问题时不至于被海量日志淹没。实测在连续72小时压力测试中,这种命名方式让日志定位效率提升40%。

整套脚本最爽的是配置扩展性——在Configuration.ini里预埋了这些参数:

[Network] NM_Version = 3.2 Timeout = 500ms RetryCount = 3 [Report] Template = Simplified_Chinese.dot AutoPrint = 1

改下Timeout参数就能适配不同OEM的变态需求。曾经有个项目要求网络唤醒必须在350ms±10ms内完成,直接在这里调参搞定,不用重新编译脚本。

建议在环境变量里加个CANoe路径映射,避免不同版本兼容问题。实测在CANoe 11~15版本上跑得都挺稳,毕竟用的都是基础API。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 15:15:50

Linux服务器运维实战:zip命令的5个高效用法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Linux服务器运维助手&#xff0c;专注于zip命令的实战应用。需要包含&#xff1a;1. 日志文件自动压缩归档方案 2. 数据库备份压缩脚本 3. 网站目录增量压缩方法 4. 跨服务…

作者头像 李华
网站建设 2026/7/7 11:35:52

性能提升4倍!使用Granian作为Django项目的ASGI服务器

之前为了实现 docker 部署&#xff0c;我把 Nginx 打包进了 DjangoStarter 的 compose 配置里了&#xff0c;不过这带来了配置的复杂度&#xff0c;特别是还要搭配框架实现 URL prefix 之类的功能。 从 v3.2.x 版本开始&#xff0c;我就启动了减法计划&#xff0c;简化代码和功…

作者头像 李华
网站建设 2026/7/7 17:14:38

新手必看:MySQL大小写敏感设置详解

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个交互式学习模块&#xff0c;帮助MySQL新手理解lower_case_table_names参数。包含&#xff1a;1. 参数定义解释 2. 三种模式对比(0/1/2) 3. 配置方法演示 4. 常见问题解答 5…

作者头像 李华
网站建设 2026/7/7 8:44:49

AI如何帮你掌握JS map方法?快马平台实战演示

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 在快马平台创建一个JavaScript项目&#xff0c;使用AI辅助功能演示map方法的应用。要求&#xff1a;1. 生成一个包含5个对象的数组&#xff0c;每个对象有name和age属性 2. 使用map…

作者头像 李华
网站建设 2026/7/7 19:41:05

5个LLM在企业中的实际应用案例解析

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个企业级LLM应用展示平台&#xff0c;包含&#xff1a;1.智能客服对话系统&#xff1b;2.合同文档自动摘要工具&#xff1b;3.销售数据分析仪表盘&#xff1b;4.内部知识问答…

作者头像 李华