中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jmeter怎么編寫java請求

發布時間:2021-12-07 17:24:38 來源:億速云 閱讀:236 作者:iii 欄目:云計算

本篇內容主要講解“jmeter怎么編寫java請求”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“jmeter怎么編寫java請求”吧!

通常情況下,推薦使用jmeter編寫Java 請求

有以下優勢

  • 腳本易維護

  • 易調試

  • 開發腳本周期短

不過網上擴展java請求文章比較多的還是,通過實現org.apache.jmeter.protocol.java.sampler.JavaSamplerClient接口

或是繼承AbstractJavaSamplerClient虛類來實現java請求

大致步驟如下:

1. 建立java工程
2. 加載依賴包到java工程環境變量中,ApacheJMeter_core.jar和ApacheJMeter_java.jar編寫時需要,調試需要加載jmeter全部依賴包(jmeter_home/lib下所有,實際上不是所有,包比較多,很難辨別)
3. 編寫Java Sampler,繼承AbstractJavaSamplerClient,并重寫如下方法

[java] view plain copy

  1. public Arguments getDefaultParameters();可選,定義可用參數及默認值;  

  2. public void setupTest(JavaSamplerContext arg0):可選,測試前執行,做一些初始化工作;  

  3. public SampleResult runTest(JavaSamplerContext arg0);必選,實現自定義請求;  

  4. public void teardownTest(JavaSamplerContext arg0):可選,測試結束時調用;  

4. 打jar包,將包放到jmeter_home/lib/ext/下
5. 記得把所有額外的(自定義協議依賴的,非jmeter的)依賴包放到jmeter環境變量中
6. 重啟jmeter,創建java Sampler選擇剛定義好的測試類

7. 調整好參數即可開始測試。

編寫模板介紹

[java] view plain copy

  1. package com.sampler;  

  2. //編寫jmeter.sampler插件需加載的包  

  3. import org.apache.jmeter.config.Arguments;  

  4. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;  

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

  6. import org.apache.jmeter.samplers.SampleResult;  

  7. //處理異常堆棧  

  8. import java.io.PrintWriter;  

  9. import java.io.StringWriter;  

  10.   

  11.   

  12. /** 

  13. * @author wo niu 

  14. * @func test ejb interface 

  15. *  繼承虛類AbstractJavaSamplerClient 

  16. */  

  17. public class JavaSampler extends AbstractJavaSamplerClient {  

  18.   

  19. // main只是為調試用,最好先調試再打包  

  20. //運行前請把jmeter_home/lib下的所有jar包加載到IDE工具環境變量  

  21.   public static void main(String[] args)  

  22.   {  

  23.       Arguments args0 = new Arguments();  

  24.       args0.addArgument("parm_1","val_1");  

  25.       args0.addArgument("parm_2","val_2");  

  26.       args0.addArgument("parm_N","val_N");  

  27.       JavaSampler  test = new JavaSampler();  

  28.       JavaSamplerContext context = new JavaSamplerContext(args0);  

  29.       test.setupTest(context);  

  30.       test.runTest(context);  

  31.       test.teardownTest(context);  

  32.   }  

  33.   

  34. /** 

  35.  *  實現 runTest(JavaSamplerContext context)方法 

  36.  *  runTest()具體實施測試動作 

  37.  */  

  38. public SampleResult runTest(JavaSamplerContext context)  {  

  39.     /* 

  40.      *  SampleResult只能定義為局部變量,避免出現多線程安全問題 

  41.      *  網上一些帖子,定義為全域變量,這種做法是錯誤的 

  42.      */  

  43.     SampleResult results = new SampleResult();  

  44.     //默認請求成功  

  45.     results.setSuccessful(true);  

  46.     results.sampleStart(); //記錄響應時間開始  

  47.     try{  

  48.         //動態變量從context中讀取:  

  49.         // String key = context.getParameter("key");  

  50.         //TO-DO ejb接口調用  

  51.   

  52.         if(false){ //失敗時處理  

  53.             results.setSuccessful(false);  

  54.             results.setResponseData("響應數據","utf8");  

  55.         }  

  56.     }catch(Throwable e){  

  57.         e.printStackTrace();  

  58.         results.setSuccessful(false);  

  59.         //處理異常堆棧為String,只有String才能回寫響應數據  

  60.         results.setResponseData(toStringStackTrace(e),"utf8");  

  61.     }  

  62.     results.sampleEnd(); //記錄響應時間結束  

  63.     return results;  

  64. }  

  65.   

  66. /** 

  67.  * 測試開始時調用,初始化 

  68.  */  

  69. public void setupTest(JavaSamplerContext context){  

  70. }  

  71. /** 

  72.  * 測試結束時調用 

  73.  */  

  74. public void teardownTest(JavaSamplerContext context){  

  75. }  

  76.   

  77. /** 

  78.  *  定義默認參數 

  79.  */  

  80. @Override  

  81. public Arguments getDefaultParameters() {  

  82.     Arguments args = new Arguments();  

  83.     /* 

  84.      * test data 

  85.      */  

  86.     args.addArgument("parm_1","val_1");  

  87.     args.addArgument("parm_2","val_2");  

  88.     args.addArgument("parm_N","val_N");  

  89.     return args;  

  90. }  

  91.   

  92. /** 

  93.  *  處理異常堆棧為String,只有String才能回寫響應數據 

  94.  * @param e 

  95.  * @return 

  96.  */  

  97. private String toStringStackTrace(Throwable e){  

  98.     String exception = null;  

  99.     try {  

  100.         StringWriter sw = new StringWriter();  

  101.         PrintWriter pw = new PrintWriter(sw);  

  102.         e.printStackTrace(pw);  

  103.         exception = sw.toString();  

  104.         pw.close();  

  105.         sw.close();  

  106.     } catch (Exception e1) {  

  107.         e1.printStackTrace();  

  108.     }  

  109.     return exception;  

  110. }  

  111.   

  112. }  

到此,相信大家對“jmeter怎么編寫java請求”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蕲春县| 贵南县| 桐柏县| 锦屏县| 赤壁市| 郸城县| 锡林浩特市| 铜山县| 噶尔县| 遂昌县| 嘉鱼县| 米泉市| 正定县| 上饶市| 开封市| 梧州市| 文化| 林西县| 东台市| 长泰县| 岳西县| 莲花县| 安庆市| 辉南县| 安平县| 沙田区| 大埔县| 广昌县| 贵南县| 遂昌县| 南丹县| 四子王旗| 泾川县| 金湖县| 崇左市| 北川| 泰来县| 金川县| 尼勒克县| 彭泽县| 襄樊市|