UDS Smoke Test

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

UDS smoke test Capl 


提示:以下是本篇文章正文内容,下面案例可供参考

一、使用步骤

1.引入库

代码如下(示例):

variables
{
  diagRequest MFC5J3.SeedLevel1_Request g_req_Request;
  diagRequest MFC5J3.KeyLevel1_Send g_req_Send; 
  
  dword KeyNumber;
  dword SeedNumber;
  
  dword Send_Byte3,Send_Byte4,Send_Byte5,Send_Byte6;

}

dword ChangAn_SecurityAlgorithm(dword Seed, dword MASK)
{
  /* temporary variables */
  int t_Iteration_ul;
  long t_Seed2_ul = 0;
  long t_Key_ul = 0;
  long t_Key1_ul = 0;
  long t_Key2_ul = 0;
  if (Seed != 0)
  {
    t_Key1_ul = Seed ^ MASK;    
    for (t_Iteration_ul = 0; t_Iteration_ul < 32; t_Iteration_ul++)
    {
      t_Seed2_ul |= ((Seed >> t_Iteration_ul) & 0x1) << (31 - t_Iteration_ul);
    }
   
    t_Key2_ul = t_Seed2_ul ^ MASK;
    t_Key_ul = t_Key1_ul + t_Key2_ul;
    write("long :%lx",t_Key_ul);
  }
  else
  {
    write("27 services Wrong");
  }
  return t_Key_ul;
}


2.读入数据

代码如下(示例):

testcase TC_UDS_Services_Smoke_Test(char TC_ID[])
{
  /*****************Pre-condition****************/
  G_Log_Start("TestModule_UDS_TP",TC_ID,"Logging","asc");
  g_Precondition_UDS_TP();
  G_Flag_Need_TP = 1;
  /*****************Main Step******************/
  // 10 01
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x01,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[0] == 0x06) && (G_On_Message_Rxbuffer[1] == 0x50) && (G_On_Message_Rxbuffer[2] == 0x01))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 10 01","Should Get 50 01","Get 50 01");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 10 01","Should Get 50 01","No 50 01");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 10 01","Should Get 50 01","No Feedback");
  }
  // 10 03  
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[0] == 0x06) && (G_On_Message_Rxbuffer[1] == 0x50) && (G_On_Message_Rxbuffer[2] == 0x03))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 10 03","Should Get 50 03","Get 50 03");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 10 03","Should Get 50 03","No 50 03");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 10 03","Should Get 50 03","No Feedback");
  }
  // 10 02
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x02,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if(G_On_Message_Rxbuffer[3] == 0x78)
    {
      if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
      {
        if((G_On_Message_Rxbuffer[0] == 0x06) && (G_On_Message_Rxbuffer[1] == 0x50) && (G_On_Message_Rxbuffer[2] == 0x02))
        {
          G_TestStep_TestStepPass(G_TS_ID,"Send 10 02","Should Get 50 02","Get 50 02");
        }
        else
        {
          G_TestStep_TestStepFail(G_TS_ID,"Send 10 02","Should Get 50 02","No 50 02");
        }
      }
      else
      {
        G_TestStep_TestStepFail(G_TS_ID,"Send 10 02","Should Get 50 02","No Feedback 50 02");
      }
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 10 02","Should Get 50 02","No 78");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 10 02","Should Get 50 02","No Feedback");
  }
  testWaitForTimeout(5500);
  //11 01
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(2000);
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x11,0x01,G_Padding_S,G_Padding_S,G_Padding_S,G_Padding_S,G_Padding_S);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[0] == 0x02) && (G_On_Message_Rxbuffer[1] == 0x51) && (G_On_Message_Rxbuffer[2] == 0x01))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 11 01","Should Get 51 01","Get 51 01");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 11 01","Should Get 51 01","No 51 01");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 11 01","Should Get 51 01","No Feedback");
  }
  testWaitForTimeout(5000);
  //11 03
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(2000);
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x11,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[0] == 0x02) && (G_On_Message_Rxbuffer[1] == 0x51) && (G_On_Message_Rxbuffer[2] == 0x03))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 11 03","Should Get 51 01","Get 51 03");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 11 03","Should Get 51 01","No 51 03");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 11 03","Should Get 51 01","No Feedback");
  }
  testWaitForTimeout(3000);
  // 14 FF FF FF
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x01,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(50);
  G_TestStep_Send_TP(-1,"Physical",8,0x04,0x14,0xFF,0xFF,0xFF,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[0] == 0x01) && (G_On_Message_Rxbuffer[1] == 0x54))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 14 FF FF FF","Should Get 54","Get 54");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 14 FF FF FF","Should Get 54","No 54");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 14 FF FF FF","Should Get 54","No Feedback");
  }
  // 19 01 FF
  G_TestStep_Send_TP(-1,"Physical",8,0x03,0x19,0x01,0xFF,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x59) && (G_On_Message_Rxbuffer[2] == 0x01))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 19 01 FF","Should Get 59 01","Get 59 01");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 19 01 FF","Should Get 59 01","No 59 01");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 19 01 FF","Should Get 59 01","No Feedback");
  }
  //19 02 FF
  G_TestStep_Send_TP(-1,"Physical",8,0x03,0x19,0x02,0xFF,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x59) && (G_On_Message_Rxbuffer[2] == 0x02))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 19 02 FF","Should Get 59 02","Get 59 02");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 19 02 FF","Should Get 59 02","No 59 02");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 19 02 FF","Should Get 59 02","No Feedback");
  }
  // 19 04
  G_TestStep_Send_TP(-1,"Physical",8,0x06,0x19,0x04,0xA2,0x00,0x16,0x01,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x59) && (G_On_Message_Rxbuffer[2] == 0x04))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 19 04","Should Get 59 04","Get 59 04");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 19 04","Should Get 59 04","No 59 04");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 19 04","Should Get 59 04","No Feedback");
  }
  //19 06
  G_TestStep_Send_TP(-1,"Physical",8,0x06,0x19,0x06,0xA2,0x00,0x16,0x01,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x59) && (G_On_Message_Rxbuffer[2] == 0x06))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 19 06","Should Get 59 06","Get 59 06");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 19 06","Should Get 59 06","No 59 06");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 19 06","Should Get 59 06","No Feedback");
  }
  //19 0A
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x19,0x0A,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[2] == 0x59) && (G_On_Message_Rxbuffer[3] == 0x0A))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 19 0A","Should Get 59 0A","Get 59 0A");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 19 0A","Should Get 59 0A","No 59 0A");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 19 0A","Should Get 59 0A","No Feedback");
  }
  testWaitForTimeout(1000);
  // 27
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(2000);
  g_req_Request.SendRequest();
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x67) && (G_On_Message_Rxbuffer[2] == 0x01))
    {
      SeedNumber = G_On_Message_Rxbuffer[3];
      SeedNumber = (SeedNumber<<8) + G_On_Message_Rxbuffer[4];
      SeedNumber = (SeedNumber<<8) + G_On_Message_Rxbuffer[5];
      SeedNumber = (SeedNumber<<8) + G_On_Message_Rxbuffer[6];
      G_TestStep_TestStepPass(G_TS_ID,"Send 27 01","Should Get 67 01","Get 67 01");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 27 01","Should Get 67 01","No 67 01");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 27 01","Should Get 67 01","No Feedback");
  }
  KeyNumber = ChangAn_SecurityAlgorithm(SeedNumber,0x527F6374);
  Send_Byte3 = KeyNumber >> 24 & 0xFF;
  Send_Byte4 = KeyNumber >> 16 & 0xFF;
  Send_Byte5 = KeyNumber >> 8 & 0xFF;
  Send_Byte6 = KeyNumber & 0xFF;
  G_TestStep_Send_TP(-1,"Physical",8,0x06,0x27,0x02,Send_Byte3,Send_Byte4,Send_Byte5,Send_Byte6,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x67) && (G_On_Message_Rxbuffer[2] == 0x02))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 27 02","Should Get 67 02","Get 67 02");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 27 02","Should Get 67 02","No 67 02");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 27 02","Should Get 67 02","No Feedback");
  }
   //2E
  G_TestStep_Send_TP(-1,"Physical",8,0x04,0x2E,0xF1,0xF3,0x00,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x6E) && (G_On_Message_Rxbuffer[2] == 0xF1) && (G_On_Message_Rxbuffer[3] == 0xF3))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 2E F1 F3","Should Get 6E F1 F3","Get 6E F1 F3");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 2E F1 F3","Should Get 6E F1 F3","No 6E F1 F3");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 2E F1 F3","Should Get 6E F1 F3","No Feedback");
  }
  // 28 00 03
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(50);
  G_TestStep_Send_TP(-1,"Physical",8,0x03,0x28,0x00,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x68) && (G_On_Message_Rxbuffer[2] == 0x00))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 28 00 03","Should Get 68 00 03","Get 68 00 03");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 28 00 03","Should Get 68 00 03","No 68 00 03");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 28 00 03","Should Get 68 00 03","No Feedback");
  }
  // 28 03 03
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(50);
  G_TestStep_Send_TP(-1,"Physical",8,0x03,0x28,0x03,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x68) && (G_On_Message_Rxbuffer[2] == 0x03))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 28 03 03","Should Get 68 03 03","Get 68 03 03");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 28 03 03","Should Get 68 03 03","No 68 03 03");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 28 03 03","Should Get 68 03 03","No Feedback");
  }
 
  //3E 00
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x3E,0x00,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0x7E) && (G_On_Message_Rxbuffer[2] == 0x00))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 3E 00","Should Get 7E 00","Get 7E 00");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 3E 00","Should Get 7E 00","No 7E 00");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 3E 00","Should Get 7E 00","No Feedback");
  }
  //85 01
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(50);
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x85,0x01,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0xC5) && (G_On_Message_Rxbuffer[2] == 0x01))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 85 01","Should Get C5 01","Get C5 01");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 85 01","Should Get C5 01","No C5 01");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 85 01","Should Get C5 01","No Feedback");
  }
  //85 02
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x10,0x03,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  testWaitForTimeout(50);
  G_TestStep_Send_TP(-1,"Physical",8,0x02,0x85,0x02,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C,G_Padding_C);
  if(testWaitForTextEvent("Get_UDS_TP_FeedBack",5000) == 1)
  {
    if((G_On_Message_Rxbuffer[1] == 0xC5) && (G_On_Message_Rxbuffer[2] == 0x02))
    {
      G_TestStep_TestStepPass(G_TS_ID,"Send 85 02","Should Get C5 02","Get C5 02");
    }
    else
    {
      G_TestStep_TestStepFail(G_TS_ID,"Send 85 02","Should Get C5 02","No C5 02");
    }
  }
  else
  {
    G_TestStep_TestStepFail(G_TS_ID,"Send 85 02","Should Get C5 02","No Feedback");
  }
  /******************Post Condition***************/
  G_Flag_Need_TP = 0;
  G_Log_Stop();
}


总结

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值