Jmeter常用腳本開發之Java請求


Java請求:就是用來對java項目的類進行壓測

例子:將輸入的兩個參數通過IO存入文件

1、創建Java工程,工程目錄如下

 

 

2、將Jmeter-lib下面的所有jar包導入java工程,

3、創建一個測試類並實現JavaSamplerClient接口或繼承AbstractJavaSamplerClient,並重寫:

  • public Arguments getDefaultParameters():設置可用參數及的默認值;
  • public void setupTest(JavaSamplerContext arg0):每個線程測試前執行一次,做一些初始化工作;
  • public SampleResult runTest(JavaSamplerContext arg0):開始測試,從arg0參數可以獲得參數值;
  • public void teardownTest(JavaSamplerContext arg0):測試結束時調用;

具體代碼:

輸入參數類:

 1 package com.test;
 2 
 3 import java.io.File;
 4 import java.io.PrintWriter;
 5 
 6 /**
 7  * Created by Administrator on 2017/4/20.
 8  */
 9 public class OutputService {
10         public static void output(String filename,int a,int b,int c) throws Exception{
11             PrintWriter out=new PrintWriter(new File(filename));
12             out.write(a+":"+b+":"+c);
13             out.close();
14         }
15 }

測試類

 1 package com.test;
 2 
 3 import org.apache.jmeter.config.Arguments;
 4 import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
 5 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
 6 import org.apache.jmeter.samplers.SampleResult;
 7 
 8 /**
 9  * Created by Administrator on 2017/4/20.
10  */
11 public class PerformenceTest implements JavaSamplerClient {
12     private SampleResult results;
13     private String a;
14     private String b;
15     private String c;
16     private String filename;
17 
18     public static void main(String[] args) {
19         // TODO Auto-generated method stub
20         Arguments params = new Arguments();
21         params.addArgument("filename","0");
22         params.addArgument("a", "0");//設置參數,並賦予默認值0
23         params.addArgument("b", "0");//設置參數,並賦予默認值0
24         params.addArgument("c", "0");
25         JavaSamplerContext arg0 = new JavaSamplerContext(params);
26         PerformenceTest test = new PerformenceTest();
27         test.setupTest(arg0);
28         test.runTest(arg0);
29         test.teardownTest(arg0);
30     }
31     // 設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中
32     public Arguments getDefaultParameters() {
33         Arguments params = new Arguments();
34         params.addArgument("filename", "0");//設置參數,並賦予默認值0
35         params.addArgument("a", "0");//設置參數,並賦予默認值0
36         params.addArgument("b", "0");//設置參數,並賦予默認值0
37         params.addArgument("c","0");
38         return params;
39     }
40 
41 
42     // 初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行
43     public void setupTest(JavaSamplerContext arg0) {
44         results = new SampleResult();
45     }
46 
47 
48     // 測試執行的循環體,根據線程數和循環次數的不同可執行多次
49     @Override
50     public SampleResult runTest(JavaSamplerContext arg0) {
51         a = arg0.getParameter("a"); // 獲取在Jmeter中設置的參數值
52         b = arg0.getParameter("b"); // 獲取在Jmeter中設置的參數值
53         c = arg0.getParameter("c");
54         filename = arg0.getParameter("filename"); // 獲取在Jmeter中設置的參數值
55         results.sampleStart();// jmeter 開始統計響應時間標記
56         try {
57             OutputService test = new OutputService();
58             test.output(filename,Integer.parseInt(a), Integer.parseInt(b),Integer.parseInt(c));
59             results.setSuccessful(true);
60 // 被測對象調用
61         } catch (Throwable e) {
62             results.setSuccessful(false);
63             e.printStackTrace();
64         } finally {
65             results.sampleEnd();// jmeter 結束統計響應時間標記
66         }
67         return results;
68     }
69 
70 
71     // 結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束后執行
72     public void teardownTest(JavaSamplerContext arg0) {
73     }
74 
75 }

 

4、把該工程以jar包形式導出,選擇File—Project Structure,如圖所示,配置完成,點擊應用:

 

 

 

然后,選擇Build,打開剛才配置的jar包路徑,就看到導出的jar包

 

 

5、然后把導出的jar包復制到Jmeter的lib\ext目錄下,重啟Jmeter

6、打開測試計划,添加線程組--Java請求,選擇測試類,會自動加載出類中的參數,如圖

 

 

給參數賦值

 

 

執行壓測,並發數設為1000,運行結果如圖所示

聚合報告

 

 

表格察看結果

 

 

 

圖形結果

 

生成的文件

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM