系列文章目录

CANoe快速入门实战(第一章)-CANoe 软件的基础认识和工程建立
CANoe快速入门实战(第二章)-学会发送报文和分析报文
CANoe快速入门实战(第三章)-通过ReplayBlock模块重新回放报文
CANoe快速入门实战(第四章)-图形化分析利器:Trace窗口高级技巧
CANoe快速入门实战(第五章)-系统变量的定义及使用
CANoe快速入门实战(第六章)-Panel图形化窗口设计
CANoe快速入门实战(第七章)-Network Note测试节点开发
CANoe快速入门实战(第八章)-CAPL Test Module开发
CANoe快速入门实战(第九章)-XML测试节点开发
CANoe快速入门实战(第十章)-生成CANoe自动化测试报告



大家好!欢迎来到**C小白**的技术博客空间!!!和大家一起学习CANoe.
本人专注于车载测试、诊断以及自动化脚本开发领域。
一键三连,和博主一起进阶**ECU开发及测试&CANoe使用及开发**。

前言

一、CAPL Test Module是什么?

CAPL Test Module是CANoe/CANalyzer软件中基于CAPL(CAN Access Programming Language)的测试模块,用于自动化测试ECU(电子控制单元)或总线系统。它通过脚本编写测试用例,支持模拟、验证和评估CAN/LIN/FlexRay等网络通信行为。
说白了,就是可以建立具体的测试用例模块。
我们今天还是在前面两章内容的基础工程上开启,通过系统变量和Panel结合的方式来引入今天CAPL Test Module的应用,如果有疑问的同学可以参考前期的文章。

二、建立CAPL Test Module

打开Home栏,点击Simulation SetUp,然后在弹出的Network左边横线Inset CAPL Test Module,然后在本地建立一个.CAN的文件,点击打开后就会出现Vector CAPL Browser的编辑器,就可以开始编辑CAPL的代码了。
在这里插入图片描述

三、CAPL Test Module与Network Note的区别

CAPL Test Module: 专为自动化测试设计,用于验证ECU或网络节点的功能、性能及合规性。通常集成在CANoe等测试环境中,支持测试用例编写、执行和结果分析。
Network Node: 模拟或仿真实际网络中的ECU行为,用于总线通信分析、网络拓扑验证或开发阶段的信号交互测试。
在这里插入图片描述
这里简单举了一个例子,在Network Note里面是直接能用On Start事件的,但是在CAPL Test Module 中是不被允许的;
Network Note 中只能用事件触发的方式去执行你的代码内容,而不能直接通过测试用例的方式来执行代码;但是在CAPL Test Module中是直接能写测试用例的**

四、CAPL Test Module开发过程

打开编辑器后,会自动出现以下两个关键字的内容;
1)includes: 主要用来别的文件引用放置区域;因为今天不涉及,而且我们主打快速入门实操,就不细讲这个了,后续用到的时候我们直接学习拿来用就完事了。
2)variables:主要是用来放置全局变量区域;很多时候我们会在这里面直接定义变量。
3)空白区域:下面就是脚本编辑和开发区域;根据自己想要的功能实现代码编辑就好了。

下面我们就是要正式开始编辑代码了哦,但是我们从最简单的开始,一步一步升入,上车了,请抓紧扶手跟紧!!!

1.开发目标

我们今天的目标主要是通过测试用例的驱动运行来控制Panel当中的LED指示灯的开关控制,我们的目标是让LED指示灯在亮5s中之后再次关闭;(Panel的制作请参考上一章节:https://editor.csdn.net/md/?articleId=149643557)
在这里插入图片描述

2.测试用例建立

因为我们选择的是用测试用例控制,本质上就相当于写一个测试用例,测试的目标就是开启LED指示灯5s钟后再次关闭,当然我们知道LED指示灯其实在代码过程中就是一个变量,而最终我们要做的就是要给这个系统变量赋值的变化。
首先建立测试的主函数,CAPL Test Module 中是定义了它自己的主函数的入口的。

/*@!Encoding:936*/
includes
{
  
}

variables
{
  
}

void MainTest()
{
  
}

这个MainTest就是CAPL的测试主函数。

3.变量赋值

通过前面章节的学习我们已经知道,Panel当中的控件已经和系统变量建立了绑定关系,同时也在控制设计中定义了值所以LED灯的状态,所以我们只需要在CAPL Test Module的主函数内即可对系统变量赋值以及自己的逻辑进行编码即可;
/@!Encoding:936/
includes
{

}

variables
{
  
}

void MainTest()
{
  @sysvar::MyOwnSpace::SysVariable1=1;
  testWaitForTimeout(5000);
  @sysvar::MyOwnSpace::SysVariable1=0;
}

在这里插入图片描述
自此,一个最简单的代码和逻辑就完成了,同时也实现了它的目标功能。(各位同学在学习的过程中一定要记住一个事情,就是不要觉得多长多复杂的代码才牛13,编码其实是一个思维上的事情,重要的是实现你想要的功能!!!)

4.代码编译

代码检查和编译是一个必要的步骤,首先点击Compile All,编译代码,然后再检查OutPut中的编译结果,如果显示Compile Succeeded,且显示0 error 0 warning,就意味着你的代码编译成功可以运行了。
在这里插入图片描述

三、开发成果检验

此步骤主要是检验自己的开发成果是否真实成功了,可以开始验证了。

1.打开CAPL Test Module控制

双击你自己建立的CAPL Test节点,它会弹出下面右边的窗口,该窗口主要是用于控制执行测试用例的开关;
在这里插入图片描述

2.执行Test case

在测试用例的执行窗口内,点击箭头位置的Start,就开始执行你自己设计的测试用例了。
在这里插入图片描述

3.Test case执行结果

用例开始执行,可以观察下方测试用例的状态:
在这里插入图片描述
用例完成执行,可以观察下方测试用例的状态:
在这里插入图片描述
这就意味着测试用例测试完成且通过了,如果执行失败,它下方的状态会变成Fail的。


总结

以上就是今天的全部内容了,我们第一阶段的最基础的内容就差不多更新完成了,相信从一开始学到这里的同学们,也对CANoe 以及CAPL有了一定基础的认知,下一阶段我们就要开始进阶了,学习如何用CAPL来搭建我们的自动化测试了!
为者常成,行者常至。
希望大家能有所收获,大家的支持是我持续更新下去的动力!!!
一键三连,有需要可获取CANoe安装包。
以上就是今天的全部内容了,下一次我将会进一步分享更多更干的汽车电子测试及开发的干货内容,敬请关注!

如果有需要的朋友,可以加入VX群聊(XiaoG131211),免费获取各种资源,一起分享和交流汽车电子测试与开发的技术,聊聊工作机会等等。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐