背景說明:
JMeter執(zhí)行方式有兩種靖秩,一種是GUI模式须眷,一種是非GUI模式。
GUI模式就是界面模式沟突,非GUI模式就是命令行模式花颗。GUI模式主要用來編寫和調(diào)試腳本用的,接口的性能測(cè)試最好是采用命令行模式惠拭,因?yàn)樵撃J娇梢院推渌蚣苓M(jìn)行對(duì)接扩劝,進(jìn)行自動(dòng)化測(cè)試平臺(tái)的集成。
非GUI模式適用場(chǎng)景:
1、更省資源棒呛,更容易實(shí)現(xiàn)多工具集整合聂示;
2、當(dāng)訪問的接口服務(wù)需要通過代理服務(wù)器才能完成的簇秒;
3鱼喉、當(dāng)一臺(tái)機(jī)器產(chǎn)生的壓力不夠時(shí),采用分布式多機(jī)遠(yuǎn)程執(zhí)行模式宰睡,使得一臺(tái)主控機(jī)可以控制多臺(tái)壓力機(jī)蒲凶,同時(shí)生成更多的壓力請(qǐng)求气筋,達(dá)到客戶端能模擬大并發(fā)請(qǐng)求的目的拆内;
4、可以通過外部傳參宠默,讓命令行將數(shù)據(jù)傳入到腳本中麸恍,使得外部系統(tǒng)調(diào)用jmeter時(shí)候能更好的進(jìn)行集成和傳參,比如通過jenkins啟動(dòng)和執(zhí)行接口自動(dòng)化時(shí)搀矫,將參數(shù)從jenkins的界面?zhèn)魅氲絡(luò)meter中抹沪,就是通過命令行參數(shù)進(jìn)行橋接的。
優(yōu)點(diǎn):
1瓤球、節(jié)約系統(tǒng)資源融欧,無需啟動(dòng)界面
2、便捷快速:僅需啟動(dòng)命令行卦羡,輸入命令便可執(zhí)行
3噪馏、易于持續(xù)集成:可通過shell腳本命令執(zhí)行
參數(shù)詳解:
-h 幫助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下運(yùn)行 JMeter
-t 測(cè)試文件 -> 要運(yùn)行的 JMeter 測(cè)試腳本文件
-J 是設(shè)置本地jmeter屬性,引用變量參數(shù)
-G 是設(shè)置server的jmeter屬性
-l 日志文件 -> 記錄結(jié)果的文件
-r 遠(yuǎn)程執(zhí)行 -> 在Jmter.properties文件中指定的所有遠(yuǎn)程服務(wù)器
-H 代理主機(jī) -> 設(shè)置 JMeter 使用的代理主機(jī)
-P 代理端口 -> 設(shè)置 JMeter 使用的代理主機(jī)的端口號(hào)
使用方法詳解:
前提:為了方便管理,在jmeter的安裝目錄bin下創(chuàng)建一個(gè)文件夾testscript用來存放腳本(.jmx文件)绿饵,再創(chuàng)建一個(gè)文件夾testresult用來存放腳本執(zhí)行后的結(jié)果文件欠肾。
一、使用JMeter非GUI模式
1拟赊、將要測(cè)試的jmeter腳本放到testscript目錄下
2刺桃、cmd打開命令行模式
3、進(jìn)入到Jmeter安裝目錄下的bin目錄下
4吸祟、執(zhí)行命令:jmeter -n -t examples\testscript\apd_v3.7_perf.jmx -l examples\testresult\apd3.7-reslut.jtl -j report\01-log.log
可以看到以下信息
summary+ 是開始這個(gè)時(shí)點(diǎn)的報(bào)告瑟慈。
summary= 是總結(jié)它之前的報(bào)告,呈現(xiàn)出的是當(dāng)前時(shí)點(diǎn)之前總的情況屋匕,通常是均值葛碧。
最后一個(gè)summary=是本次壓測(cè)總的情況,如果腳本按時(shí)正常結(jié)束的話炒瘟,最后一次summary里面的值應(yīng)該和你從GUI打開聚合報(bào)告或概括報(bào)告的值一致吹埠。
二、無界面分布式壓測(cè)
當(dāng)并發(fā)量過大單機(jī)無法承擔(dān)需要做分布式壓測(cè)
執(zhí)行方法:
1、把腳本和參數(shù)文件存放到各臺(tái)終端相同目錄下
2缘琅、將每臺(tái)終端的jmerter-server.bat打開等待主機(jī)發(fā)號(hào)施令
3粘都、在主機(jī)命令窗口鍵入類似以下命令:
jmeter.bat -n -t testscript/Baidu.jmx -R 192.168.182.129:1100,192.168.182.130:1200 -l testresult/01-result.jtl -j report\01-log.log
命令中-R代表遠(yuǎn)程 remote ,后面跟隨的是每臺(tái)終端機(jī)jmeter-server窗口顯示的 ip 和端口刷袍,同樣翩隧,多臺(tái)終端之間由逗號(hào)隔開,其他都與單機(jī)命令一樣呻纹。于是可以看到各臺(tái)終端機(jī)的jmeter-server窗口有關(guān)運(yùn)行和階段性summary的信息直至運(yùn)行結(jié)束堆生。總體的報(bào)告都在你主機(jī)保存的那個(gè).jtl文件里雷酪。