JMeter 壓力測試(流程骨架/搶紅包舉例實戰(zhàn)/多場景多線程組混合并發(fā)

性能測試里面包含三個測試:基準測試优构、負載測試、壓力測試雁竞。


基準測試就是用一個虛擬用戶(UV)進行一個對被測系統(tǒng)/對象的操作


負載測試就是慢慢不斷地加UV


壓力測試就是長時間連續(xù)運行系統(tǒng)給系統(tǒng)性能造成的影響钦椭,一直到測出問題為止


一、JMeter進行HTTP協(xié)議接口的壓力測試

1.添加線程組


填寫并發(fā)信息


2.添加HTTP請求


填寫HTTP請求信息


3.設(shè)置監(jiān)聽器


4.測試執(zhí)行

5.測試結(jié)果解析

1.)查看結(jié)果樹:可以查看測試結(jié)果、請求信息玉凯、響應(yīng)信息势腮;

2)查看聚合報告:可以查看測試的請求數(shù)、響應(yīng)時間和成功率



二漫仆、JMeter測試搶紅包示例


(1)概述

???? 此處記錄使用JMeter對搶紅包業(yè)務(wù)進行壓力測試的過程捎拯,涉及的內(nèi)容包括:


1.搶紅包業(yè)務(wù)壓力測試需求分析;

2.創(chuàng)建JMeter測試計劃盲厌,根據(jù)業(yè)務(wù)執(zhí)行邏輯設(shè)計測試腳本署照;

3.設(shè)置檢查點;

4.回放腳本吗浩,根據(jù)業(yè)務(wù)邏輯判斷檢查點設(shè)置是否有效建芙;

5.腳本參數(shù)化;

6.虛擬批量用戶執(zhí)行搶紅包業(yè)務(wù)懂扼;

7.測試結(jié)果分析禁荸;


(2)測試需求分析

1.驗證批量用戶搶紅包時的響應(yīng)時間是否滿足300ms以內(nèi);

2.驗證相同紅包每個用戶只能搶1次阀湿;

3.每個紅包最多只能被搶9次赶熟;

4.用戶搶紅包的業(yè)務(wù):

1)使用手機訪問紅包,請求驗證碼陷嘴;(參數(shù)包含手機號碼和驗證碼)

2)(驗證碼下發(fā)成功)映砖,使用手機搶紅包;(參數(shù)包含手機號碼和驗證碼)

5.測試手機號碼和測試紅包有限灾挨;


(3)創(chuàng)建測試計劃邑退、設(shè)計測試腳本

步驟如下:

1.新建測試計劃,右擊測試計劃-->【添加】-->【Threads(Users)】-->【線程組】劳澄,創(chuàng)建名為“搶紅包測試”的線程組地技;

2.右擊“搶紅包測試”線程組-->【添加】-->【Sampler】-->【HTTP請求】,添加名為“請求驗證碼”的HTTP請求秒拔;


1)填寫“請求驗證碼”的HTTP請求信息乓土;


“請求驗證碼”

右擊“搶紅包測試”線程組-->【添加】-->【Sampler】-->【HTTP請求】,添加名為“搶紅包”的HTTP請求溯警;


“搶紅包”


2)為“搶紅包”請求添加【查看結(jié)果樹】趣苏,監(jiān)聽測試結(jié)果;

右擊“搶紅包測試”線程組-->【添加】-->【監(jiān)聽器】-->【查看結(jié)果樹】梯轻,看測試結(jié)果食磕、請求信息、響應(yīng)信息喳挑;


5.右擊“搶紅包測試”線程組-->【添加】-->【監(jiān)聽器】-->【聚合報告】彬伦,查看測試的請求數(shù)滔悉、響應(yīng)時間和成功率等信息;


6.按上述步驟創(chuàng)建測試腳本单绑,效果如下:


(4)設(shè)置檢查點

步驟如下:

1.使用一組正確的測試數(shù)據(jù)回官,驗證請求驗證碼、搶紅包成功的提示信息:

? ?1)請求驗證碼成功的提示信息為“短信驗證碼下發(fā)成功搂橙!”


?2)請求驗證碼成功后歉提,搶紅包成功的提示信息為“成功”

2.設(shè)置檢查點

請求驗證碼-->【添加】-->【斷言】-->【響應(yīng)斷言】;


2)點擊【添加】按鈕区转,編輯斷言信息苔巨,該例中檢查響應(yīng)數(shù)據(jù)是否包含“短信驗證碼下發(fā)成功!”


“搶紅包”-->【添加】-->【斷言】-->【響應(yīng)斷言】废离;


4)點擊【添加】按鈕侄泽,編輯斷言信息,該例中檢查響應(yīng)數(shù)據(jù)是否包含“成功”蜻韭;


(5)驗證檢查點是否生效

  • .使用失效數(shù)據(jù)模擬用戶請求悼尾,確認檢查點是否生效;


  • ?1.)使用失效數(shù)據(jù)請求驗證碼時肖方,測試失敗闺魏,因沒有檢查到指定信息;


    2.)使用失效數(shù)據(jù)搶紅包時窥妇,測試失敗兑徘,因沒有檢查到指定信息榄攀;


    2.使用正確信息請求時瘩例,測試通過氯窍;


    (6)腳本參數(shù)化

    步驟如下:

    右擊“搶紅包測試”線程組-->【添加】-->【配置元件】-->【CSV Data Set Config】阐枣;


    2.編輯【CSV Data Set Config】信息佑钾,如下圖:


    3.修改“請求驗證碼”和“搶紅包”請求中需要參數(shù)化的參數(shù)值悠鞍,和步驟2中定義的變量屬性一致弓坞;



    (7)虛擬批量用戶執(zhí)行搶紅包業(yè)務(wù)

    前置條件:

    1.檢查點生效吨岭、測試腳本調(diào)試成功拉宗;

    2.測試參數(shù)化的測試數(shù)據(jù)準備完成;

    步驟:

    1.設(shè)置測試計劃循環(huán)次數(shù)辣辫;



    (8)測試結(jié)果分析

    1.查看結(jié)果樹:測試結(jié)果與實際結(jié)果一致旦事,成功118次,失敗7次(調(diào)試腳本時已使用的信息急灭,為失效信息)


    2.查看聚合報告:


    三姐浮、多線程組并發(fā)測試(多場景混合并發(fā))


    如果測試需求出現(xiàn)如下場景,該如何使用JMeter實現(xiàn)壓力測試呢葬馋?即JMeter如何實現(xiàn)多線程組并發(fā)測試卖鲤,也就是Loadrunner中的混合場景測試時肾扰,該如何設(shè)置并發(fā)數(shù)?


    測試需求如下:對業(yè)務(wù)A蛋逾、業(yè)務(wù)B集晚、業(yè)務(wù)C、業(yè)務(wù)D区匣、業(yè)務(wù)E偷拔,5個業(yè)務(wù)按并發(fā)比例要求進行100個用戶并發(fā)的壓力測試;


    JMeter是可以實現(xiàn)上述需求的沉颂,測試方案如下:

    1.創(chuàng)建一個測試計劃条摸;

    2.在該計劃下添加5個線程組,分別是對業(yè)務(wù)A铸屉、業(yè)務(wù)B钉蒲、業(yè)務(wù)C、業(yè)務(wù)D彻坛、業(yè)務(wù)E顷啼;

    3.分別設(shè)置線程組業(yè)務(wù)A、業(yè)務(wù)B昌屉、業(yè)務(wù)C钙蒙、業(yè)務(wù)D、業(yè)務(wù)E的線程數(shù)為:40间驮、10躬厌、20、25竞帽、5(總并發(fā)量為100扛施,按并發(fā)比例設(shè)置并發(fā)用戶數(shù))


    3.在該計劃下添加測試結(jié)果監(jiān)控;


    4.設(shè)置執(zhí)行時間屹篓,開始執(zhí)行測試疙渣,測試時可以看到并發(fā)數(shù)為5個業(yè)務(wù)并發(fā)量的總和,堆巧,如下圖:


    四妄荔、Jmeter發(fā)送https請求的基礎(chǔ)壓測操作

    現(xiàn)在越來越多的服務(wù)器都是使用https的請求,所以直接還是使用http以前的那一套肯定是不行了谍肤。有較多的服務(wù)器請求需要證書啦租,才能進行訪問,比如阿里云的ip定位服務(wù)荒揣,就是需要信息頭證書篷角。服務(wù)端驗證了信息頭中的值正確了才會放行response,并同時回調(diào)信息乳附。這樣可以最大的保證服務(wù)的安全和價值性内地。



    第一步:右鍵添加線程組


    第二步:線程組下右鍵添加Sampler---HTTP請求

    (前提是你需要壓測的是https協(xié)議的)必須在協(xié)議欄中手動輸入https(大小寫都可)伴澄,一般都是get,請求方法視自己需要選擇阱缓。在Parameters中輸入字段標識和值非凌。


    如果只是普通的HTTP協(xié)議,可以不填荆针,但是如果是HTTPS協(xié)議敞嗡,那么需要在協(xié)議處添加https,端口號的位置也需要填寫上? ? ? ? 443 ?? ? ?航背,其他部分都是按照正常的方式填寫喉悴!再叮囑一句端口一般情況下一定是443!


    第三步:添加http信息頭管理器玖媚。

    在頭管理器中添加授權(quán)方給的key輸入到值列表中箕肃,注意如果是復(fù)制過來的一定要注意? ?空格~~~


    同時我們要把頭管理器放到http請求的序列之前(不要問為什么,因為jmeter是嚴格按照序列來執(zhí)行請求的今魔。)


    第四步:右擊添加查看結(jié)果樹勺像、聚合報告等,然后保存執(zhí)行就可以了


    ?第五步:在以上幾步之前要搞清楚線程組中的線程數(shù)和循環(huán)次數(shù)的區(qū)別错森。(一定要清楚吟宦,不然跑出來的聚合報告數(shù)據(jù)完全不同并對測試結(jié)果造成偏差。)




    源碼交流及其它接口測試細節(jié)歡迎加入知識星球「細說測試」涩维,掃碼下圖二維碼即可殃姓。


    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
    • 序言:七十年代末,一起剝皮案震驚了整個濱河市瓦阐,隨后出現(xiàn)的幾起案子蜗侈,更是在濱河造成了極大的恐慌,老刑警劉巖垄分,帶你破解...
      沈念sama閱讀 210,914評論 6 490
    • 序言:濱河連續(xù)發(fā)生了三起死亡事件宛篇,死亡現(xiàn)場離奇詭異娃磺,居然都是意外死亡薄湿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
      沈念sama閱讀 89,935評論 2 383
    • 文/潘曉璐 我一進店門偷卧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豺瘤,“玉大人,你說我怎么就攤上這事听诸∽螅” “怎么了?”我有些...
      開封第一講書人閱讀 156,531評論 0 345
    • 文/不壞的土叔 我叫張陵晌梨,是天一觀的道長桥嗤。 經(jīng)常有香客問我须妻,道長,這世上最難降的妖魔是什么泛领? 我笑而不...
      開封第一講書人閱讀 56,309評論 1 282
    • 正文 為了忘掉前任荒吏,我火速辦了婚禮,結(jié)果婚禮上渊鞋,老公的妹妹穿的比我還像新娘绰更。我一直安慰自己,他們只是感情好锡宋,可當我...
      茶點故事閱讀 65,381評論 5 384
    • 文/花漫 我一把揭開白布儡湾。 她就那樣靜靜地躺著,像睡著了一般执俩。 火紅的嫁衣襯著肌膚如雪徐钠。 梳的紋絲不亂的頭發(fā)上,一...
      開封第一講書人閱讀 49,730評論 1 289
    • 那天役首,我揣著相機與錄音丹皱,去河邊找鬼。 笑死宋税,一個胖子當著我的面吹牛摊崭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杰赛,決...
      沈念sama閱讀 38,882評論 3 404
    • 文/蒼蘭香墨 我猛地睜開眼呢簸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了乏屯?” 一聲冷哼從身側(cè)響起根时,我...
      開封第一講書人閱讀 37,643評論 0 266
    • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辰晕,沒想到半個月后蛤迎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
      沈念sama閱讀 44,095評論 1 303
    • 正文 獨居荒郊野嶺守林人離奇死亡含友,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
      茶點故事閱讀 36,448評論 2 325
    • 正文 我和宋清朗相戀三年替裆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窘问。...
      茶點故事閱讀 38,566評論 1 339
    • 序言:一個原本活蹦亂跳的男人離奇死亡辆童,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惠赫,到底是詐尸還是另有隱情把鉴,我是刑警寧澤,帶...
      沈念sama閱讀 34,253評論 4 328
    • 正文 年R本政府宣布儿咱,位于F島的核電站庭砍,受9級特大地震影響场晶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怠缸,卻給世界環(huán)境...
      茶點故事閱讀 39,829評論 3 312
    • 文/蒙蒙 一峰搪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凯旭,春花似錦概耻、人聲如沸。這莊子的主人今日做“春日...
      開封第一講書人閱讀 30,715評論 0 21
    • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嫉柴,卻和暖如春厌杜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背计螺。 一陣腳步聲響...
      開封第一講書人閱讀 31,945評論 1 264
    • 我被黑心中介騙來泰國打工夯尽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人登馒。 一個月前我還...
      沈念sama閱讀 46,248評論 2 360
    • 正文 我出身青樓匙握,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陈轿。 傳聞我的和親對象是個殘疾皇子圈纺,可洞房花燭夜當晚...
      茶點故事閱讀 43,440評論 2 348

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