您好,登錄后才能下訂單哦!
本篇內容主要講解“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
public Arguments getDefaultParameters();可選,定義可用參數及默認值;
public void setupTest(JavaSamplerContext arg0):可選,測試前執行,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0);必選,實現自定義請求;
public void teardownTest(JavaSamplerContext arg0):可選,測試結束時調用;
4. 打jar包,將包放到jmeter_home/lib/ext/下
5. 記得把所有額外的(自定義協議依賴的,非jmeter的)依賴包放到jmeter環境變量中
6. 重啟jmeter,創建java Sampler選擇剛定義好的測試類
7. 調整好參數即可開始測試。
[java] view plain copy
package com.sampler;
//編寫jmeter.sampler插件需加載的包
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
//處理異常堆棧
import java.io.PrintWriter;
import java.io.StringWriter;
/**
*
* @author wo niu
* @func test ejb interface
*
* 繼承虛類AbstractJavaSamplerClient
*/
public class JavaSampler extends AbstractJavaSamplerClient {
// main只是為調試用,最好先調試再打包
//運行前請把jmeter_home/lib下的所有jar包加載到IDE工具環境變量
public static void main(String[] args)
{
Arguments args0 = new Arguments();
args0.addArgument("parm_1","val_1");
args0.addArgument("parm_2","val_2");
args0.addArgument("parm_N","val_N");
JavaSampler test = new JavaSampler();
JavaSamplerContext context = new JavaSamplerContext(args0);
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}
/**
* 實現 runTest(JavaSamplerContext context)方法
* runTest()具體實施測試動作
*/
public SampleResult runTest(JavaSamplerContext context) {
/*
* SampleResult只能定義為局部變量,避免出現多線程安全問題
* 網上一些帖子,定義為全域變量,這種做法是錯誤的
*/
SampleResult results = new SampleResult();
//默認請求成功
results.setSuccessful(true);
results.sampleStart(); //記錄響應時間開始
try{
//動態變量從context中讀取:
// String key = context.getParameter("key");
//TO-DO ejb接口調用
if(false){ //失敗時處理
results.setSuccessful(false);
results.setResponseData("響應數據","utf8");
}
}catch(Throwable e){
e.printStackTrace();
results.setSuccessful(false);
//處理異常堆棧為String,只有String才能回寫響應數據
results.setResponseData(toStringStackTrace(e),"utf8");
}
results.sampleEnd(); //記錄響應時間結束
return results;
}
/**
* 測試開始時調用,初始化
*/
public void setupTest(JavaSamplerContext context){
}
/**
* 測試結束時調用
*/
public void teardownTest(JavaSamplerContext context){
}
/**
* 定義默認參數
*/
@Override
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
/*
* test data
*/
args.addArgument("parm_1","val_1");
args.addArgument("parm_2","val_2");
args.addArgument("parm_N","val_N");
return args;
}
/**
* 處理異常堆棧為String,只有String才能回寫響應數據
* @param e
* @return
*/
private String toStringStackTrace(Throwable e){
String exception = null;
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
exception = sw.toString();
pw.close();
sw.close();
} catch (Exception e1) {
e1.printStackTrace();
}
return exception;
}
}
到此,相信大家對“jmeter怎么編寫java請求”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。