JMeter 實現Java請求步驟及原理詳解
阿新 • • 發佈:2020-03-27
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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。