0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANoe自带的自动化测试用例开发大揭秘

北汇信息POLELINK 2022-08-01 15:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

众所周知,CANoe对分析和仿真功能有着非常出色的支持,但一些人可能对其测试功能了解较少,其实CANoe对于测试功能的支持也是非常强大的。

CANoe的测试功能模块包括Test ModulesTest Units两大组件,并且集成了TFS(Test Feature Set)测试功能集和TSL(Test Service Library)测试服务库来帮助用户实现高效的自动化测试。对于Test Units组件需要与VECTOR旗下的另一款软件vTESTstudio结合使用。那么CANoe是否可以不需要其他软件的支持来实现自动化测试功能呢?答案显然是肯定的,接下来就让我们一起来看一下CANoe自带的测试功能是如何实现的。

一、通过Test Modules创建自动化测试用例的步骤

基于Test Modules的自动化测试用例开发,主要是通过编写CAPL脚本来实现,CANoe中自带的测试功能函数库可以帮助开发人员更高效地完成测试用例的开发。实现自动化测试脚本的开发,首先了解一下如何通过Test Modules进行自动化测试脚本的开发。

1、

pYYBAGLndxSAA5avAABn18DbhVg161.png

2、创建新的测试环境

poYBAGLndy-AH6yJAABImjktqWU880.png

3、增加新的CAPL测试模块

poYBAGLnd0CADE5wAADAORMtVIs140.png

4、设置自动化测试脚本的保存路径

poYBAGLnd0mAAMv7AABztJp3zUQ887.png

二、TFS(Test Feature Set)

TFS是CANoe扩展出来的一系列测试功能函数,包括测试报告的输出。按照功能来分,主要包括:

1、约束和条件设置函数:主要用来检测测试环境的偏差或被测ECU在测试过程中是否偏离某些参数的范围,以确保测试在正确的测试环境中被执行。

e.g:

TestAddCondition:用于添加一个事件对象(Event Object)或事件文本(Event Text)作为测试的条件。

2、信号测试函数:主要用于检测或操作信号、系统变量的数值。

e.g:

checkSignalInRange:用于检测信号、系统变量是否在指定的范围内。

3、等待指示函数:为用户提供测试动作设置、等待测试等功能。

e.g:

(1)TestCreateTesterAction:创建一个测试动作;

(2)TestWaitForSignalInRange:用于等待待检信号、系统变量是否满足定义的数值范围。

4、测试控制函数:用于控制ECU断开或连接到总线上。

e.g:

(1)TestSetEcuOffline:用于将指定的ECU从总线上断开

(2)TestSetEcuOnline:用于将指定的ECU连接到总线上

5、故障注入函数:允许用户通过调用相关函数实现一些特殊的测试条件。

e.g:

TestDisableMsg:用于禁止发送某个指定的报文

6、测试判别函数:用于对测试步骤、测试用例、测试模块等作出判别和处理。

e.g:

TestCaseFail:用于将当前测试用例的判别设为fail

7、测试架构函数:可以在测试模块设置测试分组、测试用例及测试步骤等,并定义了生成测试报告的格式。

e.g:

(1)TestCaseDescription:用于将测试用例的描述写入测试报告

(2) TestCaseTitle:用于设定测试用例的标题

8、测试报告函数:用于按用户的要求产生测试报告,增加报告的可读性。

e.g:

TestReportAddImage:用于在测试报告中添加图片

三、TSL(Test Service Library)

Test Service Library(测试服务库)是在测试功能集(TFS)基本函数的基础上,提供一些特殊函数,可以高效地解决某些特殊的测试问题。主要包含:

1、检测函数(Check Descriptions)

(1)信号验证(Signal Evaluation):包括信号的数值有效性、周期性和稳定性等检测。

e.g:

ChkStart_MsgSignalValueInvalid/ ChkStart_MsgSignalValueRangeViolation:用于检测信号/变量数值的有效性

(2)报文验证(Message Evaluation):包括报文丢失、周期、数据长度和错误帧等检测。

e.g:

ChkStart_MsgAbsCycleTimeViolation:用于检测周期性报文的周期是否在给定的范围内

(3)时间验证(Time Evaluation):包括连续帧及超时检测。

e.g:

ChkStart_MsgDistViolation:用于检测指定两条报文之间的时间间隔

2、状态报告函数(Status Report Functions):在执行上面的检测函数以后,CANoe需要使用状态报告函数来查询检测结果、基本状态信息等。状态报告函数又分为通用的状态报告函数和特殊类型的状态报告函数。

e.g:

ChkQuery_NumEvents:用于返回初始化后指定检测函数产生的事件次数

3、激励函数(Stimulus Functions):激励函数作为TSL中的重要一部分,允许用户使用不同的数据源作为信号或系统变量的激励发生器。

4、检测控制函数(Check Control CAPL Functions):用于对于检测事件的控制操作,如初始化、开始、停止、销毁等。

e.g:

ChkControl_Start:用于开始或继续检测事件。

四、测试模块的架构

在了解了自动化测试脚本的开发步骤后,我们来看一下基于CANoe的自动化测试系统的整体架构。

poYBAGLnd76AdMiTAACdm6xso6s109.png

1、SUT:System Under Test被测系统,一般是待测ECU;

2、VT System:VT system是由一系列硬件板卡组成的ECU功能测试模块,通过连接ECU的I/O线路对ECU进行测试;

3、Remaining bus simulation:残余总线仿真。实际应用中SUT只是总线中的一个ECU节点,总线环境是复杂的,CANoe可以仿真除了SUT之外的总线环境,即残余总线仿真。

五、CAPL脚本的封装加密(敲黑板!)

对于CAPL脚本的开发和维护需要投入大量的人力与物力,有时可能会带有一些公司的加密信息。但是根据项目需要又不得不释放给外部使用,为了保护开发人员的劳动成果,有必要做一些保护措施。CAPL脚本的加密与保护主要有三种方式:编译后删除源代码、加密后删除源代码和加密保护与硬件绑定。

1、编译后删除源代码

(1)编辑好CAPL脚本之后,删除相关源代码(.can文件);

(2)在此节点Configuration→Node specification中将.can文件改成.cbf文件。

这种保护方式设置好之后,用户可以使用脚本,但是无法查看(编辑)和编译。

pYYBAGLnd_WAXFWyAADQ3Ut_Pno544.png

2、加密后删除源代码

(1)将CAPL源代码进行加密生成.canencr文件

poYBAGLneCKAHt-DAAEZ2Q_j81Y888.png

(2)将CAPL源代码加密后,删除源代码(.can文件)

加密后的源代码不能被查看或编辑,但是加密后的源代码可以在其他版本CANoe中对其进行编译。

3、加密保护与硬件绑定

在前两种保护方式的基础上,通过CAPL DLL技术添加一些加密算法与计算机本机的硬件进行绑定(如MAC地址等)。

除了可以将CAPL脚本进行加密,还可以将基于TFS(TSL)编写的CAPL脚本在vTESTstudio中进行调用。例如,在使用vTESTstudio编写自动化测试脚本时,需要有车辆加速的过程,则可以通过编写CAPL脚本实现此功能,然后在vTESTstudio中直接调用。

pYYBAGLneEaAAxdUAAF-I2SAE3w459.png

六、Test Unit和Test Module

1、测试层级的对比

pYYBAGLneFaAWt91AACzq8Demmw609.png

Test Module主要测试层级由Test Group、Test Case和Test Step组成,而Test Unit主要测试层级有:Test Group、Test Sequence、Test Fixture、Test Case和Test Step。

2、Test Unit和Test Module的区别

(1)Test Unit在Test Configuration窗口定义,用户需要根据Vector提供的软件vTESTstudio创建测试用例,然后将测试用例导入CANoe Test Unit运行。

(2)Test Module在 Test Setup for Test Modules中定义,Test Module支持三种不同语言类型的测试模块:CAPL、XML和.NET。用户可以根据自己熟悉的语言和测试需求来编写测试模块。

七、总结

了解了CANoe的测试功能后,是不是对CANoe有了重新的认识,其实CANoe功能的强大不止于此。CANoe是德国Vector公司推出的一款总线开发环境,是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统开发过程。其丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师所广泛应用。

北汇信息作为Vector中国合作伙伴,不仅提供相应的工具、技术支持服务以及培训,还针对不同的应用场景(智能座舱、新能源三电系统、底盘系统、ADAS及V2X等)提供专业的解决方案。欢迎联系北汇信息,为您答疑解惑。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CANoe
    +关注

    关注

    4

    文章

    82

    浏览量

    9538
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CANoe.Diva典型使用问题五则

    .Diva不符合标准协议测试逻辑问题问题举例:在使用CANoe导入Diva工程自动化测试时,下图这个用,ECU回复0x78之后从
    的头像 发表于 11-27 09:51 1688次阅读
    <b class='flag-5'>CANoe</b>.Diva典型使用问题五则

    CI/CT自动化测试解决方案

    北汇信息可以提供Jenkins、Gitlab Runner CI和自研平台等的CI/CT整体解决方案,通过CI/CT自动化测试执行、测试策略定制、测试任务
    的头像 发表于 11-12 16:01 1237次阅读
    CI/CT<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>解决方案

    测试小白3分钟上手,零代码自动化测试平台,15分钟搭建自动化测试方案

    还在为不懂代码、搭建测试方案耗时久而发愁?ATECLOUD 零代码自动化测试平台,专为自动化测试量身打造,小白3 分钟就能轻松上手,15 分
    的头像 发表于 09-22 17:52 615次阅读
    <b class='flag-5'>测试</b>小白3分钟上手,零代码<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台,15分钟搭建<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>方案

    芯片硬件测试用

    是项目开始的关键,利用白盒和黑盒覆盖,保证产品质量。根据芯片功能,目标市场,进行测试立项:依据BRD/MRD/PRD;计划:测试需求分析、人力资源时间线;测试用
    的头像 发表于 09-05 10:04 526次阅读
    芯片硬件<b class='flag-5'>测试用</b><b class='flag-5'>例</b>

    电源模块的短路保护如何通过自动化测试软件完成测试

    搭建 自动化测试软件运行于特定测试系统架构之上。以国产测试平台ATECLOUD电源模块进行重复短路测试
    的头像 发表于 09-03 19:10 571次阅读
    电源模块的短路保护如何通过<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>软件完成<b class='flag-5'>测试</b>

    上海控安:基于模型的测试用生成

    在当今复杂多变的软件开发环境中,软件系统的规模和复杂度不断攀升,传统测试方法面临着诸多挑战。如何高效、准确地生成测试用,以确保软件系统的质量和可靠性,成为软件
    的头像 发表于 08-28 14:30 522次阅读
    上海控安:基于模型的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>生成

    AI生成的测试用真的靠谱吗?

    软件测试正经历一场深刻的技术革命。AI,尤其是以GPT、通义千问、文心一言、Claude等为代表的大语言模型(LLM),开始广泛介入测试流程:从需求分析、测试用设计,到脚本生成与
    的头像 发表于 08-01 10:02 1415次阅读
    AI生成的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>真的靠谱吗?

    除了LabVIEW还有哪些自动化测试的软件?

    NI 开发的 LabVIEW 软件在工业控制领域中一直占有举足轻重的地位,其市场占有率在一众平台中也是领先的,那么除了 LabVIEW 拿有哪些自动化测试的软件?本文将介绍一些自动化
    的头像 发表于 07-30 17:18 721次阅读
    除了LabVIEW还有哪些<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>的软件?

    自动化测试平台中TestCenter和ATECLOUD有哪些差异?

    TestCenter和ATECLOUD虽然都是自动化测试平台,但两者在试用领域、技术架构、功能特性等方面具有很大的差异性,两者的面向客户也有所不同。本文将简单分析两个平台的特点和差异
    的头像 发表于 07-25 09:54 459次阅读
    <b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台中TestCenter和ATECLOUD有哪些差异?

    自动化测试平台ATECLOUD推出AI算法功能

    作为纳米软件自主研发的自动化测试平台,ATECLOUD 始终致力于为用户提供高效优质的测试解决方案。面对5G、AI等前沿技术的迭代发展,平台深度融合新技术持续升级测试能力,最新推出的A
    的头像 发表于 07-22 16:10 482次阅读
    <b class='flag-5'>自动化</b><b class='flag-5'>测试</b>平台ATECLOUD推出AI算法功能

    基于层级的TPT TASMO覆盖度测试用生成自动化 #Siumlink模型测试 #自动化测试

    自动化测试
    北汇信息POLELINK
    发布于 :2025年07月11日 17:53:15

    揭秘EtherNet IP转Modbus TCP 网关在工业自动化中的工程优化分析

    揭秘EtherNet IP转Modbus TCP 网关在工业自动化中的工程优化分析
    的头像 发表于 05-23 19:22 431次阅读
    <b class='flag-5'>揭秘</b>EtherNet IP转Modbus TCP 网关在工业<b class='flag-5'>自动化</b>中的工程优化分析

    APP自动化测试框架

    APP自动化测试框架是一套结合工具链、设计模式和技术规范的集成解决方案。以下是基于主流技术实践的核心要点总结: 一、核心模块构成 环境管理‌ 支持物理机/虚拟机/容器部署,集成ADB、Appium
    的头像 发表于 05-07 07:35 429次阅读
    APP<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>框架

    通用自动化测试软件 - TAE

    INTEWORK-TAE(Test Automation Executor) 是一款通用的测试用自动化执行框架,用于汽车电子自动化测试,可
    的头像 发表于 01-02 13:42 1286次阅读
    通用<b class='flag-5'>自动化</b><b class='flag-5'>测试</b>软件 - TAE

    串口屏自动化测试

    严谨而高效的自动化测试方案显得尤为重要。以下是对串口屏自动化测试策略的深度解析,旨在通过高质量的测试设计,严格控制产品设计质量,推动产业升级
    的头像 发表于 12-27 17:17 1744次阅读