CPAL脚本自动化测试 ———— Test Report系列函数及使用_菜鸡小詹的博客-程序员秘密

技术标签: CAPL  黑盒测试  软件测试  

在完成了测试用例的设计之后,最终的测试用例执行结果将会以Test Report形式展示。可能测试步骤中并没有包含我们所需要的信息,那这个时候test report系列函数将帮助我们完成这个功能。

  1. TestReportAddEngineerInfo/TestReportAddSetupInfo/TestReportAddSUTInfo 函数
    使用格式如下。主要用于在测试报告中添加一些信息(测试员、测试配置、待测样品)。
    在这里插入图片描述
    用例:
	// add information to SUT information table 
TestReportAddSUTInfo("Serial No.", "A012345BC");
TestReportAddSUTInfo("Manufactured", "2003-10-02");
	// add information to test engineer information table 
TestReportAddEngineerInfo("Test Engineer", "S. Grey");
TestReportAddEngineerInfo("Stuff No.", "12345");
	// add information to test setup information table 
TestReportAddSetupInfo("Tester", "TH12");
  1. TestReportAddExtendedInfo 函数
    使用格式如下。主要用于将信息添加CANoe本身不支持的协议,常见的有HTML、txt、其他文本(将在XML报告中体现,不会再HTML报告中体现)
    在这里插入图片描述
    用例:
	// add html line to report, e.g. a link to the homepage 
TestReportAddExtendedInfo("html", "<A HREF=\"http://www.vector.com\">Homepage</A>");

TestReportAddExtendedInfo("text", "Output voltage = %d volts)", voltage);
  1. TestReportAddExternalRef 函数
    使用格式如下。主要用于在测试报告中添加外部应用。向报告添加外部引用(URL,DOORS(IBM公司的一个需求管理系统)、eASEE链接),该引用在测试报告中显示为链接。
    在这里插入图片描述
    用例:
testcase tc_1_1()
{
   TestCaseTitle("tc_1_1", "Test Case 1.1");
TestReportAddExternalRef("url", "Requirement", "doors://doorssrv:36677/?version=1,prodID=0,dbid=42d2481361dc551c,container=00004600,object=19");
}
  1. TestReportAddImage 函数
    使用格式如下。主要是用于添加图片。在XML或HTML格式的报告中,对于图片的格式也是存在着一定的要求的,这里仅支持JPEG,GIF 和 PNG这三种格式。
    在这里插入图片描述
    用例:
	// add image to report, scale down to reasonable size 
TestReportAddImage("Oscilloscope Snapshot", "osc_01.png", "400px", "");
  1. TestReportAddMiscInfoBlock 函数
    使用格式如下。主要用于生成一个新的信息区域来记录一些额外的信息。具体的信息需要使用到TestReportAddMiscInfo函数来写入。重新启用TestReportAddMiscInfoBlock 函数、用例执行结束或者调用了新用例聚会导致一个信息块的终止。
    在这里插入图片描述
    用例:
// add info block to test case in report 
TestReportAddMiscInfoBlock("Used Test Parameters");
TestReportAddMiscInfo("Max. voltage", "19.5 V");
TestReportAddMiscInfo("Max. current", "560 mA");
  1. TestReportAddMiscInfo 函数
    使用格式如下。主要用于在测试报告中添加一些信息。在使用该函数之前必须先使用TestReportAddMiscInfoBlock创建附加信息区域。 如果使用此功能但没有相应的信息区域,则将在“Write”窗口中生成警告,并自动创建一个新的信息区域。 在此信息区域中,可以使用此功能写入任意数量的信息对。
    在这里插入图片描述
    用例:
// add info block to test case in report 
TestReportAddMiscInfoBlock("Used Test Parameters");
TestReportAddMiscInfo("Max. voltage", "19.5 V");
TestReportAddMiscInfo("Max. current", "560 mA");
  1. TestReportAddWindowCapture 函数
    使用格式如下。主要用于抓取某些窗口或面板(Panel)的图片。例如在自动泊车的过程中会有视频输出,我们可以每隔一段时间进行截取,从而记录整个过程中的状态变化。这里的窗口是CANoe工程里面自带的一个窗口,不支持外部设备。例如,可以使用该函数来截取CANoe工程中的Vedio窗口,但是不能截取电脑的Camera窗口。
    在这里插入图片描述
    用例:
testcase tc_1_1()
{
   TestCaseTitle("tc_1_1", "Test Case 1.1");
   TestReportAddWindowCapture("Trace - Report", "", 
                              "Trace before execution of test case:", 
                              "tc-1.1-trace-before");

      ... execute Test Pattern(s) ...

      if (TestGetVerdictLastTestCase() != 0) {
          TestReportAddWindowCapture("Trace - Report", "", 
                                     "Testfall failed. Trace am Ende:",
                                     "tc-1.1-trace-after");
   }
}
  1. TestReportWriteDiagObject/TestReportWriteDiagResponse 函数
    使用格式如下。主要是将获取到的诊断对象、诊断响应以HTML格式写入到测试报告中。这对于后续的分析还是存在着较大的便利。例如,如果回访log则需要花费太多的时间并且占用设备,如果能在报告中直接获取到响应内容则方便了许多。
    在这里插入图片描述
    用例:
TestCase Test1()
{
   // Send Request and react to all possible cases.
   diagRequest Door.EcuIdentification_Read idReq;
   diagSendRequest( idReq);
   switch( TestWaitForDiagResponse( idReq, 200))
   {
   case 0: // Timeout: The ECU did not respond within 200 ms.
      write("No answer from ECU!");
      TestStepFail("Read ID", "No answer from ECU!");
      break;
   case 1: // response received
      TestReportWriteDiagResponse(idReq); // write response to report
      if( diagGetLastResponseCode(idReq) == -1)
      {
      // A positive response was received
      write("ECU Diagnostics Identification: %d", (long)diagGetRespParameter(idReq,"Diagnostic_Identification"));
      TestStepPass("Read ID", "Positiv response received!");
      }
      else // A negative response was received
      {
      write( "ECU Diagnostics Identification failed: 0x%x", diagGetLastResponseCode( idReq));
      TestStepFail("Read ID", "Negative response received");
      }
      break;
      default: // internal or setup error
      TestStepFail("Read ID", "Error in TestCase! Verdict unreliable.");
      }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42957717/article/details/116202208

智能推荐

Unity3D修改模型的网格数据_unity3d 模型修改后更新方法_七大黍的博客-程序员秘密

【狗刨学习网】模型导入unity后,可以使用unity的Inspector面板对模型在某个坐标轴上进行平移、旋转和缩放操作(如图1)。 图 1    Inspector面板提供功能是所见即所得的,调整后立刻可以看到效果,相当的方便。但是这些功能还不能完全满足游戏开发的要求,比如为了减轻美工的工作量一些游戏对场景中的模型标准作出了一些规定,使这些模块化

Struts2配合Log4j打印异常栈信息_yinhaixiang的博客-程序员秘密

struts2配合log4j打印异常栈信息 关于配置struts2全局异常后控制台无法打印异常信息问题 Java代码          "error">/exception/error.jsp                   "java.lang.Exceptions" result="error" />       

微信素材管理之新增、删除和获取永久素材_江南极客的博客-程序员秘密

获取永久素材、删除永久素材和新增永久素材 需要认证号(认证订阅号/认证服务号),且接口调用次数限制为10次/天,超过就会报{ [errcode] => 45009 [errmsg] => reach max api daily quota limit hint: [UOnSja0283vr31!]}错误。

如何借助数据智能提升产品分发效率?_神策数据的博客-程序员秘密

随着互联网的发展,产品的分发方式也在逐步演进。本文主要介绍四种常见的产品分发策略,并且讲述如何通过数据智能的方式提升各种分发策略的效率,助力精细化运营;同时,结合具体案例进一步说明如何进行推荐策略的迭代与优化。一、如何理解产品分发?为了更好地理解产品分发,我们以最常见的支付宝 APP 为例。每个人的支付宝首页所看到的内容是不一样的,有的有生活缴费,有的有推荐卡片,有的有资...

给大家分享一个学习的网址http://www.pin5i.com/_weixin_30722589的博客-程序员秘密

http://www.pin5i.com/转载于:https://www.cnblogs.com/liuxia123/p/6781359.html

随便推点

Guard Ring的制作(基于IC617)_fluid guard ring____Leo___的博客-程序员秘密

GuardRing的制作(基于IC617)1. 写在最前面基于网上前辈的教程及自己的实操,将Guard Ring的理论知识及制作方法做一记录。基于IC617平台,TSMC180nm工艺。2. 理论理论先放一放,先上实操。3. 实操打开layout,先在LSW窗口选中DIFF层(这是后续所有操作的参考基准层)。不同的工艺 DIFF 的命名不同,有的为 AA,有的为 Active。工具栏选中Create-&gt;Multipart Path。此时便已进入MPP命令。再按F3键,进入MPP

无法加载文件 C:\Program Files (x86)\nodejs\node_global\nrm.ps1,因为在此系统上禁止运行脚本。_error: copy c:\program files (x86)\node.js\\13.13._小猫没有鱼的博客-程序员秘密

windows中的vscode终端执行nrm的相关命令时,报错:nrm : 无法加载文件 C:\Program Files (x86)\nodejs\node_global\nrm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/ go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。解决办法:终端执行get-ExecutionPolicy,若显示Restricted,则执行set-Ex.

JS-数组/如何创建数组/数组赋值/向数组增加一个新元素/使用数组元素/数组属性length/二维数组/..._Jennyni1122的博客-程序员秘密

数组我们知道变量用来存储数据,一个变量只能存储一个内容。假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果需要存储更多数据,那就会变的更麻烦。我们用数组解决问题,一个数组变量可以存放多个数据。好比一个团,团里有很多人,如下我们使用数组存储5个学生成绩。image.png数组是一个值的集合,每个值都有一个索引号,从0开始,每...

Jmeter函数助手常用函数_jmeter常用函数_肖肖0523的博客-程序员秘密

记录一些使用过或常用的函数1、_Random函数 在指定的范围内取随机数形式:${__Random(1,999,id)} ,后续脚本中可使用${__Random(1,999,id)}或${id},取值范围一致1)随机生成数字2)添加多条数据记录且某些字段需要唯一性时使用3)3个参数,前2个必填,最后1个非必填2、__chooseRandom函数 从指定的范围里面取值形式:${__chooseRandom(a,b,c,id)},后续脚本中可使用${__chooseRand...

unity 接入fyber广告SDK_unity fyber积分墙_刘峰1011的博客-程序员秘密

最近集成fyber SDK,这里记录一下:后台配置方面的内容是其它人弄好的,我没有参与,所以这里不讨论,有需要直接参考官方文档即可:https://unity.fyber.com/docs/welcome1.下载unity 包:https://unity.fyber.com/docs/download-unity-plugin点击最下面的按钮即可下载下载后是个uni

JAVA相关基础知识---2_cnham的博客-程序员秘密

91、Servlet执行时一般实现哪几个方法?public void init(ServletConfig config)public ServletConfig getServletConfig()public String getServletInfo()public void service(ServletRequest request,ServletResp

推荐文章

热门文章

相关标签