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

2024-02-03 23:12

本文主要是介绍自动化诊断测试之CANoe.DIVA入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

0 前言

1 CANoe.DIVA基础

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 

 

谢谢大家! 

这篇关于自动化诊断测试之CANoe.DIVA入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675715

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就