自动化诊断测试之CANoe.DIVA入门

目录

[0 前言](#0 前言)

[1 CANoe.DIVA基础](#1 CANoe.DIVA基础)

[2 CANoe.DIVA TIPs](#2 CANoe.DIVA TIPs)

0 前言

写在前面:如对本文有任何疑问欢迎评论区讨论,希望和大家一起进步。同时HIL测试群欢迎大家加入如有需要也可私信我拉你。VT和DIVA都可以做UDS的自动化测试,但相对VT来说使用DIVA生成用例的速度会更快更全面更简单一些,同时DIVA还可以与VT一起联合做测试。由于目前项目对DIVA的依赖并不深,本文对CANoe.DIVA只做一个简单的入门介绍,意在通过此篇文章可以帮助大家快速的建立一个DIVA工程用于测试或分析。

本次使用的版本如下:

CDD:delastudio17

DIVA:16

1 CANoe.DIVA基础

1>新建一个DIVA文件首先需要打开DIVA的程序,将制作好的CDD文件进行导入

2> DIVA的前期配置主要分为两个部分:Project Configuration和Test Configuation

在Project Configuration中主要是ECU的信息。后续的几个配置可以选项,如果要与VT联合可以进行配置,我这边暂时没有用到。

3>在对项目的配置完成后就应该进行测试的配置:Test intensity就相当于进行全功能测试还是只进行一些somking test;在变体标识符这里一般可以默认不勾,如果勾的话需要在CDD中进行配置,这会在最后的TIPs中进行讲解。

4>接下来是配置时间层参数,具体的每个定时器的作用都已经详细的备注在图里了。

5>配置完定时器之后可以开始配置ECU节点相关的数据。这里需要注意的是如果一般NRC21这条是不用勾选的,并不是勾选的越多越好,勾选的越多只会增加自己分析case的时间成本,总的来说只选对的不选贵的。比如这里的ECU碰撞重启,我的项目中是没有这一项的因此我就没有勾选。

6> 这里一般需要勾选上功能寻址,这样功能寻址和物理寻址的case都会帮你测试到了。传输层的参数按照诊断调查问卷中的填写就可以了。

7>接下来是选择要进行测试的服务,个人认为这里是比较有意思的地方,你可以给你的一些服务加上precondition和clean up ,这可以增加你case 的鲁棒性,并且可以更加的贴合测试点。因为我这边没有连接VT台架去测试一些和DTC相关的case,因此下面DTC的配置就没有进行配置。

8> 一切都配置完毕后,点击generate,DIVA会自动生成case如图所示:

9>最后在CANoe中导入DIVA文件,文件的生成位置就是第一步设置的存储位置,在这里你可以进入case的编辑界面,使用capl进行case 的二次开发然后另存为,这样不需要使用DIVA,你就拥有了自己的自动化case用例了。

10>点击运行,测试完成后在DIVA中打开测试报告如下图所示,具体细节可以点进case中查看,甚至你可以看到当时的trace。还是非常的方便。

2 CANoe.DIVA TIPs

书接上回,回到变体标识的问题,如果你在这里勾选了ECU标识符,但是在CDD中却没有配置,那你每次一点开始测试就会失败,具体现象如下:

解决方法:

当CDD中有多个Variant时,可以用某个service或data object来标识某个Variant,当Client与ECU通信时,供Client识别不同的Variant。

比如,一个CDD文件中有多个ECU Variant,可以通过某个DID读取某个数据(如软件版本号)来标识ECU Variant。当CDD导入CANoe.DiVa生成测试用例时,如果通过这个DID读到的数据为CDD中设置的0.0.1,可以选择继续测试或者终止测试。

先在BaseVariant里建立Identifying,选定一个数据,通常用0x22服务读取DID某个数值来定义,如软件版本号、硬件版本号等。

再编辑具体Variant的Identifying Pattern

谢谢大家!

相关推荐
B20080116刘实42 分钟前
CTF攻防世界小白刷题自学笔记13
开发语言·笔记·web安全·网络安全·php
xiaoyaolangwj2 小时前
高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质
学习·机器人·自动驾驶
静止了所有花开3 小时前
SpringMVC学习笔记(二)
笔记·学习
爱吃生蚝的于勒3 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
长安11084 小时前
前后端、网关、协议方面补充
网络
L_cl5 小时前
Python学习从0到1 day26 第三阶段 Spark ④ 数据输出
学习
Mephisto.java5 小时前
【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
大数据·学习·hbase
红中马喽6 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
暮春二十四6 小时前
关于用postman调用接口成功但是使用Java代码调用却失败的问题
java·测试工具·postman
hzyyyyyyyu7 小时前
隧道技术-tcp封装icmp出网
网络·网络协议·tcp/ip