1. 程式人生 > 程式設計 >JMeter 實現Java請求步驟及原理詳解

JMeter 實現Java請求步驟及原理詳解

1.jar包

新增jar包依賴,注意和Jmeter的版本相同:

ApacheJMeter_core.jar,ApacheJMeter_java.jar

2.寫Java請求

先繼承 AbstractJavaSamplerClient,或者實現 JavaSamplerClient,

各方法和引數:

  • getDefaultParameters(),用來自定義引數的。
  • runTest(),請求主體。
  • Arguments類: 引數管理;
  • addAuguments() 用來新增引數。
  • JavaSamplerContext類: javaSampler的容器類,用來接收、處理使用者傳入的引數。
  • getParameter("引數名稱") 用來獲取指定的引數的值。
  • SampleResult類,請求類。

程式碼實現

public class HelloThree extends AbstractJavaSamplerClient {
  String uname="";

  //定義GUI介面的引數。
  @Override
  public Arguments getDefaultParameters() {
    Arguments params = new Arguments();
    params.addArgument("username","Jerry");
    return params;
  }

  @Override
  public void setupTest(JavaSamplerContext context) {
    //獲取引數
    uname = context.getParameter("username");
  }

  //主體執行部分。
  @Override
  public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
    //new一個SampleResult物件,用來實現計時、結果回寫等操作。
    SampleResult sr=new SampleResult();
    //初始化業務功能類。業務功能類就是真正用來實現請求傳送的類。
    Request request=new Request();
    //業務操作
    try {
      //請求開始計時
      sr.sampleStart();
      //呼叫業務方法。
      String result=request.say(uname);
      //設定顯示的請求資料,非必須。
      sr.setSamplerData("this is uname="+uname);
      //設定顯示的響應資料,必須。
      sr.setResponseData(result,sr.TEXT);
      //設定請求的結束狀態。
      sr.setSuccessful(true);
    } catch (Exception e) {
      sr.setResponseData("fail msg:"+e.getMessage(),sr.TEXT);
      sr.setSuccessful(false);
    } finally {
      //請求結束計時。
      sr.sampleEnd();
    }
    return sr;
  }
}

寫好之後打成jar包;

3.jar包的存放

  • ·擴充套件的元件本身的jar包,放入Jmeter的lib\ext目錄。
  • ·業務jar包及其所有的依賴包,放入Jmeter的lib目錄。

然後重啟jmeter,新增Java請求,就可以看到新增的Java請求了。

lib目錄的衝突、管理:

業務本身需要用到的一些jar包,可能Jmeter的lib目錄原始就存在。因此會存在以下問題:

  • ·jar包版本的衝突問題。
  • ·jar包數量太多,無法有效區分。

解決方法:在Jmeter.properties中設定plugin_dependency_path

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。