本篇內(nèi)容主要講解“jmeter怎么編寫java請(qǐng)求”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“jmeter怎么編寫java請(qǐng)求”吧!
創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)10多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的營銷解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:廣告制作等企業(yè),備受客戶稱贊。
通常情況下,推薦使用jmeter編寫Java 請(qǐng)求
有以下優(yōu)勢(shì)
腳本易維護(hù)
易調(diào)試
開發(fā)腳本周期短
不過網(wǎng)上擴(kuò)展java請(qǐng)求文章比較多的還是,通過實(shí)現(xiàn)org.apache.jmeter.protocol.java.sampler.JavaSamplerClient接口
或是繼承AbstractJavaSamplerClient虛類來實(shí)現(xiàn)java請(qǐng)求
大致步驟如下:
1. 建立java工程
2. 加載依賴包到j(luò)ava工程環(huán)境變量中,ApacheJMeter_core.jar和ApacheJMeter_java.jar編寫時(shí)需要,調(diào)試需要加載jmeter全部依賴包(jmeter_home/lib下所有,實(shí)際上不是所有,包比較多,很難辨別)
3. 編寫Java Sampler,繼承AbstractJavaSamplerClient,并重寫如下方法
[java] view plain copy
public Arguments getDefaultParameters();可選,定義可用參數(shù)及默認(rèn)值;
public void setupTest(JavaSamplerContext arg0):可選,測(cè)試前執(zhí)行,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0);必選,實(shí)現(xiàn)自定義請(qǐng)求;
public void teardownTest(JavaSamplerContext arg0):可選,測(cè)試結(jié)束時(shí)調(diào)用;
4. 打jar包,將包放到j(luò)meter_home/lib/ext/下
5. 記得把所有額外的(自定義協(xié)議依賴的,非jmeter的)依賴包放到j(luò)meter環(huán)境變量中
6. 重啟jmeter,創(chuàng)建java Sampler選擇剛定義好的測(cè)試類
7. 調(diào)整好參數(shù)即可開始測(cè)試。
[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只是為調(diào)試用,最好先調(diào)試再打包
//運(yùn)行前請(qǐng)把jmeter_home/lib下的所有jar包加載到IDE工具環(huán)境變量
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);
}
/**
* 實(shí)現(xiàn) runTest(JavaSamplerContext context)方法
* runTest()具體實(shí)施測(cè)試動(dòng)作
*/
public SampleResult runTest(JavaSamplerContext context) {
/*
* SampleResult只能定義為局部變量,避免出現(xiàn)多線程安全問題
* 網(wǎng)上一些帖子,定義為全域變量,這種做法是錯(cuò)誤的
*/
SampleResult results = new SampleResult();
//默認(rèn)請(qǐng)求成功
results.setSuccessful(true);
results.sampleStart(); //記錄響應(yīng)時(shí)間開始
try{
//動(dòng)態(tài)變量從context中讀取:
// String key = context.getParameter("key");
//TO-DO ejb接口調(diào)用
if(false){ //失敗時(shí)處理
results.setSuccessful(false);
results.setResponseData("響應(yīng)數(shù)據(jù)","utf8");
}
}catch(Throwable e){
e.printStackTrace();
results.setSuccessful(false);
//處理異常堆棧為String,只有String才能回寫響應(yīng)數(shù)據(jù)
results.setResponseData(toStringStackTrace(e),"utf8");
}
results.sampleEnd(); //記錄響應(yīng)時(shí)間結(jié)束
return results;
}
/**
* 測(cè)試開始時(shí)調(diào)用,初始化
*/
public void setupTest(JavaSamplerContext context){
}
/**
* 測(cè)試結(jié)束時(shí)調(diào)用
*/
public void teardownTest(JavaSamplerContext context){
}
/**
* 定義默認(rèn)參數(shù)
*/
@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才能回寫響應(yīng)數(shù)據(jù)
* @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;
}
}
到此,相信大家對(duì)“jmeter怎么編寫java請(qǐng)求”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享文章:jmeter怎么編寫java請(qǐng)求
本文URL:http://aaarwkj.com/article0/gjciio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、云服務(wù)器、用戶體驗(yàn)、品牌網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)