Jmeter接口測試


一、創建工程、引包
1、創建JAVA工程
2、引入Jmeter中lib\ext基礎包:ApacheJMeter_java.jar、ApacheJMeter_core.jar
3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar
4、引入httpclient-4.3.4.jar(是基於httpcore的一套客戶端)、httpcore-4.3.2.jar(是一套http協議實現包)
Jmeter用到的4個類:

Arguments

getDefaultParameters() 用於獲取界面的參數

SampleResult

runTest(JavaSamplerContext context) 類似於LR的Action

void

setupTest(JavaSamplerContext context) 初始化方法,類似於LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContext context) 類似於LR的end和Junit中的tearDown()

執行的先后順序為: getDefaultParameters () --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)
 
常用的方法:
①、addArgument("name", "value")    定義參數
②、sampleStart()    定義事務的開始,類似於LR的lr_start_transaction,和LR一樣事務間不要放無關代碼
③、sampleEnd()    定義事務的結束,類似於LR的lr_end_transaction
④、setSuccessful(true、false)    設置運行結果的成功或失敗,Jmeter統計成功失敗的次數,在聚合報告中能夠體現。
 
二、用例
1、TestApiGetSearchSuggestion.java,該代碼實現對Api接口的請求,對返回的數據進行判斷,並寫文件。
2、Jmeter_GetSearchSuggestion.java,為本節介紹的重點
 1 package com.test.jmeter; 
 2 
 3 import java.io.IOException; 
 4 
 5 import org.apache.http.client.ClientProtocolException; 
 6 import org.apache.jmeter.config.Arguments; 
 7 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 
 8 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 
 9 import org.apache.jmeter.samplers.SampleResult; 
10 
11 public class Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient { 
12 
13 private static String label = "Jmeter_GetSearchSuggestion ";    //定義label名稱,顯示在jmeter的結果窗口
14 private String url;
15 private String data;
16 
17 public void setupTest(){
18 //定義測試初始值,setupTest只在測試開始前使用
19 System.out.println("setupTest");
20 }
21 
22 @Override
23 public SampleResult runTest(JavaSamplerContext arg0) {
24 
25 url = arg0.getParameter("url");
26 data = arg0.getParameter("data");
27 SampleResult sr;
28 sr = new SampleResult();
29 sr.setSampleLabel(label);
30 
31 TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();
32 sr.sampleStart();
33 try {
34 //調用被壓測接口的方法
35 t.PostJson(url, data);
36 sr.setSuccessful(true);
37 } catch (ClientProtocolException e) {
38 sr.setSuccessful(false);
39 e.printStackTrace();
40 } catch (IOException e) {
41 sr.setSuccessful(false);
42 e.printStackTrace();
43 }
44 
45 sr.sampleEnd();    // jmeter 結束統計響應時間標記
46 return sr;
47 }
48 
49 public void teardownTest(JavaSamplerContext arg0){
50 super.teardownTest(arg0);
51 }
52 
53 public Arguments getDefaultParameters(){
54 //參數定義,顯示在前台,也可以不定義
55 Arguments params = new Arguments();
56 params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");
57 params.addArgument("data", "data={\"token\": \"aaaaaaaaaa\",\"body\": {\"keywords\": \"藍月亮\"}}");
58 return params;
59 }
60 
61 }
3、main函數測試成功后,打成jar包,放到%Jmeter_Home%\lib\ext目錄中即可
 
 
三、運行用例
1、運行%Jmeter_Home%\bin\jmeter.bat
2、添加線程組,Java請求、查看結果樹、聚合報告
3、執行后的結果為
 
Tips:
快捷鍵
Ctrl+R運行用例、Ctrl+E清除運行結果


免責聲明!

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



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