自动化诊断测试之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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

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

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

性能测试介绍

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