JMeter安裝及使用

本文章主要介紹JMeter的安裝及使用。

JMeter是一個開源的web程序測試工具嫡意。在課程大作業(yè)中,我們使用JMeter進行微信后端的壓力測試。挑選JMeter作為測試工具的原因主要是:操作簡單猪落、使用純Java容易移植巩剖、開源睛蛛。

我們的文章主要介紹以下內(nèi)容:
1.JMeter的安裝與配置
2.JMeter的使用簡介
3.微信后臺壓力測試示例

JMeter的安裝與配置

因為JMeter是純Java程序痴怨,所以我們只需要配置好java環(huán)境即可棵癣。

1.安裝Java

我們使用的是Apache-JMeter的5.0版本苞七,所以我們需要配置Java8.0或者9.0藐守。
下載地址如下:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
這里下載的JDK是8u191版本的,(事實上蹂风,這也是目前推薦的Java環(huán)境)
下載好之后卢厂,一路回車,即可安裝惠啄。接下來配置環(huán)境變量足淆。

變量名:JAVA_HOME 
變量值:C:\Program Files\Java\jdk1.8.0_191        // 要根據(jù)自己的實際路徑配置
變量名:CLASSPATH 
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //記得前面有個"."
變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

打開cmd,驗證Java配置環(huán)境礁阁。

# cmd
java -version

2.安裝JMeter

我們只需要下載JMeter再安裝即可巧号,下載網(wǎng)址如下:http://jmeter.apache.org/download_jmeter.cgi
需要注意,我們要下載二進制文件姥闭,否則還需要將JMeter配置進入Java的環(huán)境丹鸿。

JMeter的使用簡介

JMeter主要可以分為以下幾塊:
1)負(fù)載發(fā)生器:產(chǎn)生負(fù)載,多進程或多線程模擬用戶行為
2)用戶運行器:腳本運行引擎棚品,用戶運行器附加在進程或線程上靠欢,根據(jù)腳本模擬指定的用戶行為
3)資源生成器:生成測試過程中服務(wù)器、負(fù)載機的資源數(shù)據(jù)
4)報表生成器:根據(jù)測試中獲得的數(shù)據(jù)生成報表铜跑,提供可視化的數(shù)據(jù)顯示方式

其實它的工作原理比較容易理解门怪。
我們首先開了很多很多進程或者線程。然后讓這些線程去模擬訪問Web程序锅纺。
在訪問過程中掷空,如果存在數(shù)據(jù)產(chǎn)生,那么我就保存下來。最后由報表生成器進行顯示坦弟。

下面讓我們看一下具體的使用方式护锤。


GUI介紹.png

事實上,我們只要按照上面所說的分塊酿傍,放置好測試結(jié)構(gòu)烙懦,并且設(shè)置好主體區(qū)域的參數(shù)即可。
下面逐次介紹負(fù)載發(fā)生赤炒、用戶運行氯析、報表生成。

1.負(fù)載發(fā)生器

我們右鍵TestPlan的名稱莺褒,然后添加Threads(users)->線程組魄鸦。然后設(shè)置線程組參數(shù)。


線程組.png
線程數(shù):虛擬用戶的數(shù)目
Ramp—Up Period(in seconds):啟動所有線程所用準(zhǔn)備時長癣朗。
循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)拾因。如果選擇forever,那么就會一直發(fā)送請求直到腳本運行結(jié)束旷余。

2.用戶運行器

我們以模擬發(fā)送http請求為例子绢记,只需要右鍵點擊剛剛創(chuàng)建的線程組,然后選擇添加sampler->http request即可正卧。


httpSample.png

設(shè)置參數(shù)如下:

1)服務(wù)器名稱或IP:http請求發(fā)送的目標(biāo)服務(wù)器名稱或者IP地址
2)端口號:目標(biāo)服務(wù)器的端口號蠢熄,默認(rèn)值為80,可不填
3)協(xié)議:向目標(biāo)服務(wù)器發(fā)送http請求時的協(xié)議炉旷,http/https签孔,大小寫不敏感,默認(rèn)http
4)方法:發(fā)送http請求的方法窘行,可以用post和get等
5)Content encoding:內(nèi)容的編碼方式(Content-Type=application/json;charset=utf-8)
6)路徑:目標(biāo)的URL路徑饥追,比如我輸入/wechat,那么其實是http://127.0.0.1/wechat

3.報表生成器

報表生成器用來進行返回數(shù)據(jù)的整合罐盔。我們右鍵線程組但绕,添加監(jiān)聽,這里我們選擇“查看結(jié)果樹”惶看。
實際上捏顺,這個報表生成器主要是做反饋的匯總。

我們最終得到的結(jié)果如下:


結(jié)構(gòu).png

微信后臺壓力測試

我們這里使用的測試方法是纬黎,測試1ms內(nèi)并發(fā)的錯誤率幅骄。
我們以10000個線程在1ms內(nèi)啟動為例,說明操作順序本今。

1.設(shè)置線程組

1.png

實際上拆座,我們可以設(shè)置100個線程主巍,每個線程post200次,但是這樣并不能有效的測試出1ms內(nèi)并發(fā)的錯誤率懂拾。

2.設(shè)置計數(shù)器

因為我們實現(xiàn)的搶票程序需要不同的用戶煤禽,向后端postXML格式的數(shù)據(jù)铐达,所以我們這里岖赋,設(shè)置一個計數(shù)器,每執(zhí)行一個post瓮孙,計數(shù)器加一唐断。


2.png

相當(dāng)于是設(shè)置了一個名字為id的變量,這個變量的起始值和最大值以及遞增度均已經(jīng)設(shè)置好杭抠。

3.設(shè)置http請求管理

3.png

為http header Manager添加content_type屬性脸甘。

4.request設(shè)置

4.png

這里的IP填寫服務(wù)器ip即可,然后向http://yourip//wechat這個地方發(fā)送下面的XML偏灿。
這里我么使用到了定義的變量id丹诀,${id}即可使用此變量。

我們也可以在配置元件里面選擇自己定義的變量翁垂,進行使用

4.查看結(jié)果

添加結(jié)果樹铆遭,可以在主界面中看到每個request是否成功以及他們的返回值。

5.生成測試報告(windows)

我們使用的JMeter自帶的功能實現(xiàn)沿猜。
首先將TEST PLAN文件(.jmx)放在JMeter的bin目錄下枚荣,然后在目錄下執(zhí)行下面的命令行。

./jmeter -n -t Request.jmx -l result1000_10000.jtl -e -o ./tmp/ResultReport1000_10000
# ./jmeter -n 指無GUI狀態(tài)下執(zhí)行jmeter
# Request.jmx 為test plan文件
# 最終的html將生成在./tmp/ResultReport1000_10000/下

產(chǎn)生報告非常方便啼肩,包含各項數(shù)據(jù)橄妆。


5.png
6.png

本文介紹了JMeter的使用原理和實踐,在微信搶票大作業(yè)實現(xiàn)過程中祈坠,通過測試并發(fā)發(fā)現(xiàn)了一些數(shù)據(jù)庫操作的問題害碾,希望之后可以寫出更高質(zhì)量的代碼。

參考資料

1.http://jmeter.apache.org/usermanual/index.html
2.http://www.cnblogs.com/imyalost/p/5790268.html
3.https://www.runoob.com/java/java-environment-setup.html
4.https://blog.csdn.net/cyjs1988/article/details/80268357

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赦拘,一起剝皮案震驚了整個濱河市蛮原,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌另绩,老刑警劉巖儒陨,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笋籽,居然都是意外死亡蹦漠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門车海,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笛园,“玉大人隘击,你說我怎么就攤上這事⊙忻” “怎么了埋同?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長棵红。 經(jīng)常有香客問我凶赁,道長,這世上最難降的妖魔是什么逆甜? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任虱肄,我火速辦了婚禮,結(jié)果婚禮上交煞,老公的妹妹穿的比我還像新娘咏窿。我一直安慰自己,他們只是感情好素征,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布集嵌。 她就那樣靜靜地躺著,像睡著了一般御毅。 火紅的嫁衣襯著肌膚如雪根欧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天亚享,我揣著相機與錄音咽块,去河邊找鬼。 笑死欺税,一個胖子當(dāng)著我的面吹牛侈沪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晚凿,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼亭罪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了歼秽?” 一聲冷哼從身側(cè)響起应役,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燥筷,沒想到半個月后箩祥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡肆氓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年袍祖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谢揪。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蕉陋,死狀恐怖捐凭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凳鬓,我是刑警寧澤茁肠,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站缩举,受9級特大地震影響垦梆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚁孔,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一奶赔、第九天 我趴在偏房一處隱蔽的房頂上張望惋嚎。 院中可真熱鬧杠氢,春花似錦、人聲如沸另伍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摆尝。三九已至温艇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堕汞,已是汗流浹背勺爱。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讯检,地道東北人琐鲁。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像人灼,于是被迫代替她去往敵國和親围段。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

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

  • 最近在做壓力測試投放,記錄一下奈泪,讓剛?cè)腴T的少走彎路,也方便自己以后看 Jmeter介紹 Apache JMeter是A...
    e622a61aee8e閱讀 488評論 0 0
  • 在使用Jmeter進行接口的性能測試時灸芳,由于Jmeter 是JAVA應(yīng)用涝桅,對于CPU和內(nèi)存的消耗比較大,所以烙样,當(dāng)需...
    燕京博士閱讀 4,172評論 0 16
  • 小雨淅淅冯遂,并不影響上京上學(xué)的鄰家弟弟來家小聚,從小跟著我后面误阻,如今都快畢業(yè)了债蜜,長成大小伙晴埂,但并不影響我們的情感,依...
    小窗幽記_hj閱讀 94評論 0 0
  • “2016年起飛的黑天鵝寻定,時間戰(zhàn)場儒洛、服務(wù)升級、智能革命狼速、認(rèn)知稅和危機共同體琅锻,在黑天鵝起舞的所有裂痕中,那是光照進來...
    格物房閱讀 253評論 0 0
  • 清晨向胡,秦嶺下雪了恼蓬。這是身為南方人的我第一次見雪,心里忍不住就雀躍起來僵芹。情不自禁掏出兜里的手機处硬,習(xí)慣性的翻出好友列表...
    九瓶閱讀 1,180評論 5 8