JMeter 實(shí)現(xiàn)Java請求步驟及原理詳解
1.jar包
添加jar包依賴,注意和Jmeter的版本相同:
ApacheJMeter_core.jar,ApacheJMeter_java.jar
2.寫Java請求
先繼承 AbstractJavaSamplerClient,或者實(shí)現(xiàn) JavaSamplerClient,
各方法和參數(shù):
- getDefaultParameters(),用來自定義參數(shù)的。
- runTest(),請求主體。
- Arguments類: 參數(shù)管理;
- addAuguments() 用來添加參數(shù)。
- JavaSamplerContext類: javaSampler的容器類,用來接收、處理用戶傳入的參數(shù)。
- getParameter("參數(shù)名稱") 用來獲取指定的參數(shù)的值。
- SampleResult類,請求類。
代碼實(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對象,用來實(shí)現(xiàn)計(jì)時(shí)、結(jié)果回寫等操作。 SampleResult sr=new SampleResult(); //初始化業(yè)務(wù)功能類。業(yè)務(wù)功能類就是真正用來實(shí)現(xiàn)請求發(fā)送的類。 Request request=new Request(); //業(yè)務(wù)操作 try { //請求開始計(jì)時(shí) sr.sampleStart(); //調(diào)用業(yè)務(wù)方法。 String result=request.say(uname); //設(shè)置顯示的請求數(shù)據(jù),非必須。 sr.setSamplerData("this is uname="+uname); //設(shè)置顯示的響應(yīng)數(shù)據(jù),必須。 sr.setResponseData(result,sr.TEXT); //設(shè)置請求的結(jié)束狀態(tài)。 sr.setSuccessful(true); } catch (Exception e) { sr.setResponseData("fail msg:"+e.getMessage(),sr.TEXT); sr.setSuccessful(false); } finally { //請求結(jié)束計(jì)時(shí)。 sr.sampleEnd(); } return sr; } }
寫好之后打成jar包;
3.jar包的存放
- ·擴(kuò)展的組件本身的jar包,放入Jmeter的lib\ext目錄。
- ·業(yè)務(wù)jar包及其所有的依賴包,放入Jmeter的lib目錄。
然后重啟jmeter,添加Java請求,就可以看到新增的Java請求了。
lib目錄的沖突、管理:
業(yè)務(wù)本身需要用到的一些jar包,可能Jmeter的lib目錄原始就存在。因此會(huì)存在以下問題:
- ·jar包版本的沖突問題。
- ·jar包數(shù)量太多,無法有效區(qū)分。
解決方法:在Jmeter.properties中設(shè)置plugin_dependency_path
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot項(xiàng)目連接多種數(shù)據(jù)庫該如何操作詳析
在Spring Boot應(yīng)用中連接多個(gè)數(shù)據(jù)庫或數(shù)據(jù)源可以使用多種方式,下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目連接多種數(shù)據(jù)庫該如何操作的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08Springboot通過ObjectMapper配置json序列化詳解
SpringBoot默認(rèn)集成Jackson庫,其中ObjectMapper類是核心,用于Java對象與JSON字符串的互轉(zhuǎn),提供配置序列化特性、注冊模塊等方法,在SpringBoot中可以全局配置JSON格式,如日期格式化、將Long轉(zhuǎn)為字符串,還可以配置序列化時(shí)的各種規(guī)則,感興趣的可以了解一下2024-10-10詳解Spring boot/Spring 統(tǒng)一錯(cuò)誤處理方案的使用
這篇文章主要介紹了詳解Spring boot/Spring 統(tǒng)一錯(cuò)誤處理方案的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06java中URLEncoder.encode與URLDecoder.decode處理url特殊參數(shù)的方法
這篇文章主要給大家介紹了關(guān)于java中URLEncoder.encode與URLDecoder.decode處理url特殊參數(shù)的方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法
這篇文章主要介紹了詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法,安全哈希算法第一版和消息摘要算法第五版也是通常人們最常用的加密算法,需要的朋友可以參考下2016-04-04