爲什麼要命令行執行腳本,主要有以下三點:
1) 圖形化界面消耗更多資源,CPU和內存
2) 圖形化界面不支持大型的負載測試和性能測試
3) 命令行測試支持持續集成,例如放到Jenkins這樣的CI工具上。
先創建一個JMeter- Http請求腳本,在JMeter運行成功後,打開命令行。
具體步驟如下。
1. 通過雙擊jmeter.bat打開JMeter圖形界面
2.在默認的Test Plan上創建一個Thread Group
3.在Thread Group上面添加一個Sampler,選擇HTTP Request
4.在Thread Group上面添加一個View Results Tree
5.點擊Run,在彈出對話框詢問是否保存,點擊Yes,保存腳本到桌面,JMeter_CommlineLineTest.jmx
6.檢查View Results Tree裏面的response code 是不是200,
7.通過檢查測試通過,說明測試腳本沒問題,我們這裏選擇刪除View Results Tree
8.關閉當前JMeter對話框
9. 打開cmd,通過cd命令先切換到JMeter安裝路徑或者直接將JMeter\bin放到Path中
例如: >cd /d E:\軟件分類\apache-jmeter-5.1.1\bin
10. 輸入一下命令開始執行測試
運行命令格式:
jmeter -n -t [jmx腳本路徑] -l [測試輸出文件路徑]
參數解釋:
-n: 表示 non gui mode,就是非圖形化模式
-t: 表示jmeter腳本的路徑
-l:表示輸出結果路徑,如果沒有該文件就自動創建,可以生成csv或者jtl文件。
結果會在桌面生成一個demo.cvs文件,內容如下:
Jmeter的運行方式:
Windows GUI形式運行JMeter
(1)Windows下以GUI的形式運行JMeter很簡單,直接雙擊jmeter.bat文件即可,這是我們前面一直在做的事情。
但是在雙擊jmeter.bat啓動JMeter時,會彈出如下命令行提示符,如下圖所示:
不要使用GUI模式進行負載測試,只用於測試創建和測試調試。對於負載測試,請使用非GUI模式:
命令如下:
jmeter -n -t [jmx file] -l[results file] -e -o[Path to web report folder]
分佈式運行JMeter
在使用Jmeter進行性能測試時,如果要求併發比較大,單臺電腦的配置(CPU、內存)可能無法支持,這就可以使用JMeter分佈式測試。
(1)分佈式測試原理
選擇一臺機器作爲調度機(master),其它機器作爲執行機(slave)
執行時,master會把腳本發送到每臺slave上,slave拿到腳本後就開始執行,slave執行時不需要啓動GUI
執行完成後,slave會把結果回傳給master,master會收集所有slave的信息並彙總
(2)執行機(slave)的配置,我們稱之爲server
首先需要安裝JMeter;
配置環境變量
修改jmeter.properties文件的幾個選項(待補充)
(3)控制機(master)的配置,我們稱之爲client
從JMeter 4.0開始,需要生成rmi_keystore.jks文件,最簡單的方法是,windows下雙擊bin目錄下的create-rmi-keystore.bat文件,即可。然後將該文件上傳到server端的bin目錄下。
修改jmeter.properties文件的幾個選項(待補充)
(4)在server端,啓動jmeter-server.bat(或者jmeter-server)
(5)在client端,啓動jmeter
(6)通過client,連接啓動server機