我是靠谱客的博主 无辜白羊,最近开发中收集的这篇文章主要介绍CANoe自动化测试的配置方式总结分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

前言

一、例程功能

二、仿真ECU

三、Panel接口

四、测试模块

五、测试运行效果

配置1:

配置2:

配置3:

配置4:

六、分析和应用

总结


前言

        近期在做的一个自动化测试项目,尝试了一种以前没用过的测试配置方式,感觉效果还不错。然后又回顾了一下以前用过的其他几种方式,利用周末时间总结分享出来,希望对相关领域的网友有所帮助。

        由于实际项目比较庞大,而且不便在网络公开,所以就参考其中一项典型的测试来做一个例程,重点是讲解其中自动化测试配置的用法。

一、例程功能

        见《CANoe自动化测试的配置方式总结分析(一)——CAPL编程方式》

二、仿真ECU

         见《CANoe自动化测试的配置方式总结分析(一)——CAPL编程方式》

三、Panel接口

        Panel接口的创建如下图所示。测试人员在每个测试开始前,手动输入测试配置信息。

四、测试模块

        测试模块的创建和编程代码如下。该模从Panel接口自动读取测试配置信息,发送激励报文,然后与仿真ECU解析的接收报文相对比,自动判定测试结果。

testcase Case1()
{
byte buf[100];
long copiedSize;
int i;
write("Load Cfg");
TestMsg.can = 1;
if(@PanelVar::IsStad) TestMsg.id = @PanelVar::ID;
else TestMsg.id = mkExtId(@PanelVar::ID);
TestMsg.DataLength = @PanelVar::Length;
copiedSize = @PanelVar::Length;
sysGetVariableData(sysvar::PanelVar::Data,buf,copiedSize);
for(i=0;i<@PanelVar::Length;i++) TestMsg.byte(i) = buf[i];
write("Test Start");
output(TestMsg);
if(@PanelVar::IsStad)
{
if(TestWaitForMessage(@PanelVar::ID, 5000))
{
write("Judge Received");
if(@MiddleVar::ID_r != @PanelVar::ID) testCaseFail();
if(@MiddleVar::IsStad_r != @PanelVar::IsStad) testCaseFail();
if(@MiddleVar::Data_r[0] != buf[0]) testCaseFail();
if(@MiddleVar::Length_r != @PanelVar::Length) testCaseFail();
testStepPass();
}
}
else
{
if(TestWaitForMessage(mkExtId(@PanelVar::ID),5000))
{
write("Judge Received");
@MiddleVar::ID_r = @MiddleVar::ID_r & 0x7FFFFFFF;
if(@MiddleVar::ID_r != @PanelVar::ID) testCaseFail();
if(@MiddleVar::IsStad_r != @PanelVar::IsStad) testCaseFail();
if(@MiddleVar::Data_r[0] != buf[0]) testCaseFail();
if(@MiddleVar::Length_r != @PanelVar::Length) testCaseFail();
testStepPass();
}
}
testWaitForTimeout(1000);
}

五、测试运行效果

        实际测试运行的效果如下。每个测试配置的信息输入后,一键执行测试模块,可以看到激励报文的发送与Panel接口定义的报文一致。每个测试配置执行后的finished提示行是绿色,表示测试结果的判定为Pass。相反出现红色提示行时,表示Fail。

配置1:

 

配置2:

 

配置3:

 

配置4:

 

六、分析和应用

        上述使用Panel接口实现自动化测试配置的方式,特点是各个测试参数不再是一个固定值,而是可以灵活输入,比如标准帧的CAN ID可以是从0x00到0x7FF的任意值。这种方式的优点是,测试配置可以实现最大的覆盖度,而且一次编程即可实现,不需对每个测试配置单独编程。缺点是,每个测试配置都要单独输入,而且测试配置需要从Panel接口加载到测试模块,接口中调用的数据类型比较多样,在数据转化时会稍微复杂一些。整体而言,这种方式适合应用于测试项目的早期阶段,测试设计还不很成熟,需要反复摸索测试配置。

总结

        以上就是本人在对CANoe自动化测试配置方式进行总结分析时,讲解的第二种实现方式。主要讲解了实现该方式的详细代码,展示了实际运行效果,最后分析了这种配置方式的特点以及适用场景。

        后续还会更新后面几种CANoe自动化测试配置的实现方式,欢迎评论区留言、点赞、收藏和关注,这些鼓励都将成为笔者持续分享的动力。

        另外,上述例程使用的Demo工程可以到笔者的主页查找和下载。


        版权声明:原创文章,转载和引用请注明出处与链接,侵权必究! 

最后

以上就是无辜白羊为你收集整理的CANoe自动化测试的配置方式总结分析的全部内容,希望文章能够帮你解决CANoe自动化测试的配置方式总结分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部