CAPL语言之TestModule(一)

创建并配置TestModule模块

image.png

右键添加一个测试模块:

image.png

然后命名后,ctrl+s保存,创建一个文件夹TestModule,保存文件;

image.png

右键:选择 insert CAPL TestModule;


image.png

创建完成后右键编辑,进行配置:
1.命名,然后创建can脚本文件,关联到我们的模块上面


image.png

2.配置报告
image.png

image.png

然后通过编辑按钮打开CAPL:


image.png

通过这个可以配置报告的输出类型:
image.png

这里的can文件是关联到测试模块的;而之前讲的基础的 can文件是关联到总线上的,对应的是ECU;

一些常用函数的说明:

1. 架构相关的函数

image.png

2. "等待"相关函数

image.png

3. 信号相关函数

image.png

4. 测试报告相关函数

image.png

5. 探测检查 相关函数

image.png

下面是工程开始时的一些基本配置

分组和一些基本信息的配置:


image.png
MainTest() 
{
  
  setWriteDbgLevel(5);
  
  testReportAddEngineerInfo("测试工程师","zsy");
  testReportAddEngineerInfo("工号","00001");
  testReportAddEngineerInfo("部门","ADAS测试组");
  
  
  testReportAddSUTInfo("产品", "引擎ECU");
  testReportAddSUTInfo("版本", "EMS1.7.3");
  testReportAddSUTInfo("迭代日期", "2022年12月9号");
  
  //=======================================
  testModuleTitle("测试标题");
  testModuleDescription("这个测试的描述信息...");
  
  testGroupBegin("分组1名称","分组1的描述");
    testCase1();
  testGroupEnd();
  
  testGroupBegin("分组2名称","分组2的描述");
    testCase2();
    testCase3();
  testGroupEnd();
  
  
  testCase4();
  testCase5();
  testCase6();
  
}

teststep的使用

testcase testCase1(){
  testCaseTitle("ts1 标识符","testCase1标题");
  testCaseDescription("描述信息");
  
  //测试过程中的步骤,通过函数写入到报告中
  testStep("XXX0消息","当前发送了一件OOOO0事件");
  //......
  testStep("XXX1消息","当前发送了一件OOOO1事件");
  
  testStepPass("事项1","成功XXXXXXXXXXXXXXXXXX");
}

testcase testCase2(){
  
  testStep("XXX0消息","当前发送了一件OOOO0事件");
   testStepFail("事项1","失败了XXXXXXXXXXXXXXXXXX");
}

监听某一个状态的结果

testcase testCase3(){
  
  int matchedResult; //监听某一个状态的结果
  
  testStep("步骤1","当前发送了一件OOOO0事件,需要一定时间执行");
  
  //让当前的程序等待1000ms再继续执行;
  testWaitForTimeout(2000); 
  
  testStep("步骤2", "继续后续的事项");
  
  
  //等待某一个信号出现某种状态
  //或者说是规定时间内监听信号的某个状态的出现
  matchedResult = testWaitForSignalMatch(OnOff,1,1500);
  if(matchedResult == 1){
    testStepPass("监听引擎","开启成功");
  }else if(matchedResult == 0){
    testStepFail("监听引擎","开启失败");
  }
  
}


让程序弹出一个确认对话框,让用户进行“是”、“否”的选择

testcase testCase4(){
  // 让程序弹出一个确认对话框,让用户进行“是”、“否”的选择
  // 一直等待到用户确认后,才继续后续的代码
  int confirmedResult;
  confirmedResult = testWaitForTesterConfirmation("请确认当前转速表上是否显示的为2000转?");
  
  if(confirmedResult == 1)
  {
    testStepPass("用例执行通过", "转速表满足预期值:2000");
  }
  else if(confirmedResult == 2)
  {    
    testStepFail("用例执行失败", "转速表不满足预期值:2000");
  }
  
}

“信号”相关的函数(只检查,不判决,也就是不给出testStepPass/testStepFail)

testcase testCase5(){
  long checkESFlag; //检查转速的结果(区间)
  long checkHLFlag;//检查头灯是否开启(单个值)
  
  // 检查EngineSpeed信号的值必须在1000到2000之间,返回一个检查结果的标志
  checkESFlag = checkSignalInRange(EngineSpeed,1000,2000);
  writeDbgLevel(5,"检查结果%d",checkESFlag);
  writeDbgLevel(5,"当前转速:%d",$EngineSpeed);
  if(checkESFlag == 1){
    testStepPass("success","转速验证成功[1000,2000],当前为%d",(int)$EngineSpeed);
  }else if(checkESFlag == 0){
    testStepFail("fail","转速验证失败,当前为%d",(int)$EngineSpeed);
  }
  
  checkHLFlag = checkSignalMatch(HeadLight,1);//单个值
  
  if(checkHLFlag == 1){
    testStepPass("success","车灯状态验证:1,当前为%d",(int)$HeadLight);
  }else if(checkHLFlag == 0){
    testStepFail("fail","车灯状态验证失败,当前为%d",(int)$HeadLight);
  }
  
}

// “信号”相关的函数(检查后进行判决)
testcase testCase6(){
  
  testValidateSignalInRange("检查引擎转速",EngineSpeed,1000,2000);
  
  testValidateSignalMatch("检查头灯状态",HeadLight,1);
}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容