您现在的位置是:首页 >技术杂谈 >CAPL编写TestCase常用函数及使用方法介绍网站首页技术杂谈

CAPL编写TestCase常用函数及使用方法介绍

汽车测试M哥 2024-05-30 13:35:54
简介capl

哈喽,好久好久好久不见,已经记不清是断更的多少天了!

从今天开始为大家带来一些有关自动化测试脚本编写相关知识分享,主要是基于VECTOR的相关工具链进行脚本开发;废话不多说,本期就为大家分享如何在CAPL中编写一个TestCase脚本(运用CANoe的Test Module)。

1.创建Test Module

相信大家对于CANoe中的测试模块并不陌生,主要有两个部分:其一是Test Unit,主要结合vTESTstudio平台进行TestCase的编写;其二是Test Module,可以通过CANoe的CAPL等进行TestCase的编写。

本期将基于Test Module进行介绍,首先是创建Test Module:

 ①按照上图所示步骤进行创建,在步骤3处单击鼠标右键,选择Add Test Configuration 添加配置.

 ②添加配置后点击Test Setup,在下方空白处右击鼠标新建New Test Environment,如上图所示。

 ③在上述步骤的基础上右击Test Environment选择Insert CAPL Test Module,如上图所示,修改Test Module的命名并创建Test script文件,例如:ECU_demo.can.

④至此Test Module创建完成,接下来的工作就是在创建的Test script中添加相关的TestCase脚本。

2.编写TestCase脚本

在编写TestCase脚本时,首先需要了解常用的测试函数,如:

1.TestCaseTitle (char identifier[], char title[]);
2.TestStepPass (char Identifier[], char Description[], ...);
3.TestStepFail (char Identifier[], char Description[], ...);
4.TestGroupBegin (char title[], char description[]); 
5.TestGroupEnd ();

函数1是用来设置TestCase的ID和标题,例如:

testCaseTitle("TC-1","Check ECU ActiveVariant");

函数2是用来输出TestCase中的每一个步骤是否PASS,通常与函数3一起使用,例如:

if(ret == 0)
    testStepPass("1","Pass");

函数4和函数5是用来表示某个TestCase的开始和结束,如果有多个测试case,则需要多个函数4和函数5,例如:

testGroupBegin("Check ECU Variant","");
    Fun_test();
  testGroupEnd();

根据对上述函数的介绍,现编写一个简单地TestCase,如下所示:

/*@!Encoding:936*/
includes
{
  
}

variables
{
  char gECU[10] = "DoorFL";
  char activeVariant[100];
  long ret;
}

void MainTest()
{
  testGroupBegin("Check ECU Variant","");
    Fun_test();
  testGroupEnd();
}

testcase Fun_test()
{
  testCaseTitle("TC-1","Check ECU ActiveVariant");
  diagSetTarget(gECU);
  ret = diagGetActiveVariant(gECU,activeVariant,elCount(activeVariant));
  if(ret == 0)
    testStepPass("1","Pass");
  testWaitForTimeout(2000);
}

其生成的测试报告如下:

 3.总结

上述例子是一个简单地TestCase设计流程,旨在为大家说明如何使用工具取编写TestCase,在实际工程应用中的TestCase设计是比较复杂的,需要调用更多的函数以及更多的步骤,因此想要熟练的使用CAPL脚本编写TestCase,就要对其常用的函数进行了解。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。