vTESTstudio系列8--vTESTstudio中如何去根据需求编写自己需要的测试函数(二)

在上上篇文章中vTESTstudio系列6--vTESTstudio中如何去根据需求编写自己需要的测试函数(一),主要介绍了通过需求去实现了Rolling Counter和CheckSum的测试,今天给大家介绍一下通信测试中另外一个测试点,信号的初始值测试!!!

目录

1.信号的初始值:

2.Check Initial Value的CAPLCAPL函数的实现逻辑如下:

3.编辑测试用例:

4.执行测试结果及报告:


1.信号的初始值:

测试初始值的目的是验证每个节点在系统启动时是否处于正确的初始状态,以确保正常通信的开始。一般以客户的CAN Matrix文档中定义的初始值为准,如果在CAN Matrix中未定义,可以通过DBC文件去检查每个信号的初始值是多少:

2.Check Initial Value的CAPLCAPL函数的实现逻辑如下:

export testfunction TF_CheckInitialValue(char MessageName[], char SignalName[], float InitialValue)
{
  dword MessageID;
  long  res1;
  long Timeout;
  float SignalValue;
  signal * checksignal;
  
  Timeout = 500;
  
  RequestResponseCompareLogic("1101", "5101", "Equal","Physical");
  checksignal = lookupSignal(SignalName);
  MessageID = getMessageID(MessageName);
  res1 = testWaitForMessage(MessageID, Timeout);
  if(res1 == 1)
  {
    SignalValue = getSignal(checksignal);
    if (SignalValue == InitialValue)
    {
      testStepPass("INFO","The signal initial value(%f) is correct!",InitialValue);
    }
    else 
    {
      testStepFail("INFO","The signal initial value is wrong, expected value is %f, and actual value is %f",InitialValue,SignalValue);
    }
  }
  else if (res1 == 0)
  { 
     // Timeout occured!       
  	TestStepFail("INFO","The message has not arrived within timeout!");  
  }
  else if(res1 == -2)
  {
  	TestStepFail("INFO","Constraint violation!");
  }
  else
  {
  	TestStepFail("INFO","General error!");
  }
}

上述代码中,MessageName,SingalName,InitialValue是需要传入的函数参数,SingalName是需要传入的被测信号名,MessageName是被测信号所在的报文名,InitialValue是被测信号期望的初始值,代码的主要逻辑如下:

1.通过lookup的自带函数将传入的字符串信号名转化成信号类型

2.检测到CAN总线上有传入的MessageName是否在发送

3.通过1101控制ECU重启初始化(如何实现1101的诊断,我会在后面的文章中给大家详细介绍

4.获取被测信号的当前值,并将当前值与期望的初始值作比较,完成测试

3.编辑测试用例:

因为每个报文的包含的信号众多,可以参考上一篇文章(vTESTstudio系列7--vTESTstudio中如何实现测试用例的批量化生成),快速的生成批量的InitialValue的测试用例,生成结果如下:

4.执行测试结果及报告:

测试报告结果如下:

对具体的Pass和Fail的步骤如下:

分析发现可以实现测试信号初始值的逻辑!!!

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

道法自然0402

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

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

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

打赏作者

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

抵扣说明:

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

余额充值