如何使用Java 開發(fā)Apache JMeter JavaRequest

如何使用Java 開發(fā)Apache JMeter JavaRequest

開發(fā)Apache JMeter Java?Request的目的

目前較多的壓測都是Http接口,但是實際工作中也可能會遇見一些無法通過http 來實現(xiàn)的岗屏,有單協(xié)議的,有多協(xié)議的吨拍,為了簡單快捷我們可以使用Java Request來實現(xiàn);

二.?[endif]實現(xiàn)Java Request

1.???? [endif]創(chuàng)建maven工程

2.?? [endif]在pom文件添加依賴【Apache JMeter CoreApache JMeter Java

3.?? [endif]繼承AbstractJavaSamplerClient類,并重寫setupTest()/getDefaultParameters()/runTest()/teardownTest()方法;

package hg.auto.cases;

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;

/**

?*@authorderrick

?*/

public class HsCases extends AbstractJavaSamplerClient {

??? private SampleResult results;

???privateString nickname;

???privateString pwd;

???private static finalString PARAMS_PASSWORD = "derrick";

???private static finalString PARAMS_NICKNAME = "derrick";

???private static finalString CHARSET_UTF_8 = "UTF-8";

??? @Override

??? public void setupTest(JavaSamplerContext arg) {

???????results= new SampleResult();

???????results.setSamplerData(toString());

???????results.setDataType("text");

???????results.setContentType("text/plain");

???????results.setDataEncoding(CHARSET_UTF_8);

??? }

??? @Override

??? public Arguments getDefaultParameters() {

???????Arguments params =new Arguments();

???????params.addArgument("nickname", PARAMS_NICKNAME);

???????params.addArgument("pwd", PARAMS_PASSWORD);

???????returnparams;

??? }

??? @Override

??? public SampleResult runTest(JavaSamplerContextcontext) {

???????results.sampleStart(); // 定義一個事務(wù),事務(wù)開始

??????? nickname = context.getParameter("nickname");

???????pwd = context.getParameter("pwd");

???????login(nickname, pwd);

???????results.sampleEnd(); // 定義一個事務(wù),事務(wù)結(jié)束

??????? return results;

??? }

??? public void login(String nickname, String pwd) {

???????results.setResponseCode(CHARSET_UTF_8);

???????if(PARAMS_PASSWORD.equals(pwd)&&PARAMS_NICKNAME.equals(nickname)) {

???????????results.setSuccessful(true);

???????????results.setResponseCodeOK();

???????????results.setResponseMessage("success");

???????????results.setResponseData("{\"Code\":\"10000\",\"Token\":\"WRETCHEDNESS34T343453T1LUO198812004\"}", CHARSET_UTF_8);

???????} else {

???????????results.setResponseCode("500");

???????????results.setResponseMessage("user pwd error");

???????????results.setSuccessful(false);

???????????results.setResponseData("{\"Code\":\"9999\",\"Msg\":\"用戶名或密碼錯誤隶校,請重試! \"}", CHARSET_UTF_8);

???????}

??? }

??? @Override

??? public void teardownTest(JavaSamplerContext arg) {

???????System.out.println("tread down");

??? }

}

三.?打包測試

1.?? 將jar包放在jmeter lib/ext目錄下蛹锰,重新啟動Jmeter

2.?? Jmeter 配置 Java Request請求深胳,選擇執(zhí)行請求的類和默認(rèn)配置參數(shù)和值

到此Java Request請求配置完成,后續(xù)請求執(zhí)行階段與Http請求執(zhí)行一致铜犬,而Jmeter request 請求的核心步驟不在于Jmeter的配置舞终,關(guān)鍵在于Java 代碼的實現(xiàn)內(nèi)容,主要邏輯存放在Java代碼癣猾,而Jmeter主要是來執(zhí)行該代碼

3.?? 常用方法介紹

public voidsetupTest(JavaSamplerContext context){};? //? 測試啟動時調(diào)用敛劝,主要做一些初始化工作;

public void teardownTest(JavaSamplerContext context){}; // 測試結(jié)束時調(diào)用纷宇,主要做一些資源回收工作夸盟;

public Arguments getDefaultParameters(){return null;}; //設(shè)置可用參數(shù)及參數(shù)默認(rèn)值,主要用于Jmeter界面與代碼參數(shù)之間的交互操作;

public SampleResult runTest(JavaSamplerContext javaSamplerContext) {return null;}; // 必選像捶,實現(xiàn)自定義請求

4.?? [endif]代碼中的方法執(zhí)行的先后順序:

??????getDefaultParameters()-->setupTest(JavaSamplerContext?context) -->runTest(JavaSamplerContext?context)-->teardownTest(JavaSamplerContext?context)

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上陕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拓春,更是在濱河造成了極大的恐慌释簿,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硼莽,死亡現(xiàn)場離奇詭異辕万,居然都是意外死亡,警方通過查閱死者的電腦和手機沉删,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門渐尿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矾瑰,你說我怎么就攤上這事砖茸。” “怎么了殴穴?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵凉夯,是天一觀的道長货葬。 經(jīng)常有香客問我,道長劲够,這世上最難降的妖魔是什么震桶? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮征绎,結(jié)果婚禮上蹲姐,老公的妹妹穿的比我還像新娘。我一直安慰自己人柿,他們只是感情好柴墩,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凫岖,像睡著了一般江咳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哥放,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天歼指,我揣著相機與錄音,去河邊找鬼甥雕。 笑死东臀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的犀农。 我是一名探鬼主播惰赋,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼呵哨!你這毒婦竟也來了赁濒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤孟害,失蹤者是張志新(化名)和其女友劉穎拒炎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挨务,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡击你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谎柄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丁侄。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖朝巫,靈堂內(nèi)的尸體忽然破棺而出鸿摇,到底是詐尸還是另有隱情,我是刑警寧澤劈猿,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布拙吉,位于F島的核電站潮孽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏筷黔。R本人自食惡果不足惜往史,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佛舱。 院中可真熱鬧椎例,春花似錦、人聲如沸名眉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽损拢。三九已至,卻和暖如春撒犀,著一層夾襖步出監(jiān)牢的瞬間福压,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工或舞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荆姆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓映凳,卻偏偏與公主長得像胆筒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子诈豌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容