【研发日记】CANoe自动化测试的配置方式(四)——CIN Variables数组方式

本文介绍了在CANoe自动化测试中,使用CAPL编程和CINVariables数组进行测试配置的方法,包括测试模块的创建、CIN文件的使用以及其优缺点和适用场景。作者还提供了示例代码和实际运行效果分析。
摘要由CSDN通过智能技术生成

文章目录

前言

一、例程功能

二、仿真ECU

三、CIN Variables数组

四、测试模块

五、测试运行效果

六、分析和应用

总结


前言

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

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

一、例程功能

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

二、仿真ECU

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

三、CIN Variables数组

        CIN Variables数组的创建如下图所示。测试人员在测试开始前,新建一个CIN文件,在全局变量数组中一次性设定全部的测试配置信息。

四、测试模块

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

includes
{
    #include "..\Include\DemoLib.cin"
}

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自动化测试配置方式进行总结分析时,讲解的第四种实现方式。主要讲解了实现该方式的详细代码,展示了实际运行效果,最后分析了这种配置方式的特点以及适用场景。

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

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


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

  • 78
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 62
    评论
评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Cssust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值