分享

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

 ghostvip 2022-09-17 发布于广东

🌎相关文章

🌎前言

  • 🍅 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多