CANoe自动化工程的搭建


前言:用CAPL或其他语言实现测试的自动化仅仅时一种把手动测试转变为自动化测试的过程,在实现这个过程之前,比具备编程思维和经验更重要的是准确,严谨的理解测试用例的真实意图和必要输入等信息,思路不要被测试步骤的先后、设备的使用方法所局限。

1、导入ini文件

工程的配置的文件,配置DUT相关信息,具体视工程而编写内容。
ini文件是控制器系统级别参数配置,通过配置ini文件可以实现控制器报文信息的配置。例如子网报文ID、数据长度DLC、报文周期、报文类型以及状态掩码;可以实现电源参数配置,具体测试用例执行环境的输入、例如限制电压、限制电流等。
配置DUT相关信息,ini文件的编写格式,以及编写内容是根据什么来写的,以及在工程中是如何用的?
在工程开始load进去ini文件里的信息,并进行相应存储。
在这里插入图片描述

[Title]
DUT=BD
BusType=0
Project= Example
; 0=CAN_Protocol CAN2.0
; 1=CAN_Protocol CANFD

[Power]
DUT_POWER_SUPPLY=0
; 0=DUT_POWER_SUPPLY 使用VH1150做程控电源
; 1=DUT_POWER_SUPPLY 使用第三方程控电源
; 2=DUT_POWER_SUPPLY 使用恒压适配器做电源

DUT_NORMAL_VOLTAGE=14.0
; DUT_NORMAL_VOLTAGE DUT正常工作电压,单位V

DUT_LIMIT_VOLTAGE_MIN=5.0
; DUT_LIMIT_VOLTAGE_MIN DUT最小限制电压,单位V

DUT_LIMIT_VOLTAGE_MAX=20.0
; DUT_LIMIT_VOLTAGE_MAX DUT最大限制电压,单位V

DUT_LIMIT_CURRENT=2.5
; DUT_LIMIT_CURRENT DUT最大限制电流,单位A

DUT_WAIT_SLEEP_TIME=10
; DUT_WAIT_SLEEP_TIME 等待DUT进入睡眠的最大超时时间,单位S

DUT_CAN_BUS_SLEEP_COFIRM_TIME=5000
; DUT_CAN_BUS_SLEEP_COFIRM_TIME 表明DUT报文停发到确认休眠的时长,单位ms

DUT_AWAKE_SLEEP_CALLED_TYPE=1
; 0=DUT_AWAKE_SLEEP_CALLED_TYPE测试时,既不能用本地IO使能唤醒和睡眠也不能用IGN(KL15)使能唤醒和睡眠,只能用网络唤醒
; 1=DUT_AWAKE_SLEEP_CALLED_TYPE测试时,用IGN(KL15)使能唤醒和睡眠
; 2=DUT_AWAKE_SLEEP_CALLED_TYPE测试时,用本地IO使能唤醒和睡眠

DUT_DELAY_AFTER_SLEEP=1000
; DUT_DELAY_AFTER_SLEEP 为了方便测试,使DUT睡眠后的延时时间,单位ms

DUT_DELAY_AFTER_POWERON=1000
; DUT_DELAY_AFTER_POWERON 为方便测试,使DUT KL30 ON之后的延时时间,单位ms

[Terminating_Resistor]
TR_MIN=55
TR_MAX=65

[NetworkManagement]
NM_TYPE=2
; 0:KL15OFF后不需要CAN通信的节点
; 1:KL15OFF后需要CAN通信的节点,遵循OSEK_DIRECT_NM
; 2:KL15OFF后需要CAN通信的节点,遵循AUTOSAR_NM_GWM

T_SHUTDOWN_MAX=200
T_SHUTDOWN_MIN=0
; T_SHUTDOWN_MAX代表KL15OFF后不需要CAN通信的节点的网络关闭时间,单位ms

[UDSonCAN]
CAN_Protocol=0
; 0=CAN_Protocol CAN2.0
; 1=CAN_Protocol CANFD

MaxCANFDFrameLength=64
; MaxCANFDFrameLength表示CANFD的最大帧字节长度

DIAG_FUN_ID=0x7DF
; DIAG_FUN_ID 诊断功能寻址ID

DIAG_APP_BLOCK_SIZE=0x0
; DIAG_APP_BLOCK_SIZE 传输层BLOCK_SIZE

IS_USER_BLOCK_SIZE=1
; 0=IS_USER_BLOCK_SIZE 使用DUT响应的BlockSize
; 1=IS_USER_BLOCK_SIZE 使用用户自定义的BlockSize

DIAG_APP_ST_MIN=0
; DIAG_APP_ST_MIN 单位ms

IS_USER_ST_MIN=1
; 0=IS_USER_ST_MIN 使用DUT响应的STmin
; 1=IS_USER_ST_MIN 使用用户自定义的STmin

DIAG_PADDING=0xCC
; DIAG_PADDING 发送诊断命令时,无效字节填充值

P2C_MAX=1500
;P2Client时间最大值,单位ms
P2CEx_MAX=5100
;P2ClientEx时间最大值,单位ms

[DIDInfo1]
[DIDInfo3]
DIDName=HardwareVersion
DIDValue=0xF193

2、新建 Test Environment

1、新建XML测试用例环境
Xml文件是系统级别参数配置及测试用例配置文件,用来描述项目数据、存放数据、文件包含项目名称、测试类型、测试环境、测试用例等信息。不同的测试项目只需更改xml配置文件就可以实现自动化测试目的,具体的测试用例也可以通过xml文件测试参数来完成。该文件是自动化测试脚本必要的配置文件。
在这里插入图片描述
2、导入XML测试用例文件
XML文件是调用CAPL测试用例函数,以及向CAPL函数传入参数。
在这里插入图片描述
1、testmodule
测试模组的总名称,最终会打印在报告中。
2、preparation
测试用例执行前的初始化,可以有多个preparation。比如,全局参数的载入,一些软硬件外设的初始化等。硬件比如 1150,scope,程控电源,软件,通讯协议的初始化。
3、sysvardef
定义全局的系统变量。之前讲过,系统变量也可以定义在 CANoe/Environment/System Variable
4、capltestfunction
测试函数,capltestfunction类型的测试函数可以被capltestcase调用的,也可以被preparation调用,也可以被completion调用。仅仅一个函数,执行一个任务。
5、testgroup
测试用例的集合,用户可以按照自己的方式使用testgroup对capltestcase进行分组
6、capltestcase
CAPL编写的测试用例,这就是XML与CAPL测试用例的接口函数,参数的传递也在这里实现
7、completion
与preparation形式前后对应,preparation表示测试开始前的初始化,completion表示执行测试结束后的一些必要任务,比如关闭设备电源,断开TCP连接等。

<?xml version="1.0" encoding="iso-8859-1"?>
<!--Vector Test Automation Editor 2.1.34.0-->
<testmodule title="Indirect Network" version="1.0" >

		<capltestcase name="T1" title="T1 to start CAN communication at start-up">
		<caplparam name="caseName" type="string">T1 to start CAN communication at start-up</caplparam>
		<caplparam name="caseDesc" type="string">Add your description here</caplparam>
		</capltestcase>	
	
</testmodule>

3、生成报告以及报告位置
在这里插入图片描述
4、导入CAPL文件(.can)
实现测试用例的源码。
在这里插入图片描述

3、报告类型

选择HTML格式,方便传递给用户打开报告。
在这里插入图片描述

4、代码编写

1、模块化
硬件模块化,比如,VH6501/VH1150/Scope(CAN通信测试)编写对应代码
公用功能模块化,比如,UDSOnCAN/TCPIP/RS232;
大功能模块化,比如通信/NM/FBL。
2、兼容性
扩展性,需求多样性,也要考虑局限性

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值