利用Jmeter發(fā)送Java請求的實戰(zhàn)記錄
前言
第一次遇到了需要用Jmeter發(fā)送Java請求的情況,也是網(wǎng)上查過很多資料才成功。做一個記錄,做一個分享。
Jmeter去發(fā)送Java請求,就是需要你有測試類的jar包放到Jmeter的lib/ext目錄下,新建Java請求才可以。這個我們用到的測試類,開發(fā)給到以后我們需要自己去做一下調(diào)整,使用Eclipse工具來寫。
實現(xiàn)過程
1.首先創(chuàng)建好工程,用到兩個Jmeter包-ApacheJMeter_java.jar、ApacheJMeter_core.jar,直接從Jmeter復(fù)制項目里,并且右鍵Buid Path就可以了。
2.測試類需要繼承AbstractJavaSamplerClient,點擊報錯進行導(dǎo)包和添加實現(xiàn)方法。runTest方法就是核心方法,所實現(xiàn)的代碼邏輯在這里。
3.寫一個簡單的demo,兩個數(shù)相加為sum結(jié)果。初始化一個SampleResult,然后sr.sampleStart()作為Jmeter開始統(tǒng)計響應(yīng)時間標識,相加過程為正式的邏輯代碼,把返回結(jié)果放入sr并設(shè)置字符集,sr.setSuccessful()設(shè)置成功與否,最后加上sr.sampleEnd()結(jié)束統(tǒng)計響應(yīng)的標識,返回sr即可。
4.導(dǎo)出jar包,放到Jmeter-lib/ext目錄,添加一個Java請求,選擇我們test下的TestSum就可以了,測試結(jié)果如下:
5.簡單的測試寫完之后,我們再進行改造代碼,傳入的int參數(shù)不能是固定的,需要我們在Jmeter中傳入不同的參數(shù)進行測試,首先把剛才定義好的參數(shù)(8和6)去掉,在getDefaultParameters方法中去初始化一個參數(shù)集,把入?yún)⒎胚Mparams;setupTest方法做一些Jmeter測試前的初始化工作,可以在這里獲取我們輸入的參數(shù)。重新打包測試,我們就可以自定義兩個入?yún)⒌闹盗恕?/p>
6.到這里應(yīng)該都大概知道怎么做了,附上本次代碼,可以作為一個模板,直接在上邊進行修改即可。
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; public class TestSum extends AbstractJavaSamplerClient { private String number1; private String number2; @Override public Arguments getDefaultParameters() { Arguments params = new Arguments();//初始化一個參數(shù)集 params.addArgument("num1", "");//把入?yún)⒎湃雙arams params.addArgument("num2", ""); return params; } @Override public void setupTest(JavaSamplerContext arg0) { number1 = arg0.getParameter("num1");//獲取入?yún)?賦值給變量 number2 = arg0.getParameter("num2"); } @Override public SampleResult runTest(JavaSamplerContext arg0) { //int number1 = 8;// 定義一個int參數(shù)8 //int number2 = 6;// 定義一個int參數(shù)6 SampleResult sr = new SampleResult();// 初始化一個SampleResult sr.setSamplerData("請求參數(shù)num1:" + number1 + "\n請求參數(shù)num2:" + number2);// 參數(shù)放進sr try { sr.sampleStart(); // jmeter 開始統(tǒng)計響應(yīng)時間標識 int sum = Integer.parseInt(number1)+Integer.parseInt(number2);// 定義sum等于兩個參數(shù)相加,正式的邏輯代碼 sr.setResponseData("兩個數(shù)相加的結(jié)果是:" + sum, "utf-8");// 結(jié)果放入sr,并設(shè)置字符集 sr.setDataType(SampleResult.TEXT); sr.setSuccessful(true); // 設(shè)置響應(yīng)執(zhí)行成功 } catch (Throwable e) { sr.setSuccessful(false);// 有異常,執(zhí)行失敗 e.printStackTrace(); } finally { sr.sampleEnd(); // jmeter 結(jié)束統(tǒng)計響應(yīng)時間標識 } return sr; } }
真實的項目往往是復(fù)雜的,查看結(jié)果樹自定義返回什么內(nèi)容,如有定義好的返回結(jié)果resultData,sr.setResponseData(resultData, "字符集")即可。
總結(jié)
到此這篇關(guān)于利用Jmeter發(fā)送Java請求的文章就介紹到這了,更多相關(guān)Jmeter發(fā)送Java請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
UrlDecoder和UrlEncoder使用詳解_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了UrlDecoder和UrlEncoder使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Spring Boot + Mybatis 實現(xiàn)動態(tài)數(shù)據(jù)源案例分析
這篇文章主要介紹了Spring Boot + Mybatis 實現(xiàn)動態(tài)數(shù)據(jù)源,需要的朋友可以參考下2018-11-11Java?Excel?Poi字體顏色自定義設(shè)置代碼
最近項目使用POI按模板導(dǎo)出Excel,需要設(shè)置單元格的字體為紅色,下面這篇文章主要給大家介紹了關(guān)于Java?Excel?Poi字體顏色自定義設(shè)置的相關(guān)資料,需要的朋友可以參考下2024-01-01Mybatis如何實現(xiàn)關(guān)聯(lián)屬性懶加載
這篇文章主要介紹了Mybatis如何實現(xiàn)關(guān)聯(lián)屬性懶加載的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07