Jmeter:使用 JMeter 進(jìn)行壓力測試

原文:# 使用 JMeter 進(jìn)行壓力測試

一.前言

壓力測試是每一個(gè)Web應(yīng)用程序上線之前都需要做的一個(gè)測試题涨,他可以幫助我們發(fā)現(xiàn)系統(tǒng)中的瓶頸問題,減少發(fā)布到生產(chǎn)環(huán)境后出問題的幾率奔坟;預(yù)估系統(tǒng)的承載能力携栋,使我們能根據(jù)其做出一些應(yīng)對措施。所以壓力測試是一個(gè)非常重要的步驟咳秉,下面我?guī)Т蠹襾硎褂靡豢顗毫y試工具JMeter婉支。

二.關(guān)于JMeter

Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試澜建,它最初被設(shè)計(jì)用于Web應(yīng)用測試向挖,但后來擴(kuò)展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動(dòng)態(tài)資源炕舵,例如靜態(tài)文件何之、Java 小服務(wù)程序、CGI 腳本咽筋、Java 對象溶推、數(shù)據(jù)庫、FTP 服務(wù)器奸攻, 等等蒜危。JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載睹耐,來自不同壓力類別下測試它們的強(qiáng)度和分析整體性能辐赞。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試硝训,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證你的程序返回了你期望的結(jié)果响委。為了最大限度的靈活性新思,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。
Apache jmeter 可以用于對靜態(tài)的和動(dòng)態(tài)的資源(文件赘风,Servlet夹囚,Perl腳本,java 對象邀窃,數(shù)據(jù)庫和查詢崔兴,F(xiàn)TP服務(wù)器等等)的性能進(jìn)行測試。它可以用于對服務(wù)器蛔翅、網(wǎng)絡(luò)或?qū)ο竽M繁重的負(fù)載來測試它們的強(qiáng)度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大并發(fā)負(fù)載測試你的服務(wù)器/腳本/對象位谋。

官網(wǎng):http://jmeter.apache.org/download_jmeter.cgi

這里我選用了 4.0 版本的二進(jìn)制包:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip

更多內(nèi)容介紹 https://baike.baidu.com/item/Jmeter/3104456

三.準(zhǔn)備工作

因?yàn)镴Meter是使用JAVA寫的山析,所以使用JMeter之前,先安裝JAVA環(huán)境掏父,本文就不講不如安裝JAVA環(huán)境了笋轨。.

JAVA環(huán)境變量配置:https://jingyan.baidu.com/article/fd8044fa2c22f15031137a2a.html

解壓下載的二進(jìn)制包,進(jìn)入bin目錄赊淑,使用jmeter.bat啟動(dòng)程序爵政。

啟動(dòng)之后會(huì)有兩個(gè)窗口,一個(gè)cmd窗口陶缺,一個(gè)JMeter的 GUI钾挟。前面不要忽略CMD窗口的提示信息:

image

JMeter:

image

CMD窗口的提示信息

================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

上面的意思就是:不要使用GUI運(yùn)行壓力測試,GUI僅用于壓力測試的創(chuàng)建和調(diào)試饱岸;執(zhí)行壓力測試請不要使用GUI掺出。使用下面的命令來執(zhí)行測試:

 jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

并且修改JMeter批處理文件的環(huán)境變量:HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"

更改語言為中文

官方默認(rèn)為我們提供了簡體中文。通過 【Options】->【Choose Language】變更為簡體中文

image

四.創(chuàng)建測試

1.創(chuàng)建線程組

在“測試計(jì)劃”上右鍵 【添加】-->【Threads(Users)】-->【線程組】苫费。

image

設(shè)置線程數(shù)和循環(huán)次數(shù)汤锨。我這里設(shè)置線程數(shù)為500,循環(huán)一次百框。

image

2.配置元件

在我們剛剛創(chuàng)建的線程組上右鍵 【添加】-->【配置元件】-->【HTTP請求默認(rèn)值】闲礼。

image

配置我們需要進(jìn)行測試的程序協(xié)議、地址和端口

image

當(dāng)所有的接口測試的訪問域名和端口都一樣時(shí)铐维,可以使用該元件柬泽,一旦服務(wù)器地址變更,只需要修改請求默認(rèn)值即可方椎。

3.構(gòu)造HTTP請求

在“線程組”右鍵 【添加-】->【samlper】-->【HTTP 請求】設(shè)置我們需要測試的API的請求路徑和數(shù)據(jù)聂抢。我這里是用的json

image

4.添加HTTP請求頭

在我們剛剛創(chuàng)建的線程組上右鍵 【添加】-->【配置元件】-->【HTTP信息頭管理器】。

因?yàn)槲乙獋鬏數(shù)臄?shù)據(jù)為json棠众,所以設(shè)置一個(gè) Content-Type:application/json

image

5.添加斷言

在我們剛剛創(chuàng)建的線程組上右鍵 【添加】-->【斷言】-->【響應(yīng)斷言】琳疏。

根據(jù)響應(yīng)的數(shù)據(jù)來判斷請求是否正常有决。我在這里只判斷的響應(yīng)代碼是否為200。還可以配置錯(cuò)誤信息

image

6.添加察看結(jié)果樹

在我們剛剛創(chuàng)建的線程組上右鍵 【添加】-->【監(jiān)聽器】-->【察看結(jié)果樹】空盼。

直接添加书幕,然后點(diǎn)擊運(yùn)行按鈕就可以看到結(jié)果了。

image

7.添加Summary Report

在我們剛剛創(chuàng)建的線程組上右鍵 【添加】-->【監(jiān)聽器】-->【Summary Report】揽趾。

直接添加台汇,然后點(diǎn)擊運(yùn)行按鈕就可以看到結(jié)果了。

image

為了不引起不必要的爭論篱瞎,隱藏了TPS苟呐。此數(shù)據(jù)不具備任何價(jià)值,僅僅為文章演示俐筋。

8.測試計(jì)劃創(chuàng)建完成

記得點(diǎn)保存牵素。

五.執(zhí)行測試計(jì)劃

前面我們說過,執(zhí)行測試計(jì)劃不能用GUI澄者,需要用命令行來執(zhí)行笆呆。

image

我這里執(zhí)行的命令為:

jmeter -n -t testplan/RedisLock.jmx -l testplan/result/result.txt -e -o testplan/webreport

說明:

testplan/RedisLock.jmx 為測試計(jì)劃文件路徑
testplan/result/result.txt 為測試結(jié)果文件路徑
testplan/webreport 為web報(bào)告保存路徑。

Web報(bào)告如下:

image

六.寫在最后

線程數(shù)量和循環(huán)次數(shù)將會(huì)影響最終的測試報(bào)告,請大家多多測試粱挡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赠幕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子询筏,更是在濱河造成了極大的恐慌榕堰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屈留,死亡現(xiàn)場離奇詭異局冰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)灌危,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門康二,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勇蝙,你說我怎么就攤上這事沫勿。” “怎么了味混?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵产雹,是天一觀的道長。 經(jīng)常有香客問我翁锡,道長蔓挖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任馆衔,我火速辦了婚禮瘟判,結(jié)果婚禮上怨绣,老公的妹妹穿的比我還像新娘。我一直安慰自己拷获,他們只是感情好篮撑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匆瓜,像睡著了一般赢笨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驮吱,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天茧妒,我揣著相機(jī)與錄音,去河邊找鬼左冬。 笑死嘶伟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的又碌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绊袋,長吁一口氣:“原來是場噩夢啊……” “哼毕匀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起癌别,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤皂岔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后展姐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躁垛,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年圾笨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了教馆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡擂达,死狀恐怖土铺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情板鬓,我是刑警寧澤悲敷,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站俭令,受9級特大地震影響后德,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抄腔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一瓢湃、第九天 我趴在偏房一處隱蔽的房頂上張望理张。 院中可真熱鬧,春花似錦箱季、人聲如沸涯穷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拷况。三九已至,卻和暖如春掘殴,著一層夾襖步出監(jiān)牢的瞬間赚瘦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工奏寨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留起意,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓病瞳,卻偏偏與公主長得像揽咕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子套菜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

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