CAPL自动化测试

本文详细阐述了CANoe自动化测试系统的架构,涉及SystemUnderTest、VTsystem和残余总线仿真,介绍了TestUnit与TestModule的区别,以及如何利用CAPL和XML模块进行脚本开发。重点讲解了TFS(TestFeatureSet)和TSL(TestServiceLibrary)的功能,包括约束设置、信号测试、等待指示等,并讨论了CAPL脚本的封装加密方法。
摘要由CSDN通过智能技术生成

基于CANoe的自动化测试系统的整体架

1. SUTSystem Under Test 被测系统,一般是待测ECU

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

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

Test UnitTest Module的区别

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

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

CANoe的测试功能模块包括Test ModulesTest Units两大组件,并且集成了TFSTest Feature Set)测试功能集和TSLTest Service Library)测试服务库来帮助用户实现高效的自动化测试

通过Test Modules进行自动化测试脚本的开

Insert CAPL test module

点击Test-TestSetUp,打开Test Setup for Test Modules

创建新的测试环境

增加新的CAPL测试模

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

测试脚本的运行逻辑是:程序开始运行时,会先进入Main Test函数里,挨个执行主函数里的测试用例脚本。执行测试用例脚本的同时,外部的事件函数也会执行。我们正常是在事件函数中取得一些我们想要的信息(如本例子中的已经收到的报文个数和发送的个数),在测试用例时间到达之后,在测试用例函数中判断结果与预期是否一致,并输出测试结果。

Insert XML test module

空白处右击

Insert xml test module

Choose vxt or xml file

Choose CAPL test script

Double click

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:用于开始或继续检测事件。

CAPL脚本的封装加

CAPL脚本的加密与保护主要有三种方式:编译后删除源代码、加密后删除源代码和加密保护与硬件绑定

1编译后删除源代码

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

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

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

2加密后删除源代码

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

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

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

3加密保护与硬件绑定

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

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

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汽车行业的快速发展,汽车技术的不断创新,尤其是汽车功能的多元化,使汽车上的电子单元越来越多。对于汽车的安全,主要指汽车售后服务,ECU 诊断尤其重要,诊断中包含对故障的测试,一般故障的产生和恢复策略,ECU 内部自检测策略,都是汽车诊断必不可少的一部分,本文主要介绍在 CANoe 软件下通用的 CAPL 语言,运用 CAPL 语言编写程序,然后合理的连接硬件,根据参数正确对软件进行相应的配置,使用一些接口函数,通过 LabVIEW 编程实现上位,从而控制硬件及软件的运行,生成对应的测试报告,充分分析报告,得到需要的结果,从而实现诊断故障自动化测试。   近几年了,随着汽车技术不断的改进与更新,汽车市场进入了一个快速发展的阶段,在追求价格日益下降的同时,还要求汽车的性能得到提高,为了满足客户的需求,不同功能单元的 ECU 运用在汽车上,ECU 之间通过 CAN 线或者 K 线传输信号,速度更快,信号更稳定,但是稳定的背后,却使汽车的系统变得越来越复杂。汽车控制的电子化增加了汽车诊断维修工作的难度,特别是对一些故障的测试,需要对故障的策略了解很清楚,使用一些信号模拟设备,去制造相应的故障。传统的测试方法已不能达到要求,为此很多主机产迫切的需要改进诊断测试方法,从而提高效率和测试精度,从而节约开支。本文主要介绍通过 CAPL 语言程序的编写,CANoe 控制 CAPL 程序,LabVIEW 用来实现上位,控制 CANoe,使 CAPL 程序与 LabVIEW 相结合,实现诊断自动化。
CAPL(通用应用程序编程语言)是一种专为控制器区域网络CAN)开发的一种编程语言,被广泛用于车辆网络通信和自动化测试案例的开发。下面是关于CAPL自动化测试案例的回答: CAPL自动化测试案例主要包括以下几个方面: 1. CAN消息的模拟和发送:使用CAPL语言可以模拟各种CAN消息,并通过自动发送这些消息,用来测试ECU是否正确地接收和处理这些消息。 2. 信号的生成和采集:使用CAPL语言可以生成各种信号,例如车速、引擎转速等,以便测试ECU对这些信号的采集和处理能力。 3. 事件触发和相应处理:CAPL语言允许定义各种事件触发条件,并指定相应的处理函数。这可以用来模拟车辆发生特定事件(例如刹车踏板被踩下)时ECU的相应行为,并进行相应的测试和验证。 4. 数据记录和分析:CAPL语言提供了强大的数据记录和分析功能。可以通过在测试过程中记录关键数据,并使用CAPL语言进行分析和验证,以确保ECU的功能和性能符合要求。 5. 网络通信的测试:CAPL语言还可以用来模拟车辆网络通信环境,例如模拟不同的节点之间的通信,测试ECU在不同网络通信环境下的可靠性和稳定性。 总之,CAPL自动化测试案例通过使用CAPL语言,可以模拟车辆网络通信环境,并对ECU的功能和性能进行全面的自动化测试和验证。这样可以大大提高测试效率,减少人工测试的工作量,并确保ECU的质量和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值