一. JMeter介紹
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,來自不同壓力類別下測試它們的強(qiáng)度和分析整體性能存捺。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試曙蒸,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證你的程序返回了你期望的結(jié)果捌治。為了最大限度的靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言纽窟。
二. JMeter安裝
1. 安裝JDK
參考官網(wǎng)
2. 安裝JMeter
直接訪問官網(wǎng)下載編譯好的版本肖油。
解壓(建議至/Applications 目錄)后目錄結(jié)構(gòu)如下圖:
添加環(huán)境變量
打開 ~/.bash_profile文件
添加以下指令:
export JMETER_HOME=/Applications/apache-jmeter-5.3/bin
export PATH=$JMETER_HOME:$PATH:.
執(zhí)行source ~/.bash_profile使環(huán)境變量生效
執(zhí)行jmeter -v出現(xiàn)下圖內(nèi)容則安裝成功
三. 啟動(dòng)JMeter
執(zhí)行jmeter,將啟動(dòng)JMeter臂港,在終端會(huì)有如下輸出:
在輸出中提示不能使用圖形界面進(jìn)行負(fù)載測試森枪,只能創(chuàng)建和調(diào)試測試計(jì)劃,負(fù)載測試需要執(zhí)行如下命令:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
另外提示需要增加JVM的Heap配置去滿足自己的測試需求审孽。
在終端啟動(dòng)JMeter后會(huì)自動(dòng)打開圖形界面县袱,如下圖:
可操作菜單Options => Choose Language => Chinese 進(jìn)行中文語言的切換:
四. 創(chuàng)建測試計(jì)劃
點(diǎn)擊文件=》新建,創(chuàng)建測試計(jì)劃佑力。
右鍵“測試計(jì)劃”式散,選擇“添加=》線程=》線程組”
3.設(shè)置線程數(shù)為“60”
右鍵“線程組”,選擇“添加=》取樣器=》http請求”
設(shè)置http請求的路徑為http://localhost:8080
右鍵“線程組”打颤,選擇“添加=》斷言=》響應(yīng)斷言”
設(shè)置響應(yīng)代碼為200
右鍵“線程組”暴拄,選擇“添加=》監(jiān)聽器=》觀察結(jié)果樹”
點(diǎn)擊頂部的執(zhí)行按鈕(綠色三角符)漓滔,驗(yàn)證執(zhí)行結(jié)果,在觀察結(jié)果樹可看到執(zhí)行的記錄
10.點(diǎn)擊保存乖篷,測試計(jì)劃創(chuàng)建完成
五响驴、關(guān)聯(lián)
在某些業(yè)務(wù)場景中b接口需要的內(nèi)容是a接口返回的,對a接口設(shè)置正則表達(dá)式那伐,提取想要的值踏施,在b接口中引用。
使用關(guān)聯(lián)首先在取樣器下添加-后置處理器-正則表達(dá)式提取器
引用名稱:即變量名稱,調(diào)用方法與變量一致,即${引用名稱}
正則表達(dá)式:根據(jù)上下文獲取需要的數(shù)據(jù)护姆,()內(nèi)的數(shù)據(jù)即變量的數(shù)據(jù)汇荐,()左邊兩邊是你取值的邊界
模版:表示將解析到的第幾個(gè)值賦予給引用名稱,需要用$$引用起來
匹配數(shù)字:如果你的模版匹配到了多個(gè)值棍厌,0代表隨機(jī)肾胯,1代表全部,如果你想使用匹配到的第一個(gè)值耘纱,即${引用變量_g1},第二個(gè)值即${引用變量_g2}
缺省值:如果沒有匹配到的默認(rèn)值敬肚。
六、參數(shù)化
1.添加配置元件-csv數(shù)據(jù)文件設(shè)置
2.參數(shù)化文件使用CSV文件束析,即逗號分隔值艳馒,
文件名:填寫參數(shù)化配置文件絕對的地址
變量名稱,即每一列數(shù)據(jù)的變量名
遇到文件結(jié)束符再次循環(huán)员寇,http請求結(jié)束后繼續(xù)執(zhí)行下一組數(shù)據(jù)
七. 運(yùn)行測試計(jì)劃
執(zhí)行命令?jmeter -n -t /Users/lufei/jmeter腳本目錄/PC區(qū)域管理模塊.jmx -l result.txt -e -o report
Test_plan.jmx:測試計(jì)劃文件
result.txt:測試記錄
report:測試報(bào)告保存目錄
輸出如下則執(zhí)行成功
八. 看懂測試報(bào)告
進(jìn)入至report目錄弄慰,用瀏覽器打開index.html
中間Statistics部分是聚合報(bào)告,測試報(bào)告的主要指標(biāo)集中在這一部分蝶锋,下面是指標(biāo)的詳細(xì)說明:
Label:每個(gè) JMeter 的 element(例如 HTTP Request)都有一個(gè) Name 屬性陆爽,這里顯示的就是 Name 屬性的值
Samples:表示你這次測試中一共發(fā)出了多少個(gè)請求,如果模擬10個(gè)用戶扳缕,每個(gè)用戶迭代10次慌闭,那么這里顯示100
Average:平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間,當(dāng)使用了 Transaction Controller 時(shí)躯舔,也可以以Transaction 為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù)驴剔,也就是 50% 用戶的響應(yīng)時(shí)間
90% Line:90% 用戶的響應(yīng)時(shí)間
Min:最小響應(yīng)時(shí)間
Max:最大響應(yīng)時(shí)間
Error%:本次測試中出現(xiàn)錯(cuò)誤的請求的數(shù)量/請求的總數(shù)
Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請求數(shù)(Request per Second),當(dāng)使用了 Transaction Controller 時(shí)庸毫,也可以表示類似 LoadRunner 的 Transaction per Second 數(shù)
KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量仔拟,相當(dāng)于LoadRunner中的Throughput/Sec