一个标准的REST API测试代码

来源:互联网 发布:广州市启凡网络 编辑:程序博客网 时间:2024/05/18 03:52

 代码及过程都非常标准;以后可能会很少做Rest API测试了,权且作为纪念

 

  @Test(author="elbert.chenh", description="测试用例描述")
 public void TestCase1() throws Exception
 {
  String url ="http://apiurl?service=servicename&" +
    "seller_user_id=elbert0000800002&" +
    "trade_no=elbert0000800002&" +
    "sign=1234&sign_type=DSA&"+
    "child_order_id=800080012&"+
    "amount=100.01&"+
    "date=2010-02-05 13:13:13&"+
    "amount_type=F&"+
    "repay_type=0&"+
    "repay_channel=E&"+
    "status=T&repay_no=elbert0000800002";
  
  //清理数据现场
  String Sql1= "select * from "+SchemaName+".LOAN where CUSTOMER_ID = '80000001'";
  String Sql2= "select * from "+SchemaName+".LOAN_ORDER where trade_no = 'elbert0000800002'";
  String Sql3= "select * from "+SchemaName+".SERIAL_REPAY_RECORD where trade_no = 'elbert0000800002'";
  String Sql4= "select * from "+alibankSchemaName+".LOAN_ORDER_PAYMENT_INFO where trade_no = 'elbert0000800002'";
  deleteData("LOAN", Sql1);
  deleteData("LOAN_ORDER", Sql2);
  deleteData("SERIAL_REPAY_RECORD", Sql3);
  deleteData("LOAN_ORDER_PAYMENT_INFO", Sql4);
  //准备测试数据
  loadCaseData("TestCase1.xml",alibankSchemaName);
  //发起url请求15958189400
  System.out.println(url);
  WebConversation conversation = new WebConversation();
  WebRequest request = new PostMethodWebRequest(url);
  WebResponse response = conversation.getResponse(request);
  String ActXmlText = response.getText();
  System.out.println(ActXmlText);
  //数据库断言

  dataSetLoanExp = TestData.getExpDataSet("testCase1_Exp.xml", db);

  // 检测SERIAL_REPAY_RECORD
  QueryDataSet queryDataSet = new QueryDataSet(db.getConnection());
  queryDataSet.addTable("SERIAL_REPAY_RECORD", "select REPAY_NO,CUSTOMER_ALIPAY_ID,TRADE_NO,REPAY_AMOUNT," +
    "TO_CHAR(REPAY_DATE,'YYYY-MM-DD hh24:MI:SS') as REPAY_DATE,REPAY_CHANNEL,REPAY_TYPE,REPAY_STATUS,ERROR_CODE," +
    "AMOUNT_TYPE from "
    + alibankSchemaName + ".SERIAL_REPAY_RECORD where trade_no= 'elbert0000800002'");
  ITable filteredAccount = DefaultColumnFilter.includedColumnsTable(
    queryDataSet.getTable("SERIAL_REPAY_RECORD"), dataSetLoanExp.getTable(
      "SERIAL_REPAY_RECORD").getTableMetaData().getColumns());
  util.aliAssert.assertEquals(dataSetLoanExp.getTable("SERIAL_REPAY_RECORD"), filteredAccount, "ERROR_CODE", null);
  //检查loan_order表 CALCULATE_INTEREST_DATE,
  queryDataSet.addTable("tablename1", "select LOAN_ORDER_ID,....,TO_CHAR(ORDER_DATE,'YYYY-MM-DD hh24:MI:SS') as ORDER_DATE,PRODUCT_NAME,PRODUCT_COUNT," +
    "....," +
    "......," +
    "TO_CHAR(CALCULATE_INTEREST_DATE,'YYYY-MM-DD hh24:MI:SS') as CALCULATE_INTEREST_DATE," +
    "....from "
    + alibankSchemaName + ".LOAN_ORDER where trade_no= 'elbert0000800002'");
  ITable filteredAccount1 = DefaultColumnFilter.includedColumnsTable(
    queryDataSet.getTable("tablename2"), dataSetLoanExp.getTable(
      "LOAN_ORDER").getTableMetaData().getColumns());
  Assertion.assertEquals(dataSetLoanExp.getTable("LOAN_ORDER"),
    filteredAccount1);
  //LOAN_ORDER_PAYMENT_INFO 验证
  queryDataSet.addTable("tablename3", "select ....,TO_CHAR(REPAY_DATE,'YYYY-MM-DD hh24:MI:SS') as REPAY_DATE,LOAN_ID  from "
    + alibankSchemaName + ".LOAN_ORDER_PAYMENT_INFO where trade_no= 'elbert0000800002'");
  ITable filteredAccount2 = DefaultColumnFilter.includedColumnsTable(
    queryDataSet.getTable("LOAN_ORDER_PAYMENT_INFO"), dataSetLoanExp.getTable(
      "LOAN_ORDER_PAYMENT_INFO").getTableMetaData().getColumns());
  Assertion.assertEquals(dataSetLoanExp.getTable("LOAN_ORDER_PAYMENT_INFO"),
    filteredAccount2);
 }