【问题标题】:Which is the correct code structure to be followed for getting the best output using TestModules in Canoe?在 Canoe 中使用 TestModules 获得最佳输出应遵循哪种正确的代码结构?
【发布时间】:2019-10-15 18:39:09
【问题描述】:

我正在使用 CANoe 10.0 进行一些诊断测试,我必须为测试生成报告。所以,我正在使用测试设置来使用 CAPL 创建我的测试用例。 我知道测试从函数“MainTest”开始。 在此之后,我不知道如何构建我的测试用例以及使用哪些函数来获得报告中的正确格式。 例如,我想发送一个诊断请求并期待一个特定的响应。我希望能够在报告中显示消息的发送、收到的响应以及预期的响应。在此基础上,应该显示判决。

【问题讨论】:

    标签: testing capl canoe


    【解决方案1】:

    您可以在下面找到简单的示例。您可以在 Vector 提供的 CANoe“帮助”和“示例配置”中找到更多示例和其他用例。在第一次尝试之前,请记住添加 CDD 文件,这将允许您将诊断服务导入 CANoe 环境(我使用了示例 Vector CDD) .

    void MainTest()
    {
    TestModuleTitle ("ECU DIAGNOSTICS TEST");
    TestModuleDescription ("Basic Diagnostics Test");
    
    TestGroupBegin("ECU Extended session", "ReadPartNubmers");
    ExtendedDiagnosticSession_Start();
    //testcase 
    //testcase 
    //...
    //testcase n
    TestGroupEnd();
    
    TestGroupBegin("ECU Identification", "ReadPartNubmers");
    ReadSerialPartNumber();
    //testcase eg  ReadSerialPartNumber()... 
    //testcase 
    //...
    //testcase 
    TestGroupEnd();  
    }
    
    testcase  ReadSerialPartNumber()
    {
    diagRequest ABS_ESP.Serial_Number_Read req; //Service from CDD
    
    TestCaseTitle("TEST 1 ReadPartNumber", "Read Serial Part Number");
    
    diagSendRequest(req);
    
    if (TestWaitForDiagResponse(req, 2000)== 1)
    {
      testReportWriteDiagResponse(req);
    
      if(DiagGetLastResponseCode(req) == -1) // Positive response
      {
        byte DataBuffer[50];
    
        diagGetRespParameterRaw(req,"SerialNumber",DataBuffer,20);// get data from response
    
          if(DataBuffer[0] == 0xAA)//dummy response verification
          {
             TestStepPass("Serial Number is correct");
          }
          else
          {
             TestStepFail("Wrong Part number ");
          }
      }
      else if(DiagGetLastResponseCode(req) > 0)//Negative response 
      {
        TestStepFail("Negative response received");
      }
    
    }
    else
    {
      TestStepFail("No answer from ECU!");
    }
    }
    
    testcase ExtendedDiagnosticSession_Start()
    {
      diagRequest ABS_ESP.ExtendedDiagnosticSession_Start req; //Service from CDD, 
    
     TestCaseTitle("Test no 1", "Set Extended session");
    
    diagSendRequest(req);
    
    if (TestWaitForDiagResponse(req, 2000)== 1)
    {
      testReportWriteDiagResponse(req);
    
      if(DiagGetLastResponseCode(req) == -1) // Positive response
      {
    
       TestStepPass("Positive");
    
      }
      else if(DiagGetLastResponseCode(req) > 0)//Negative response 
      {
    
        TestStepFail("ExtendedDiagnosticSession","Negative response received");
      }
    
    }
    else
    {
      TestStepFail("ExtendedDiagnosticSession","No answer from ECU!");
    }
    
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多