JMeter 實(shí)現(xiàn)Java請(qǐng)求步驟及原理詳解
1.jar包
添加jar包依賴,注意和Jmeter的版本相同:
ApacheJMeter_core.jar,ApacheJMeter_java.jar
2.寫(xiě)Java請(qǐng)求
先繼承 AbstractJavaSamplerClient,或者實(shí)現(xiàn) JavaSamplerClient,
各方法和參數(shù):
- getDefaultParameters(),用來(lái)自定義參數(shù)的。
- runTest(),請(qǐng)求主體。
- Arguments類(lèi): 參數(shù)管理;
- addAuguments() 用來(lái)添加參數(shù)。
- JavaSamplerContext類(lèi): javaSampler的容器類(lèi),用來(lái)接收、處理用戶傳入的參數(shù)。
- getParameter("參數(shù)名稱") 用來(lái)獲取指定的參數(shù)的值。
- SampleResult類(lèi),請(qǐng)求類(lèi)。
代碼實(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é)果回寫(xiě)等操作。
SampleResult sr=new SampleResult();
//初始化業(yè)務(wù)功能類(lèi)。業(yè)務(wù)功能類(lèi)就是真正用來(lái)實(shí)現(xiàn)請(qǐng)求發(fā)送的類(lèi)。
Request request=new Request();
//業(yè)務(wù)操作
try {
//請(qǐng)求開(kāi)始計(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;
}
}
寫(xiě)好之后打成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)文章
springboot項(xiàng)目連接多種數(shù)據(jù)庫(kù)該如何操作詳析
在Spring Boot應(yīng)用中連接多個(gè)數(shù)據(jù)庫(kù)或數(shù)據(jù)源可以使用多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目連接多種數(shù)據(jù)庫(kù)該如何操作的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Springboot通過(guò)ObjectMapper配置json序列化詳解
SpringBoot默認(rèn)集成Jackson庫(kù),其中ObjectMapper類(lèi)是核心,用于Java對(duì)象與JSON字符串的互轉(zhuǎn),提供配置序列化特性、注冊(cè)模塊等方法,在SpringBoot中可以全局配置JSON格式,如日期格式化、將Long轉(zhuǎn)為字符串,還可以配置序列化時(shí)的各種規(guī)則,感興趣的可以了解一下2024-10-10
解決IDEA占用C盤(pán)空間過(guò)大的問(wèn)題
這篇文章主要介紹了解決IDEA占用C盤(pán)空間過(guò)大的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
詳解Spring boot/Spring 統(tǒng)一錯(cuò)誤處理方案的使用
這篇文章主要介紹了詳解Spring boot/Spring 統(tǒng)一錯(cuò)誤處理方案的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
JavaScript的基本類(lèi)型值-String類(lèi)型
String類(lèi)型用于表示由零或多個(gè)16位Unicode字符組成的字符序列,即字符串。在JavaScript中沒(méi)有單個(gè)的字符型,都是字符串。這篇文章主要介紹了JavaScript的基本類(lèi)型值String類(lèi)型,需要的朋友可以參考下2017-02-02
java中URLEncoder.encode與URLDecoder.decode處理url特殊參數(shù)的方法
這篇文章主要給大家介紹了關(guān)于java中URLEncoder.encode與URLDecoder.decode處理url特殊參數(shù)的方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03
詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法
這篇文章主要介紹了詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法,安全哈希算法第一版和消息摘要算法第五版也是通常人們最常用的加密算法,需要的朋友可以參考下2016-04-04

