Capl编程xml标签语法(1) —— Test Module/Test Group/Test Case

🌎相关文章

🌎前言

  • 🍅 capl 编程中xml语法很重要,当一个测试工程越大,越能体现xml 编程的优越性,可以让你的CASE开发的更通用性
  • 🌳测试软硬件环境:
  • Win10 x64
  • CANoe 11 SP2 x64

请添加图片描述

🌎Structuring Elements

🌙Test Module

  • 1️⃣ 我认为一个 text.xml 文件应该只有一个 Test Module 标签,这个标签有两个属性title 和version,其中title属性的值,会在测试报告html文件的文件名。

testmodule
*Test modules are used to specify and verify individual development steps, inspect prototypes or implement regression and conformity tests.
They consist of a number of test cases.*


  • 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

在这里插入图片描述


🌙Test Group

  • 1️⃣ Test Group 是最常用的 标签,可以包含testcase 标签也可以嵌套包含 Test Group 标签。

在这里插入图片描述


  • 2️⃣ test.xml文件中的代码如下:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13">
	<testgroup title="demo1"> <!-- father -->
		<testgroup title="demo1-1"> <!-- children 1 -->
			<testgroup title="demo1-1-1"></testgroup> <!-- grandchildren -->
		</testgroup>

		<testgroup title="demo1-2"> <!-- children 2 -->
			<testgroup title="demo1-2-1"></testgroup>
		</testgroup>
	</testgroup>
	<testgroup title="demo2"></testgroup>
	<testgroup title="demo3"></testgroup>
</testmodule>

  • 3️⃣ 在 test setup中的视图如下:
    在这里插入图片描述

🌙 Test Case

  • 1️⃣ 这个标签我用的少,相比test group ,这个可以包含一下实例化的参数设置,比如信号,变量,值的设置,但是不能包含《capltestcase》标签
    在这里插入图片描述

  • 2️⃣ test.xml文件中的代码如下:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13">
	<testgroup title="demo1"> <!-- father -->
		<testgroup title="demo1-1"> <!-- children 1 -->
			<testgroup title="demo1-1-1"></testgroup> <!-- grandchildren -->
		</testgroup>
		<testgroup title="demo1-2"> <!-- children 2 -->
			<testgroup title="demo1-2-1"></testgroup>
		</testgroup>
	</testgroup>
	<testgroup title="demo2"></testgroup>
	
	<testcase ident="TC101" title="Lock statically">

		<!-- <capltestcase name ="test_01" title="test_01 "/> -->
		<preparation>
			<initialize title="Initialize test module" wait="1000">
				<envvar name="env_TM_INIT">1</envvar>
				<envvar name="env_TEST_Report">1</envvar>
				<envvar name="env_TEST_ReportMksVer">1</envvar>
				<envvar name="env_WriteVersions2Report">1</envvar>
			</initialize>
		</preparation>
	</testcase>

	<testcase ident="TC101" title="Lock statically">
		<!-- <capltestcase name ="test_01" title="test_01 "/> -->
		<preparation>
			<initialize title="Initialize test module" wait="1000">
				<envvar name="env_TM_INIT">2</envvar>
				<envvar name="env_TEST_Report">2</envvar>
				<envvar name="env_TEST_ReportMksVer">2</envvar>
				<envvar name="env_WriteVersions2Report">2</envvar>
			</initialize>
		</preparation>
	</testcase>
</testmodule>

  • 3️⃣ 在 test setup中的视图如下:
    在这里插入图片描述

🌙CAPL Test Case

  • 1️⃣ 这个标签重点说下caplparam type & name ,这个参数可以向CAPL中传递参数,type 是参数类型,name 是capl脚本中testcase的参数名

在这里插入图片描述


  • 2️⃣ 这里我们列出了所有的参数类型, 整形,浮点型,字符串,环境变量,系统变量,信号 :
// Some comments here
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13">	
	<testgroup title="demo2">	
		<capltestcase name="TC1">
		  <caplparam name="int_type" type="int">10</caplparam>  <!--传递整形参数-->
		  <caplparam name="float_type" type="float">20</caplparam>  <!--传递浮点参数-->
		  <caplparam name="str_type" type="string">this is string type</caplparam> <!--传递字符串参数-->
   		  <caplparam type="envvar" name="envvar_type">  <!--传递环境变量参数-->
		    <envvar name="env_TEST_Report"></envvar>
		  </caplparam>

		  <caplparam name="sysvar_type" type="sysvar">  <!--传递系统变量参数-->
    			<sysvar namespace="GEEA_CommFunctionVar" name="LostCommuticaionFrameID"></sysvar>
  		 </caplparam>

		  <caplparam name="flexraysignal" type="signal"> <!--传递flexray signal参数-->
		  	<flexraysignal name="isCarTiGlb" />
	  	 </caplparam>

		  <caplparam name="cansignal" type="signal">  <!--传递can signal参数-->
		  	<cansignal name="PrimAsyALgtReqRngForSafeMax" />
		  </caplparam>
		</capltestcase>
	</testgroup>

</testmodule>

  • 3️⃣ 新建一个can文件 ,test.can 脚本如下:
// Some comments here
testcase TC1(int int_type, double float_type, char str_type[],envvarInt * envvar_type,sysvarInt* sysvar_type, signal * flexraysignal,signal * cansignal)
{
  $flexraysignal = float_type;
  $cansignal = float_type;  
  testWaitForTimeout(100);
  Write("int:%d",int_type);
  Write("double:%f",float_type);
  Write("char:%s",str_type);
  Write("envvarInt:%d",@envvar_type);
  Write("env_TEST_Report:%d",@env_TEST_Report);
  Write("sysvarInt:%d",@sysvar_type);  
  Write("flexraysignal:%f",$flexraysignal);
  Write("cansignal:%f",$cansignal);
}

  • 4️⃣ CANoe中输出打印结果:
    在这里插入图片描述

🌎Other Elements

🌙 Initialize&preparation&completion

  • 1️⃣一般在Initialize 标签内初始化某些变量,信号的值。Initialize作为preparation的子节点, completion常常用当前test group 的结束的地方

在这里插入图片描述
在这里插入图片描述


  • 2️⃣ test.xml文件中的代码如下:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13">	
	<testgroup title="demo2">
		<preparation>
		  <initialize title="Initialize test module" wait="200">
			<envvar name="env_TEST_Report">1</envvar>
			<sysvar name="LostCommuticaionFrameID" namespace="GEEA_CommFunctionVar">3</sysvar>
			<flexraysignal name="isCarTiGlb"> 100 </flexraysignal>
			<cansignal name="DeactiveTJPReqChks"> 100 </cansignal>
		 </initialize>
	    </preparation>
	</testgroup>
</testmodule>

  • 3️⃣ 测试报告中的结果:

在这里插入图片描述

🌙Comment

  • 1️⃣ 在xml文件中可以添加comment ,会在test reporter中打印出来,比较有意思的是,可以添加图片在报告中

在这里插入图片描述


  • 2️⃣ test.xml文件中的代码如下:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<testmodule title="testmodel_tag" version="1.13">	
	<testgroup title="Velocity">
		<preparation>
			<initialize wait="200ms" title="Initialize signal">
			   <flexraysignal name="isCarTiGlb"> 100 </flexraysignal>
			</initialize>
		</preparation>

		<testcase title=" WWW" ident="ID of test case">
		 <comment>aaaaaaaaaaaaaaaaaaaaaa
		  </comment>
		 <comment>bbbbbbbbbbbbbbbbbbbbbb
		  </comment>
		 <comment>                      <!--添加一张图片-->
		    <text>xml code example.</text>
		    <resource width="400px" height="400px">testpng.png</resource>
		  </comment>
		</testcase>
		<capltestcase name ="test_01" title="1 test "/>
	</testgroup>
</testmodule>
  • 3️⃣ 测试报告中的结果:
    在这里插入图片描述

请添加图片描述
23

🌎总结

7

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

  • 🚩 有微信的小伙伴可以关注下浪哥车载诊断,一个行业内小小圈子,群里有网盘资料源码还有各路大神 闲时交流交流技术,聊聊工作机会啥的。

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

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:Age of Ai 设计师:meimeiellie 返回首页
评论 17

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值