CANoe自动化测试的配置方式四——CIN Variables数组方式
文章目录
前言
近期在做的一个自动化测试项目,尝试了一种以前没用过的测试配置方式,感觉效果还不错。然后又回顾了一下以前用过的其他几种方式,利用周末时间总结分享出来,希望对相关领域的网友有所帮助。
由于实际项目比较庞大,而且不便在网络公开,所以就参考其中一项典型的测试来做一个例程,重点是讲解其中自动化测试配置的用法。
一、例程功能
见《CANoe自动化测试的配置方式总结分析(一)——CAPL编程方式》
二、仿真ECU
见《 CANoe自动化测试的配置方式总结分析(一)——CAPL编程方式》
三、CIN Variables数组
CINVariables数组的创建如下图所示。测试人员在测试开始前,新建一个CIN文件,在全局变量数组中一次性设定全部的测试配置信息。
四、测试模块
测试模块的创建和编程代码如下。该模从CIN文件的全局变量数组中自动读取测试配置信息,发送激励报文,然后与仿真ECU解析的接收报文相对比,自动判定测试结果。
-
includes
-
{
-
-
}
-
-
variables
-
{
-
message * TestMsg;
-
int j;
-
}
-
-
void MainTest()
-
{
-
for(j=0;j<4;j )
-
CaseEvery(j);
-
-
}
-
-
testcase CaseEvery(byte j)
-
{
-
int i;
-
-
write("Load Cfg");
-
TestMsg.can = 1;
-
if(IsStad[j]) TestMsg.id = ID[j];
-
else TestMsg.id = mkExtId(ID[j]);
-
TestMsg.DataLength = Length[j];
-
for(i=0;i<Length[j];i ) TestMsg.byte(i) = Data[j];
-
-
write("Test Start");
-
output(TestMsg);
-
-
if(IsStad[j])
-
{
-
if(TestWaitForMessage(ID[j], 5000))
-
{
-
write("Judge Received");
-
if(@MiddleVar::ID_r != ID[j]) testCaseFail();
-
if(@MiddleVar::IsStad_r != IsStad[j]) testCaseFail();
-
if(@MiddleVar::Data_r[0] != Data[j]) testCaseFail();
-
if(@MiddleVar::Length_r != Length[j]) testCaseFail();
-
testStepPass();
-
}
-
}
-
else
-
{
-
if(TestWaitForMessage(mkExtId(ID[j]), 5000))
-
{
-
write("Judge Received");
-
@MiddleVar::ID_r = @MiddleVar::ID_r & 0x7FFFFFFF;
-
if(@MiddleVar::ID_r != ID[j]) testCaseFail();
-
if(@MiddleVar::IsStad_r != IsStad[j]) testCaseFail();
-
if(@MiddleVar::Data_r[0] != Data[j]) testCaseFail();
-
if(@MiddleVar::Length_r != Length[j]) testCaseFail();
-
testStepPass();
-
}
-
}
-
-
testWaitForTimeout(1000);
-
-
}
五、测试运行效果
实际测试运行的效果如下。测试配置的信息在CIN文件的全局变量数组中保存后,一键执行测试模块,可以看到激励报文的发送与配置信息一致。每个测试配置执行后的finished提示行是绿色,表示测试结果的判定为Pass。相反出现红色提示行时,表示Fail。
六、分析和应用
上述使用CIN全局变量数组实现自动化测试配置的方式,特点跟前一种使用系统变量的方式类似,都是是各个测试参数使用一个统一的配置文件(CIN文件)进行配置。具有相同的优缺点和适用场景。优点是,在一个地方即可完成对全部自动化测试信息的配置,不需要对每个测试配置单独输入或单独编程。缺点是,在编程逻辑上会稍微复杂一些,后期使用和维护时对工程师的个人能力要求会稍微高一些。适合应用于测试项目的中后期阶段,测试配置相对稳定,需要快速迭代和重复测试的场景。但是与前一种系统变量配置方式也有一定的区别,系统变量的配置是在CANoe对话框中进行编辑,CIN文件是在CAPL浏览器中直接就能编辑,灵活度和自由度都比较大,也会更方便快捷一些。
总结
后续还会更新后面几种CANoe自动化测试配置的实现方式,欢迎评论区留言、点赞、收藏和关注,这些鼓励都将成为笔者持续分享的动力。
另外,上述例程使用的Demo工程可以到笔者的主页查找和下载。
版权声明:原创文章,转载和引用请注明出处与链接,侵权必究!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhaejg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13