CAPL Test Module
在“Vector-常用CAN工具 - CANoe入门到精通”的第4/4篇中介绍了作为Server端的Network Node节点以及相应的一些常用函数,今天我们来介绍下当前依然有很多人在用的自动化脚本开发编译器 - CAPL Test Module,这个基本能满足单个功能模块的自动化脚本和使用;因此也是一个功能相当强大的工具,而且开发语言也是CAPL,今天也是我们CANoe工具使用的第六章了。下面就来介绍它的使用。
六、CAPL Test Module使用及配置
1、创建CAPL Test Module节点
Simulation -> Simulation Setup -> 右键选择CAPL Test Module
点击铅笔的位置,就能打开一个编辑面板(如果为首次创建则需要创建后才可以)
创建代码文件:选择放置文件的文件夹,然后设置名称即可(这里可以需要选择一个.can作为主编辑文件,如果想要将多类函数分类,或者单个文件太大,可选择创建.cin文件进行包含即可)
CAPL编辑面板,这里我们可以看到有三个分区,分别是功能区、代码编辑区、信号|函数区;乍一看好像跟NetworkNode编辑好像没什么太大区别,不过仔细观察下,在功能区还是有蛮大的改变的,新增了Test Function、Test Case、Test Control、Map Windows等脚本开发专用功能。
大家可以对比下NetWorkNode节点的编辑面板:
2、CAPL编辑介绍
如上图,在编辑区,我们首先看到的是include,学过c语言的都知道,这在c中也是一个经典的包含,不过这里包含的文件主要是.can和.cin类型的文件,当然也会有一些.dll文件(这个作为较难懂的,如果有需要我们后续专门进行分享)。
variable,这个就是我们.can的里面的全局变量了,大家一定要注意这个是在.can文件中的全局变量,关于全局变量和局部变量我们不再这里进行过多的赘述,大家如果有兴趣可以搜索下c语言相关的,会有非常多的介绍。在variable中,我们一般会把一些公共的参数放在这里,方便各个函数间的调用,不过使用的时候一定要注意初始化,否则出现问题可是不太容易排查的。
Function,定义的功能函数,实现某一特定的功能或者动作。
void test_function()
{
write("开始执行test_function函数");
}
testfunction,定义测试函数。测试函数跟function类似也是一个函数,不过它可以(重新)用于»测试用例和»测试序列。这是与function函数功能不同的地方,testfunction在测试报告中自动生成报告模块。如下图:
testfunction test_functions()
{
write("开始执行test_functions函数");
}
<testcase title=" Name of test case" ident="ID of test case">
...
<capltestfunction
name="CAPL name of test function"
title="Display name for CAPL test function">
<caplparam name="Parameter name"
type="float|int|string|signal|envvar|sysvar">Parameter value</caplparam>
</capltestfunction>
...
</testcase>
testcase,这个就很明显了,就是对应我们测试用例的一条测试脚本,以testcase为条目,一个一个的编写猜测脚本,最终添加到testcontrol中,形成一个完整的测试模块。
testcase test_cases1()
{
write("开始执行test_functions函数");
}
testcase test_cases2()
{
write("开始执行test_functions函数");
}
testcase test_cases3()
{
write("开始执行test_functions函数");
}
Test Control,即最终的测试模块控制集合;
void MainTest ()
{
test_cases1();
test_cases2();
test_cases3();
}
3、常用工具栏功能介绍
Inport Environment:导入同步变量,这里用的主要是CANoe设置的变量在这里可以进行一键同方便使用。其他的都是常规的,我感觉没什么难度,就不一一介绍。
4、编译
在完成CAPL功能编程后进行保存,然后在此处进行在日编译导入,如果没有报错,就可以进行使用了。
5、 导入到CANoe工程的TestModule
Test -> Test Module -> 添加即可
这里就完成了最简单的一个Test Module,在执行的时候我们就可以直接全部执行。但是如果想要做成可选择的,就比较麻烦;因为vector现在已经删除了xml文件的编辑工具,因此如果真的想做只能通过找一个并且按照它的格式去编写,这种方式太难,不建议使用。另外一种方式就是做系统变量,通过系统变量和编译文件中的testcase链接,另外一端和Panel面板配置,实现两端的联通,最终实现可选择;不过无论是哪种实现方式对于小白来说都不适合,如果大家有需要可以单独联系我一起聊下这块。
下期预告:介绍Test Module常用的函数以及编程方法、注意事项等。