JMeter 實(shí)現(xiàn)Java請(qǐng)求步驟及原理詳解
1.jar包
添加jar包依賴,注意和Jmeter的版本相同:
ApacheJMeter_core.jar,ApacheJMeter_java.jar
2.寫Java請(qǐng)求
先繼承 AbstractJavaSamplerClient,或者實(shí)現(xiàn) JavaSamplerClient,
各方法和參數(shù):
- getDefaultParameters(),用來(lái)自定義參數(shù)的。
- runTest(),請(qǐng)求主體。
- Arguments類: 參數(shù)管理;
- addAuguments() 用來(lái)添加參數(shù)。
- JavaSamplerContext類: javaSampler的容器類,用來(lái)接收、處理用戶傳入的參數(shù)。
- getParameter("參數(shù)名稱") 用來(lái)獲取指定的參數(shù)的值。
- SampleResult類,請(qǐng)求類。
代碼實(shí)現(xiàn)
public class HelloThree extends AbstractJavaSamplerClient {
String uname="";
//定義GUI界面的參數(shù)。
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("username", "Jerry");
return params;
}
@Override
public void setupTest(JavaSamplerContext context) {
//獲取參數(shù)
uname = context.getParameter("username");
}
//主體執(zhí)行部分。
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
//new一個(gè)SampleResult對(duì)象,用來(lái)實(shí)現(xiàn)計(jì)時(shí)、結(jié)果回寫等操作。
SampleResult sr=new SampleResult();
//初始化業(yè)務(wù)功能類。業(yè)務(wù)功能類就是真正用來(lái)實(shí)現(xiàn)請(qǐng)求發(fā)送的類。
Request request=new Request();
//業(yè)務(wù)操作
try {
//請(qǐng)求開始計(jì)時(shí)
sr.sampleStart();
//調(diào)用業(yè)務(wù)方法。
String result=request.say(uname);
//設(shè)置顯示的請(qǐng)求數(shù)據(jù),非必須。
sr.setSamplerData("this is uname="+uname);
//設(shè)置顯示的響應(yīng)數(shù)據(jù),必須。
sr.setResponseData(result,sr.TEXT);
//設(shè)置請(qǐng)求的結(jié)束狀態(tài)。
sr.setSuccessful(true);
} catch (Exception e) {
sr.setResponseData("fail msg:"+e.getMessage(),sr.TEXT);
sr.setSuccessful(false);
} finally {
//請(qǐng)求結(jié)束計(jì)時(shí)。
sr.sampleEnd();
}
return sr;
}
}
寫好之后打成jar包;
3.jar包的存放
- ·擴(kuò)展的組件本身的jar包,放入Jmeter的lib\ext目錄。
- ·業(yè)務(wù)jar包及其所有的依賴包,放入Jmeter的lib目錄。
然后重啟jmeter,添加Java請(qǐng)求,就可以看到新增的Java請(qǐng)求了。
lib目錄的沖突、管理:
業(yè)務(wù)本身需要用到的一些jar包,可能Jmeter的lib目錄原始就存在。因此會(huì)存在以下問(wèn)題:
- ·jar包版本的沖突問(wèn)題。
- ·jar包數(shù)量太多,無(wú)法有效區(qū)分。
解決方法:在Jmeter.properties中設(shè)置plugin_dependency_path
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)易版SpringBoot自定義模擬實(shí)現(xiàn)
SpringBoot作為目前最流行的框架之一,極大地提高了開發(fā)效率和降低了學(xué)習(xí)成本,使得開發(fā)人員能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),而無(wú)需過(guò)多關(guān)注底層框架的配置和集成,本文模擬實(shí)現(xiàn)簡(jiǎn)易版SpringBoot2024-01-01
兩個(gè)小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作
這篇文章主要介紹了兩個(gè)小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Fluent Mybatis學(xué)習(xí)之Update語(yǔ)法實(shí)踐
Fluent MyBatis是一個(gè)MyBatis的增強(qiáng)工具,沒(méi)有對(duì)mybatis做任何修改。本篇文章將詳細(xì)介紹對(duì)Fluent Mybatis中的update語(yǔ)法進(jìn)行驗(yàn)證。代碼具有一定價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2021-11-11
Java編程實(shí)現(xiàn)游戲中的簡(jiǎn)單碰撞檢測(cè)功能示例
這篇文章主要介紹了Java編程中的簡(jiǎn)單碰撞檢測(cè)功能,涉及java針對(duì)坐標(biāo)點(diǎn)的相關(guān)數(shù)學(xué)運(yùn)算操作技巧,需要的朋友可以參考下2017-10-10
Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之隊(duì)列
這篇文章主要介紹了Java隊(duì)列數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),隊(duì)列是一種特殊的線性表,只允許在表的隊(duì)頭進(jìn)行刪除操作,在表的后端進(jìn)行插入操作,隊(duì)列是一個(gè)有序表先進(jìn)先出,想了解更多相關(guān)資料的小伙伴可以參考下面文章的詳細(xì)內(nèi)容2022-02-02
java 數(shù)值類型分秒時(shí)間格式化的實(shí)例代碼
這篇文章主要介紹了java 數(shù)值類型分秒時(shí)間格式化的實(shí)例代碼的相關(guān)資料,將秒或分鐘的值轉(zhuǎn)換為xx天xx小時(shí)xx分鐘xx秒 如果 “xx” 為0 自動(dòng)缺省,需要的朋友可以參考下2017-07-07
Java實(shí)現(xiàn)二維數(shù)組和稀疏數(shù)組之間的轉(zhuǎn)換
本文主要介紹了Java 二維數(shù)組和稀疏數(shù)組轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06

