前言:用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格式,方便传递给用户打开报告。
文章来源:https://www.toymoban.com/news/detail-655255.html
4、代码编写
1、模块化
硬件模块化,比如,VH6501/VH1150/Scope(CAN通信测试)编写对应代码
公用功能模块化,比如,UDSOnCAN/TCPIP/RS232;
大功能模块化,比如通信/NM/FBL。
2、兼容性
扩展性,需求多样性,也要考虑局限性文章来源地址https://www.toymoban.com/news/detail-655255.html
到了这里,关于CANoe自动化工程的搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!