前提:
1:用于测试或调试的工程已经建立,DBC、arxml,LDF,CDD、ODX等相关必须文件已经添加到工程中。
2:这次演示的,工程是建立在CANoe15的软硬件(VN1640)基础上的。若大家使用的软硬件版本不同,请注意查询不同之处。另外多说一句,软件对硬件是向下兼容的。但是如果用低版本的硬件(VN1640)匹配高版本的工程,就会出现各种问题。
1:TestMode脚本建立:
1.1 Test中的两种测试方法
首先要了解,CANoe中主要有两种Test模式,用于执行测试任务。如下图
1:test unit:测试单元,这个模块需要单独的测试工具,且可以在teststudio插件下,实现图形化编程,本人暂时还没有使用过。暂时大家需要知道的是,这个模式下,需要单独购买测试工具。如果需要使用时,可以自行去研究一下,vector中自带的介绍文档。
2:TestModule
测试模块,这个是我们日常工作中需要经常遇到和经常使用的模块。且这个模块,不需要额外的License。
2:建立TestModule测试工程
2.1 建立一个TestModule的测试脚本
1):点击TestSetup(注意是点击TestModule下的TestSetup)
2)右击空白(注意,在已经有TestEnvironment的情况下,必须点击底下空白区域)区域:(这里由于系统原因,无法截图)。出现一个选项框,左键单击一下,出现一个新的TestEnvironment。
3)鼠标移动至,新建TestEnvironment上,右单击,出现如下的选项框。接下来我们依次介绍,各种不同的选项。
2.2 TestEnvironment的相关配置文件
TestEnvironment是一个文件夹,它可以包含很多个测试块,还可以配置对应的TestReport函数
首先简单把功能分配为以下几大类,我将按照功能的重要程度,依次介绍。
2.2.1)插入脚本文件:一共3种Module+一种NetworkNode
TestModul可以支持,插入NetworkNode/CAPL TestModule/NET TestModule/XML TestModule
四种种情况:其中插入NetworkNode,可以为工程提供各种仿真节点。其他三种本质上是使用不同的编程语言为载体实现自动化测试。本质就是实现的语言不一致。想深入了解,三种不同的编程方式的,可自行查阅相关资料。
这里我们选取,最常见的CAPL Test Module函数和XML Test Module模块,简单介绍这两种Module的配置
*1:先看,XMLtest(必须了解一点,添加这两种测试Module时,名称都是一样的,建议重新命名,采用测试名+_类型名,如上图所示),右单击,出现菜单如下图
选择Configuration,出现如下diagram
2.3 文件操作
这类选项,主要包括:文件的复制,剪切,文件的导入导出,文件的重命名,以及注释,等常规操作。大致了解下即可,需要注意两点
* TestEnvironment导入导出文件后缀名,为".tse"
*在没有授权license的情况下,不能执行,保存导入导出等操作等操作,但是删除和重命名等操作,还是可以的。这一点上VECTOR做的有点不厚道。
3)测试报告相关的
Configure Test Report 和Create TestReport相关配置
*Configure Test Report 点击配置后,出现如下界面
主要看到,其实就是设置xml格式的测试报告的存放地址。
第二:就是为了HTML格式的报告,选择一个模板,这些模板文件是CANoe,自带的一些模板文件,此文件的后缀名是“xslt”。注:不同版本的软件,可能支持和包含的文本是不一样的。如果需要详细了解,建议直接查询CANoe自带文档。点击下图中的Help
插入脚本文件
如下图所示,我们把TestModule中,所有能添加的五种 。
可以简单归类如下:
*插入一个文档,默认初始名NewFolder,图标是一个文件夹
*插入一个NetworkNode(插入一个网络节点),图标是一台小电脑
*CAPL,net,xml是统一称为Test_xx文件,图标是一台小电脑,其中嵌套着一个T。
故这三种模式,从名称上无法直接判断(即使是已经rename 过的文件),如果需要知道,我们插入的Test模块,具体是哪一个模块。可以把鼠标悬停在上面观察。软件会自动弹窗,在显示的弹窗中,我们可以观察是哪一种模块。
*还可以插入一个ReplayBlock,图标是一台电脑中嵌套了一个播放键。
NewFold
可以看做是,TestEnvironment.ase 文件的子文件夹,NewFold所有属性和TestEnvironment.ase 属性一致。NewFold后缀名也是“.ase”。同样的一个NewFold文件夹执行完毕之后。也会自动生成一份测试报告。
NetworkNode节点,可以为测试工作,提供仿真。如果我们需要在测试中仿真一个节点的话。就可以在在测试中添加一个节点,并将该节点配置正确的网络,且需根据需要添加必要的CAPL程序,使其能够正确的仿真。有一点需要注意。我们一般会把这个名称修改为 TestSimu_XXX。主要是为了在仿真界面一眼,就能看出来这个界面是用来测试仿真的。
capl测试脚本
按如图步骤,先右单击,出现的选择框内,单击选择Insert CAPL Test Module
出现如下界面
注意:插入的Insert CAPL Test Module,默认名称为TestXX,截图中的名称已经被修改过了,
右单击 CAPL->Configuration
出现如下界面
先看1部分,是功能栏:
common:主要包括是,测试Module名称,初始状态,在什么状态下,开始测量
testreport 和TestReport Filter是关于测试报告相关的选项。
component(组成成分),主要是可以添加部分测试项,比如XML格式下的,可以添加.CAN的文件
BUS部分,可以将testmodule添加到,总线中去。
总结:这个配置表,是从,名称/报告命名方式,报告的格式。存放地址/启动方式,以及是否需要添加其他变量的一个总设置表。
其中需要了解的是,CAPL Module 和 net.module的配置界面是一样的。但是xmlModule的格式却与的配置格式却与是不一样的。它是配置了txt格式的xml文件,还必须配置.CAN文件才能正常工作。
目前来说XML和CAPL格式的test module。是最常见的格式
下面展示一下xml格式的文件
<testmodule title="xxxx" version="1.0">
<testgroup title="Test">
<capltestcase name="test1" />
<capltestcase name="test2" />
</testgroup>
</testmodule>
这个格式是规定了,测试的循序。它的作用与CAPL.module模式下的主函数调度功能。
void MainTest()
void MainTest()
{
testModuleTitle("StressTest");
testModuleDescription("TestoftheCANFDbusStressTest");
testGroupBegin("Basical capablic electrial test","letsgo");
T_1test();
testGroupEnd();
testGroupBegin("Basical awaketest","letsgo");
T_2test();
testGroupEnd();
testGroupBegin("Basical sleeptest","letsgo");
T_3test();
testGroupEnd();
我们一步一步的看:
(1)首先看:void MainTest(){};我把他称为TestControl函数,可以用C/C++的mian()函数,来理解这份函数。(但是必须要作出说明的是:Void MainTest()函数与main()函数是存在本质上不同的。)
void MainTest(){};还有一个功能,就是利用CAPL内置的一些函数,用来填写部分(测试相关的信息)和构建起测试的架构。
testModuleTitle("StressTest");对应于:产生的HTML的格式名称
testModuleDescription("TestoftheCANFDbusStressTest");对应于报告中
testGroupBegin("Basical capablic electrial test","letsgo");这个内置函数有两个参数
第一个参数对应于:可以理解为测试组的名字。
第二个参数,报告是放在了这个位置,其实也可以什么都不写,采用这种格式testGroupBegin("Basical capablic electrial test"," "),理解为第二个参数是空格。
第三:testCase中写的testCaseTitle("T_1.1","11111");出现在了报告的这个地方: