1. 程式人生 > >Jmeter開發dubbo協議指令碼

Jmeter開發dubbo協議指令碼

2)、指令碼說明。參考示例指令碼:acc_1_09_QueryCustRiskSurveyFacade.java

package acc_interface;

import java.io.PrintStream;

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.howbuy.common.facade.BaseResponse;

//引入該指令碼需要的測試類

import com.howbuy.acccenter.facade.query.querycustlastlogin.QueryCustLastLoginFacade;

import com.howbuy.acccenter.facade.query.querycustlastlogin.QueryCustLastLoginRequest;

public class acc_1_07_QueryCustLastLoginRequest

  implements JavaSamplerClient

{

  static ClassPathXmlApplicationContext context;

  public Arguments getDefaultParameters()

  {

Arguments params = new Arguments();

    //介面輸入引數化

    params.addArgument("DisCode", "HB000A001");

    params.addArgument("TxAcctNo", "20000023");

    params.addArgument("logs", "false");

    return params;

  }

  public SampleResult runTest(JavaSamplerContext arg0) {

    SampleResult result = new SampleResult();

    try

    {

      result.sampleStart();

      context.start();

    //獲取Spring中定義的Bean例項 byid(xinggong-search-dubbo-consumber.xml)

      QueryCustLastLoginFacade qtcq = (QueryCustLastLoginFacade)context.

   getBean("queryCustLastLoginFacade");

    //new一個請求物件

      QueryCustLastLoginRequest request = new QueryCustLastLoginRequest();

    //設定請求引數

      request.setDisCode(arg0.getParameter("DisCode"));

      request.setTxAcctNo(arg0.getParameter("TxAcctNo"));

    //獲取響應訊息

      BaseResponse response = qtcq.execute(request);

      if (arg0.getParameter("logs").equals("true")) {

        System.out.println(arg0.getParameter("DisCode"));

        System.out.println(response.getReturnCode());

        System.out.println(response.getDescription());

      }

    //斷言

      if (response.getReturnCode().equals("0000000"))

        result.setSuccessful(true);

      else {

        result.setSuccessful(false);

      }

    }

    catch (Exception e)

    {

      System.out.println("=======================Exception Start=======================");

      System.out.println("Exception raise!!!");

      System.out.println(e.getMessage());

      result.setSuccessful(false);

      System.out.println("=======================Exception End=======================");

    } finally {

      result.sampleEnd();

    }

    return result;

  }

  public void setupTest(JavaSamplerContext arg0)

  {

  context= new ClassPathXmlApplicationContext(

          new String[] { "xinggong-search-dubbo-consumber.xml" });

  }

  public void teardownTest(JavaSamplerContext arg0)

  {

  }

  public static void main(String[] args)

  {

  }

}

說明:黃色底的部分需要根據各介面的實現進行修改,其餘部分屬於框架類部分,基本不需要修改,感興趣的同學請自行學習。

關於介面的具體實現,可以參考《xx專案介面文件.doc》和開發寫的單元測試指令碼。