XML调用 CAPL Test Function

news2024/11/18 17:32:17
  • 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
  • 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
  • 🍅 玩转CANoe,博客目录大全,点击跳转👉

📘前言

  • 🍅 在做测试用例开发的时候,我们可能期望在执行测试用例之前,做一些变量初始化,复制,文本处理等前瞻性工作,

  • 🍅 有些小伙伴可能想通过on starton prestart 实现,但这是不理智的,在test units and test moduleson start 是不可用的,而 on prestart 初始化变量等是不可靠的。

  • 🍅 所以如果是XML test modules类型的测试用例,想要完成初始化的一些工作,使用XML调用 CAPL Test Function是一个不错的选择

CANoe中XML编程常用语法

  • 📘前言
  • 🌎CAPL Test Function
  • 🌎测试用例1(preparation标签下的无参数调用)
  • 🌎测试用例2(testcase标签下的带参数调用)
  • 🌎测试用例3(completion标签下的带参数调用)
  • 🌎总结

🌎CAPL Test Function

下图是Call CAPL Test Function的Help解释:

  • 1,XML test module 中的XML文件可以调用CAPL中的Test Function,且只能被XML调用。
  • 2,调用capl中的testfunctioncapltestfunction标签,且该标签无法独立使用,需被 或 或 标签包含使用。
    3,以最简单的例子 <capltestfunction name="test_01" title="call test function : test_01"></capltestfunction>
  • name的值必须和CAPL中的testfunction 一致。
  • title 的值可以任意填写
    4,testfunction 的函数是没有返回值的。
    5,capltestfunction是可以传参调用的,支持的参数有:float|int|string|signal|envvar|sysvar

在这里插入图片描述

🌎测试用例1(preparation标签下的无参数调用)

  • 1️⃣ 如下图的CAPL界面,创建了一个testfunction test_01()

在这里插入图片描述


  • 2️⃣ 创建的xml文件如下图,通过 capltestfunction 标签调用 capl脚本中创建的 test_01()函数

在这里插入图片描述

<testmodule title="XML Test Module" version="1.1">
  <description>XML Test Module</description>
  <preparation>
    <initialize title="Initialize test module" wait="200">
      <!-- <envvar name="">1</envvar> -->
    </initialize>
	<capltestfunction name="test_01" title="call test function : test_01"></capltestfunction>
  </preparation>
  <testgroup title="UDS">			
	<capltestcase name="TC_0001" />
	</testgroup>
  <completion>
    <initialize title="Adding testreport info" wait="500">
      <!-- <envvar name="">0</envvar> -->
    </initialize>
  </completion>
</testmodule>


  • 2️⃣ 例如,新建一个xml文件,命名为test.xml ,写入如下代码,新建一个XML Test Modele 节点,测试下,观察测试报告的输出
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13"></testmodule>


  • 3️⃣ 根据输出报告可以看出 title=“testmodel_tag” ,输出的报告名字就是testmodel_tag

在这里插入图片描述


  • 3️⃣ 创建的Test Module测试节点。然后执行测试,根据结果可以看到XML成功调用了函数test_01
    在这里插入图片描述
    在这里插入图片描述

🌎测试用例2(testcase标签下的带参数调用)

  • 1️⃣ 如下图的CAPL界面,创建了一个testfunction test_02(int s)
    在这里插入图片描述

  • 2️⃣通过 testcase 标签调用 capl脚本中创建的 test_02()函数
<testmodule title="XML Test Module" version="1.1">
  <description>XML Test Module</description>
  <preparation>
    <initialize title="Initialize test module" wait="200">
      <!-- <envvar name="">1</envvar> -->
    </initialize>
	<capltestfunction name="test_01" title="preparation标签下的无参数调用"></capltestfunction>
  </preparation>
  <testgroup title="UDS">			
	<capltestcase name="TC_0001" />
	
	<testcase title="TC_0002" ident="TC_0002">	
		  <capltestfunction name="test_02" title="testcase标签下的带参数调用">
				<caplparam name="para1" type="int">0x01</caplparam>
		  </capltestfunction>
		  				 
	</testcase>
	
	</testgroup>
  <completion>
    <initialize title="Adding testreport info" wait="500">
      <!-- <envvar name="">0</envvar> -->
    </initialize>
  </completion>
</testmodule>

  • 3️⃣ 输出结果,根据结果可以看到XML成功调用了函数test_02
    在这里插入图片描述

🌎测试用例3(completion标签下的带参数调用)

  • 1️⃣ 如下图的CAPL界面,创建了一个testfunction test_03(char s[])
/*@!Encoding:936*/
testfunction test_01()
{
  write("***************XML调用了 testfunction test_01***************");
}

testfunction test_02(int s)
{
  write("***************XML调用了 testfunction test_02 ,接收参数:%d***************",s);
}

testfunction test_03(char s[])
{
  write("***************XML调用了 testfunction test_03 ,接收参数:%s***************",s);
}

testcase TC_0001()
{
  
}



  • 2️⃣通过 completion 标签调用 capl脚本中创建的 test_03()函数
<testmodule title="XML Test Module" version="1.1">
  <description>XML Test Module</description>
  <preparation>
	<capltestfunction name="test_01" title="preparation标签下的无参数调用"></capltestfunction>
  </preparation>
  <testgroup title="UDS">			
	<capltestcase name="TC_0001" />
	
	<testcase title="TC_0002" ident="TC_0002">	
		  <capltestfunction name="test_02" title="testcase标签下的带参数调用">
				<caplparam name="para1" type="int">0x01</caplparam>
		  </capltestfunction>
		  				 
	</testcase>
	
	</testgroup>
  <completion>
	  <capltestfunction name="test_03" title="completion标签下的带参数调用">
			<caplparam name="para1" type="string">hello</caplparam>
	  </capltestfunction>
  </completion>
</testmodule>


  • 3️⃣ 输出结果,根据结果可以看到XML成功调用了函数test_03
    在这里插入图片描述

🌎总结

23

7

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
    18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构:完全二叉树开胃菜小练习

目录 一.前言 二.完全二叉树的重要结构特点 三.完全二叉树开胃菜小练习 1.一个重要的数学结论 2.简单的小练习 一.前言 关于树及完全二叉树的基础概念(及树结点编号规则)参见:http://t.csdn.cn/imdrahttp://t.csdn.cn/imdra 完全二叉树是一种非常重要的数据结构: n个结点的…

22-基于分时电价条件下家庭能量管理策略研究MATLAB程序

参考文献&#xff1a;《基于分时电价和蓄电池实时控制策略的家庭能量系统优化》参考部分模型《计及舒适度的家庭能量管理系统优化控制策略》参考部分模型主要内容&#xff1a;主要做的是家庭能量管理模型&#xff0c;首先构建了电动汽车、空调、热水器以及烘干机等若干家庭用户…

【C++入门第二期】引用 和 内联函数 的使用方法及注意事项

前言引用的概念初识引用区分引用和取地址引用与对象的关系引用的特性引用的使用场景传值和引用性能比较引用和指针的区别内联函数内联函数的概念内联函数的特性前言 本文主要学习的是引用 及 内联含函数&#xff0c;其中的引用在实际使用中会异常舒适。 引用的概念 概念&…

基于SpringBoot的企业资产管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

蓝桥2.24训练

1&#xff0c;奇怪的函数 P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1这道题有两个点&#xff0c;一个是求数的位数 2&#xff0c;用整数二分求出的位数与n比较 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n; int ma…

【华为OD机试模拟题】用 C++ 实现 - 矩阵最值(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

flutter- JSON解析框架使用方法json_serializable

对于目前来说&#xff0c;大部分的API网络请求的通讯内容数据格式都是JSON。JSON返回的都是字符串&#xff0c;假如要取到data里面的id&#xff0c;去直接字符串截取肯定是不行的&#xff0c;要通过一定的方式把它解析成Map或者解析成对象&#xff0c;再去处理它。像一些简单的…

YOLOv5深度剖析

目录 YOLOv5算法概述 网络结构 backbone Conv模块&#xff1a; C3模块 SPPF neck 图形特征与语义特征 特征金字塔 head YOLOv5算法原理 以感受野理解网格 框回归以及分类 YOLOv5细节 消除网格敏感度 b. 正样本匹配 c. 损失计算 YOLOv5算法概述 YOLOv5与历代YO…

【异常】导出Excel异常This archive contains unclosed entries.

一、异常说明 二、定位问题代码 一看问题, 上下文都是与订单相关的内容。 查询代码的使用地方,发现出现在这个Mybatis的select语句中 查看备注,发现是订单物流,那就没跑了, 肯定是商城的物流模块出了问题 那是什么地方用到了这个物流模块而且涉及到导出功能呢? 经验告诉…

代码随想录算法训练营day42 |动态规划之背包问题 11.分割等和子集 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

day4211.分割等和子集1.dp数组的含义2.确定递推公式3.dp数组初始化4.确定遍历顺序5.打印dp数组1049. 最后一块石头的重量 II1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组494. 目标和1.确定dp数组以及下标的含义2.确定递推公式3.…

ChatGPT懂SAP吗?跟ChatGPT聊完后,我暂时不担心会失业

我弄了个ChatGPT账号。随便问了一下他SAP的问题。贴出来跟大家分享一下。 问题1&#xff1a;我是 SAP 开发工程师&#xff0c;你有什么可以帮到我。 作为一个语言模型&#xff0c;我可以为您提供关于SAP开发的一般性建议&#xff0c;以及关于如何使用SAP软件的一些技巧。以下是…

【华为OD机试模拟题】用 C++ 实现 - 合规数组(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

流感来了,这类人最容易感染!

最近有学校因多名学生发热停课&#xff0c;浙江多地疾控也提醒大家现在是进入了甲流高发期。今天就来讲一讲甲流该如何防护。首先甲流与普通感冒不同&#xff0c;感冒病原体是鼻病毒、冠状病毒、副流感病毒等。流感病毒是正粘病毒科&#xff0c;根据核蛋白和基质蛋白M1抗原性的…

六千字让你明白什么是数字孪生?

文章目录1. 背景2. 数字孪生基础2.1 概念2.2 价值3. 技术生态3.1 技术体系3.2 核心技术3.2.1 多领域、多尺度融合建模3.2.2 数据驱动与物理模型融合的状态评估3.2.3 数据采集和传输3.2.4 全生命周期数据管理3.2.5 虚拟现实呈现3.2.6 高性能计算3.3 建设3.3.1 重点3.3.1.1 数字孪…

3款强大且实用的电脑软件,颠覆你的认知,值得一试

闲话少说&#xff0c;直上狠货。 1、一个木函 一个木函仅一张照片的体积&#xff0c;却提供了与日常、图片、设备、文件、文字处理等等相关的80多种工具&#xff0c;相当实用&#xff0c;更牛的是&#xff0c;完全免费&#xff0c;无任何弹屏广告。一个木函体积小&#xff0c;简…

力扣-游戏玩法分析

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;511. 游戏玩法分析二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结…

【Acwing 周赛复盘】第91场周赛复盘(2023.2.18)

【Acwing 周赛复盘】第91场周赛复盘&#xff08;2023.2.18&#xff09; 周赛复盘 ✍️ 本周个人排名&#xff1a;1286/3115 AC情况&#xff1a;2/3 这是博主参加的第六次周赛&#xff0c;周赛当晚有事&#xff0c;是后来定时自测的 &#x1f602; 在 20 分钟内 AC 了 2 题&…

计算机408考研先导课---C语言难点2

目录 一、字符型数据与字符串型数据的比较 1、字符型数据特点 2、字符串型数据特点 二、字符数组 1、定义 2、输入输出 ①输入 ②输出 3、字符处理函数 ①put函数 ②gets函数 ③strcat函数 ④strcpy函数 ⑤strcmp函数 ⑥strlen函数 ⑦strlwr函数 ⑧strup…

LeetCode练习三:链表

文章目录一、链表基础1.1 无序表&#xff08;UnorderedList&#xff09;1.1.2 双向链表1.1.3 循环链表1.2 链表的基本操作1.2.1 定义链表结构1.2.2 建立线性链表1.2.3 求线性链表的长度1.2.4 查找元素1.2.5 插入元素1.2.6 改变元素1.2.7 删除元素1.3 有序表OrderedList1.4 链表…

Redis之消息队列实现

文章目录秒杀场景采用消息队列实现List实现消息队列PubSub&#xff08;发布订阅&#xff09;实现消息队列基于Stream实现消息队列消费者组实践总结秒杀问题是非常重要且比较难实现的&#xff0c;如果不进行架构的优化的话&#xff0c;直接访问会给业务系统造成很大的压力… 秒杀…