JMeter可以運行模式有兩種,一種是GUI圖形,另一種是命令模式運行也就是非GUI模式。兩種模式的區別還是挺大的。
GUI:由於是圖形界面,所以在運行時會消耗很多資源,而且圖形界面運行時結果是保存在Jmeter運行的內存中,如果是做長時的性能測試,內存就會占用的很高,首先就是影響性能結果的准確性,其次當內存增長到一定程度,就會報錯,甚至可能出現卡死/宕機。
非GUI優勢:命令模式運行可以將實時的log文件保存到本地,位置可以自定義,不會占用太多機器的資源,可以長時間運行。
1.節約系統資源:無需啟動界面,節約系統資源
2.便捷快速:僅需啟動命令行,輸入命令便可執行,是為命令達人最愛
3.易於持續集成:可通過shell腳本命令執行
非GUI運行命令部分:
-
-h 幫助 -> 打印出有用的信息並退出
-
-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
-
-t 測試文件 -> 要運行的 JMeter 測試腳本文件
-
-l 結果文件路徑 -> 記錄結果的文件,路徑不存在時會自動創建格式為jtl或csv
-
-r 遠程執行 -> 在Jmter.properties文件中指定的所有遠程服務器
-
-R 遠程執行 -> 執行指定的服務器
-
-j 指定執行日志路徑 -> 路徑不存在時不會自動創建
-
-e 設置測試完成后生成測試報表
-
-g CSV結果文件 --> 指定測試執行結果文件路徑,僅用於生成測試報表
-
-o 報表文件夾路徑 --> 執行測試報表生成文件夾,文件夾必須為空或者不存在
-
-H 代理主機IP -> 設置 JMeter 使用的代理主機
-
-P 代理端口號 -> 設置 JMeter 使用的代理主機的端口號
非GUI運行示例:
jmeter -h
含義為:獲取jmeter的命令幫助
jmeter -n -t test.jmx
含義為:以命令模式運行test.jmx文件
jmeter -n -t test.jmx -l report\01-result.csv -j report\01-log.log
含義為:以命令模式運行test測試文件並保存結果及日志文件,需要注意的是如果日志路徑不存在將不會自動創建,且日志會輸出在命令行窗口,生成的結果文件可以在JMeter的圖形界面下的聚合報告中導入結果文件進行查看。
jmeter -n -t test.jmx -r -l report\01-result.csv -j report\01-log.log
含義為:以命令模式遠程調用remote_hosts中配置的所有服務器運行test測試文件並保存結果及日志文件,需要注意的是執行端的日志文件默認生成在用戶目錄下
jmeter -n -t test.jmx -R 192.168.21.40:1029 -l report\01-result.csv -j report\01-log.log
含義為:以命令模式遠程調用192.168.21.40服務器運行test測試文件並保存結果及日志文件
為方便管理起見,在Jmeter安裝目錄下的bin目錄下創建一個文件夾testscript用來存放腳本(.jmx文件),再創建一個文件夾testresult用來存放腳本執行后的結果文件。
結果文件是可以在Jmeter可視化界面打開的,它保存了腳本執行過程中的各種結果非常全面,結果樹、聚合報告、表格查看結果等都可以將它打開看到響應的數據。
執行方法:
Windows
1、cmd打開命令行模式
2、切換到Jmeter安裝目錄下的bin目錄下
3、執行命令:jmeter -n -t testscript\Baidu.jmx -l testresult\01-reslut.jtl(執行結果文件也可以保存為.cvs后綴)
在腳本運行過程中,由於無界面,命令窗口會每隔一段時間打印一下當前的運行狀態,你會在窗口中看到類似下面的信息:
summary+ 是開始這個時點的報告。
summary= 是總結它之前的報告,呈現出的是當前時點之前總的情況,通常是均值。
最后一個summary=是本次壓測總的情況,如果腳本按時正常結束的話,最后一次summary里面的值應該和你從GUI打開聚合報告或概括報告的值一致。
Linux
1、使用linux命令進入Jmeter安裝目錄下的bin目錄
2、執行命令:jmeter -n -t testscript\Baidu.jmx -l testresult\01-reslut.jtl(執行結果文件也可以保存為.cvs后綴)
3、把結果文件下載到windows機器上,使用Jmeter打開結果文件
無界面分布式壓測
當並發量過大單機無法承擔需要做分布式壓測,分布式的配置同以前文章介紹的一樣,再次不做贅述。
執行方法:
1、把腳本和參數文件存放到各台終端相同目錄下
2、將每台終端的jmerter-server.bat打開等待主機發號施令
3、在主機命令窗口鍵入類似以下命令:
jmeter.bat -n -t testscript/Baidu.jmx -R 192.168.182.129:1100,192.168.182.130:1200 -l testresult/01-result.jtl
命令中-R代表遠程 remote ,后面跟隨的是每台終端機jmeter-server窗口顯示的 ip 和端口,同樣,多台終端之間由逗號隔開,其他都與單機命令一樣。於是可以看到各台終端機的jmeter-server窗口有關運行和階段性summary的信息直至運行結束。總體的報告都在你主機保存的那個.jtl文件里。
執行結果: