前言:在日常的测试过程中,往往会由于报文的丢失或者延时而导致软件报错。在开发中也可能由于报文发送任务优先级而导致报文周期不稳定。因此对报文周期的检测是非常重要的。
基于xml测试节点,可以通过<cycletime_abs>和<cycle_time_rel>来对报文的周期进行检测
如下图:
<testgroup title="Message cycle test">
<testcase title="Message 0x141 cycle check" ident="Message 0x141 cycle check">
<conditions>
<cycletime_rel title="Cycle time" min="0.9" max="1.1">
<canmsg id="0x141"/>
</cycletime_rel>
</conditions>
<wait title="Wait" time="5s"/>
</testcase>
</testgroup>
但是在使用<cycle_time_rel>要首先在CanOE工程中加入相应的dbc文件同时相应的报文的GenMsgCycleTime也要定义,否则测试通不过,同时报出下面的错误。
而使用<cycletime_abs>则不用担心这样的问题。
<testgroup title="Message cycle test">
<testcase title="Message 0x141 cycle check" ident="Message 0x141 cycle check">
<conditions>
<cycletime_abs title="Cycle time" min="9.9" max="10.1">
<canmsg id="0x141"/>
</cycletime_abs>
</conditions>
<wait title="Wait" time="5s"/>
</testcase>
</testgroup>
可以看到报文的最小周期小于9.9,所以会报错。
同时由于基于vTestReport的视图不是很直观,而基于xml的视图可以对报文周期区间进行统计,所以一般使用xml视图
Tips: 报文周期的检测如放在<conditions>节点下。