CANOE 仿真+测试

仿真+测试

  • CANoe的自动化测试系统简介
  • Canoe TFS常用函数
    • 测试判别函数
    • 测试架构函数
    • 测试报告函数
    • 检测函数
  • 创建自动化测试工程
    • 其他常用函数

CANoe的自动化测试系统简介

基于CANoe的自动化测试系统架构,根据ECU的测试环境和测试规范,搭建基于CANoe的测试系统,通过开始测试模块(Test Module)或测试单元(Test Unit)、网络控制硬件接口(如VN2600)、外围的硬件在环设备(如TV System)以及数据采集和控制I/O等板卡,实现高效的自动化测试。

Canoe TFS常用函数

测试判别函数

函数功能描述
TestCaseFail用于将当前测试用例的判别设为fail
TestGetVerdictLastTestCase用于返回上一次测试用例的判别结果
TestGetVerdictModule用于返回测试模块的当前判别结果
TestSetVerdictModule用于设定测试模块的当前判别结果
TestStepFail用于描述当前测试步骤的错误信息

测试架构函数

函数功能描述
TestCaseDescription用于将测试用例的描述写入测试报告
TestCaseSkipped用于在测试报告描述中跳过某个测试用例
TestCaseTitle用于设定测试用例的标题
TestCaseReportMeasuredValue用于在测试报告中添加测试参数的测量值
TestGroupBegin用于测试分组的开始
TestGroupEnd用于测试分组的结尾
TestModuleDescription用于在测试报告中描述测试模块
TestModuleTitle用于设定测试模块的标题
TestStep用于报告测试步骤信息,而不对测试结果有任何影响
TestStepErrorInTestSystem用于描述某个测试步骤在测试系统中发生一个错误
TestStepFail用于描述某个测试步骤发生错误
TestStepInconclusive用于描述某个测试步骤测试结果无法判别通过(pass)还是失败(fail)
TestStepPass用于描述某个测试步骤测试结果通过(pass),满足期望结果
TestStepWarning用于描述某个测试步骤的警示信息
TestInfoTable用于创建一个新表格,使测试报告显示更加结构化
TestInfoHeadingBegin用于在表格中添加一个表头
TestInfoHeadingEnd用于在表格中添加表头结束
TestInfoRow用于在表格中添加一个行
TestInfoCell用于在表格或者表头行添加单元格内容

测试报告函数

函数功能描述
TestCaseComment用于在测试用例中添加一个备注信息
TestReportAddEngineerInfo用于在测试报告中添加一些测试配置信息,如测试员、测试设定和待测样品等
TestReportAddSetupInfo用于在测试报告中添加一些测试配置信息,如测试员、测试设定和待测样品等
TestReportAddSUTInfo用于在测试报告中添加一些测试配置信息,如测试员、测试设定和待测样品等
TestReportAddExtendedInfo用于在测试报告中直接添加其他协议的信息(如HTML、text或XML),而处理不依赖于CANoe
TestReportAddExternalRef用于在测试报告中添加外部应用(如URL)
TestReportAddImage用于在测试报告中添加图片
TestReportAddMiscInfo用于在测试报告中添加一些额外信息
TestReportAddMiscInfoBlock用于在测试报告中添加一些额外信息区域
TestReportAddWindowCapture用于在测试报告中对某个测试用例抓取指定窗口图片
TestReportFileName用于动态设定测试报告名称
TestReportWriteDiagObject用于将某些指定对象以HTML表格形式写入测试报告
TestReportWriteDiagResponse用于将接收到的诊断响应以一个HTML表格的形式写入测试报告

检测函数

CANoe为用户提供了多种检测函数(CheckDescriptions),主要包括以下几个方面的检测。

  1. SignalEvaluation〔信号验证〕:包括信号的数值有效性、周期和稳定性等检测。
  2. MessageEvaluation(报文验证〕:包括报文丢失、周期、数据长度、错误帧等检测。
  3. TimeEvaluation〔时间验证〕:包括连续帧及超时等检测。

创建自动化测试工程

  1. 点击Test下面的Test Setup
    在这里插入图片描述

  2. 空白位置右击,新建测试环境,并命名。
    在这里插入图片描述

  3. 插入CAPL测试模块,并简单配置该模块。
    在这里插入图片描述

  4. 双击该测试名称,进入编辑界面,点击下方的小铅笔,可以开始进行测试脚本编写。
    在这里插入图片描述

  5. 测试脚本样例

variables
{const kTIMEOUT=5000;//常变量 测试等待时间为5s
}void MainTest()//void返回值为空 ,测试程序的主入口
{testModuleTitle("TestDemo002");//测试模块名称testModuleDescription("这是Demo002的测试集");//测试模块描述testGroupBegin("测试组","测试组描述");//测试组开始checkEngineSpeed();testGroupEnd();//测试组结束}testcase checkEngineSpeed()
{dword checkId;//存放检测函数的返回值testCaseTitle("TC-1","TC-1测试引擎转速区间");//测试用例标题testCaseDescription("应用报文的功能测试");//测试用例描述//判断信号的值所在区间checkId=ChkStart_MsgSignalValueRangeViolation(Engine::EngineSpeed,2000,5000);testAddCondition(checkId);//添加测试条件if(checkId!=0){testStepPass("引擎转速区间在2000-5000之间");}else{testStepFail("引擎转速区间不在2000-5000之间");}testWaitForTimeout(kTIMEOUT);//添加测试等待时间testRemoveCondition(checkId);//测试结束后 移除测试条件//测试报告的测试用例处添加TestReportAddMiscInfoBlock("测试参数");//额外信息区域TestReportAddMiscInfo("Max. voltage", "19.5 V");//额外信息TestReportAddMiscInfo("Max. current", "560 mA");TestReportAddImage("IP Snapshot", "IP.png", "400px", "");
}
  1. 仿真测试
    此测试项目参考 https://blog.csdn.net/m0_48468018/article/details/133847476?spm=1001.2014.3001.5501,需要先运行项目,然后进行仿真,最后测试面板点击三角符号,进行仿真测试
    在这里插入图片描述
  2. 测试结果查看
    在这里插入图片描述
    在这里插入图片描述
  3. 查看函数的含义,测试过程中有一个比较重要的函数是ChkStart_MsgSignalValueRangeViolation,如果不清楚函数的含义,可以鼠标移动到函数的位置,点击F1查看官方的帮助文档。
    9.

其他常用函数

  1. ChkStart_InconsistentDlc
  2. ChkStart_UndefinedMessageReceived
  3. ChkStart_MsgAbsCycleTimeViolation
  4. ChkStart_MsgRelCycleTimeViolation
  5. ChkStart_NodeMsgsRelCycleTimeViolation
  6. ChkStart_ErrorFramesOccured
  7. ChkQuery_NumEvents
  8. ChkStart_MsgOccurrenceCount
  9. ChkStart_MsgDistViolation
  10. ChkStart_AllNodesDead
  11. ChkStart_AllNodesBabbling
  12. ChkStart_NodeMsgsAbsDistViolation
  13. ChkStart_MsgRelOccurrenceViolation
  14. ChkStart_MsgSignalValueInvalid
  15. ChkStart_SignalValueChange
  16. ChkStart_SignalCycleTimeViolation
  17. ChkStart_Timeout
  18. 故障注入函数
On key 'z'
{testSetMsgDlc(EngineState,5);//设置报文EngineState的DLC为5testResetMsgDlc(EngineState);testSetMsgCycleTime(0x150,50);//故障注入 设置引擎报文的循环周期为50msTestDisableMsg(0x250);TestWaitForTimeout(2000);  TestSetMsgEvent(0x250);TestWaitForTimeout(2000);TestEnableMsg(0x250);
}

可以自己动手操作一下,理解函数的含义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/172128.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【置顶帖】关于博主/关于博客/博客大事记

关于博主 ● 信息安全从业者 ● 注册信息安全认证专家资质 ● CSDN认证业界专家、安全博客专家 、全栈安全领域优质创作者 ● 中国信通院【2021-GOLF IT新治理领导力论坛】演讲嘉宾 ● 安世加【2021-EISS企业信息安全峰会-上海】演讲嘉宾 ● CSDN【2022-隐私计算论坛】演讲嘉宾…

uni-app打包apk实现自动更新

一、直接复制粘贴就可用(豪横) app.vue文件里写 //app.vue里写 <script>export default {onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},onLaunch: function() {let appVersion uni.getSystemInfo({success: function(e) {ap…

springboot在线招聘系统

springboot在线招聘管理系统&#xff0c;java在线招聘管理系统&#xff0c;在线招聘管理系统 运行环境&#xff1a; JAVA版本&#xff1a;JDK1.8 IDE类型&#xff1a;IDEA、Eclipse都可运行 数据库类型&#xff1a;MySql&#xff08;8.x版本都可&#xff09; 硬件环境&#xf…

手机桌面待办事项APP推荐

每天&#xff0c;我们每个人都面临着繁琐的事务和任务&#xff0c;而手机成了我们日常生活中不可或缺的伙伴。手机上的待办事项工具像一个可靠的助手&#xff0c;可以帮助我们更好地记录、管理和完成任务。在手机桌面上使用的待办事项APP推荐用哪一个呢&#xff1f; 手机是我们…

MTK AEE_EXP调试方法及user版本打开方案

一、AEE介绍 AEE (Android Exception Engine)是安卓的一个异常捕获和调试信息生成机制。 手机发生错误(异常重启/卡死)时生成db文件(一种被加密过的二进制文件)用来保存和记录异常发生时候的全部内存信息,经过调试和仿真这些信息,能够追踪到异常的缘由。 二、调试方法…

OS的Alarm定时器调度机制

调度表触发的任务在编译时就被静态定义&#xff0c;任务的触发时间和执行顺序是固定的。这种方式适用于已知的、固定的任务触发模式&#xff0c;例如周期性任务或事件驱动任务。而使用 Alarm 机制触发的任务具有更大的灵活性。Alarm 允许在运行时动态地设置和修改任务的触发时间…

人工智能轨道交通行业周刊-第64期(2023.10.16-10.29)

本期关键词&#xff1a;北斗应用、供电智能运维、5G-R、铁路职称、星火大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界铁路那…

数据可视化报表分享:区域管理驾驶舱

在零售数据分析中&#xff0c;区域管理驾驶舱报表是用来分析企业运营数据&#xff0c;以制定销售策略和提高利润。因此这张报表需要整合大量数据&#xff0c;数据整合、分析、指标计算的工作量极大&#xff0c;在讲究高效率、高度及时性的大数据时代&#xff0c;BI数据可视化分…

QT图形视图框架绘制曲线图和Smith图

QT图形视图框架绘制曲线图和Smith图 QGraphicsView是Qt框架中的一个图形视图部件&#xff0c;用于显示和处理2D图形元素。它提供了强大的工具来创建交互式和自定义的图形应用程序。在绘制折线图和Smith图时&#xff0c;使用QGraphicsView有以下一些优点&#xff1a; 交互性&am…

iOS开发-CoreNFC实现NFC标签Tag读取功能

iOS开发-CoreNFC实现NFC标签Tag读取功能 一、NFC近场通信 近场通信&#xff08;NFC&#xff09;是一种无线通信技术&#xff0c;它使设备能够在不使用互联网的情况下相互通信。它首先识别附近配备NFC的设备。NFC常用于智能手机和平板电脑。 二、实现NFC标签Tag读取功能 在…

vue实现多时间文字条件查询

// 搜索功能 // 获取搜索框内容 const dateOneref() const dateTworef() // 重新创建数组 const itemList ref([]); const query()>{console.log(formattedDateTime.value);console.log(list.value);itemList.value list.value.filter(item > {//获取数据框的内容是否与…

server2012 通过防火墙开启局域网内限定IP进行远程桌面连接

我这里需要被远程桌面的电脑系统版本为windows server2012 1、打开允许远程连接设置 2、开启防火墙 3、设置允许“远程桌面应用”通过防火墙 勾选”远程桌面“ 3、入站规则设置 高级设置→入站规则→远程桌面-用户模式(TCP-In) 进入远程桌面属性的作用域——>远程IP地址—…

FL Studio21最新中文版DAW数字音频工作站

大概从去年开始&#xff0c;“电子音乐制作技术”成为越来越常见的说法。一开始我们觉得这种说法太过于笼统&#xff0c;因为电子音乐制作的技术早已不限于用在电子音乐&#xff0c;它更像是现代音乐制作技术。毕竟现代化的90%的音乐都是这么做出来的。 对&#xff0c;我们说的…

内网渗透——macOS上搭建Web服务器

# 公网访问macOS本地web服务器【内网穿透】 文章目录 1. 启动Apache服务器2. 公网访问本地web服务2.1 本地安装配置cpolar2.2 创建隧道2.3 测试访问公网地址3. 配置固定二级子域名3.1 保留一个二级子域名3.2 配置二级子域名4. 测试访问公网固定二级子域名 以macOS自带的Apache…

SparkSQL综合案例-省份维度的销售情况统计分析

一、项目背景 二、项目需求 &#xff08;1&#xff09;需求 ①各省销售指标&#xff0c;每个省份的销售额统计 ②TOP3销售省份中&#xff0c;有多少家店铺日均销售额1000 ③TOP3省份中&#xff0c;各个省份的平均单价 ④TOP3省份中&#xff0c;各个省份的支付类型比例 &#x…

Win11 安装wsl遇到的问题解决

Win11 安装wsl遇到的问题解决 Win11 安装wsl遇到的问题解决WslRegisterDistribution failed:0x8007019eWslRegisterDistribution failed:0x800701bcUbuntu换源WSL通过网络访问Windows Win11 安装wsl遇到的问题解决 WslRegisterDistribution failed:0x8007019e 参考Link WslR…

Uni-app智慧工地可视化信息平台源码

智慧工地的核心是数字化&#xff0c;它通过传感器、监控设备、智能终端等技术手段&#xff0c;实现对工地各个环节的实时数据采集和传输&#xff0c;如环境温度、湿度、噪音等数据信息&#xff0c;将数据汇集到云端进行处理和分析&#xff0c;生成各种报表、图表和预警信息&…

技术栈 业务架构 插件库

大前端 技术栈 业务架构 插件库

k8s中kubectl陈述式资源管理

目录 1、 理论 1.1、 管理k8s核心资源的三种基本方法 &#xff1a; 1.1.1陈述式的资源管理方法&#xff1a; 1.1.1.1、优点&#xff1a; 1.1.1.2、缺点&#xff1a; 1.1.2、声明式资源管理方法 1.1.3、GUI式资源管理方法 1.2、陈述式资源管理方法 2. 对资源的增、删、…

Lvs+Nginx+NDS

什么是&#xff1f;为什么&#xff1f;需要负载均衡 一个网站在创建初期&#xff0c;一般来说都是只有一台服务器对用户提供服务 ​ 从图里可以看出&#xff0c;用户经过互联网直接连接了后端服务器&#xff0c;如果这台服务器什么时候突然 GG 了&#xff0c;用户将无法访问这…