Jmeter系列(40)- 詳解 Jmeter CLI 模式
- 2020 年 7 月 8 日
- 筆記
- Jmeter, 測試高級進階技能系列 - Jmeter
如果你想從頭學習Jmeter,可以看看這個系列的文章哦
//www.cnblogs.com/poloyy/category/1746599.html
什麼是 CLI 模式
- CLI = Common Line,命令行模式,我們常說的 NON GUI 模式,無介面模式
- 真正做負載測試時,應該使用 CLI 模式運行,而不是 GUI
啟動 Jmeter GUI 時的提示
使用 jmeter.bat 運行時會有一個 cmd 窗口
官方也說了
負載測試不要用 GUI 模式,GUI模式僅用於創建測試計劃和調試腳本
增加 Java 堆空間來滿足你的測試環境(後面再講解)
用 CLI 模式的好處
將系統大部分資
CLI 模式可選參數
欄位 | 含義 |
---|---|
-n | 指定 JMeter 將在 cli 模式下運行 |
-t | 包含測試計劃的 jmx 文件名稱 |
-l | 記錄測試結果的 jtl 文件名稱 |
-j | 記錄 Jmeter 運行日誌的文件名稱 |
-g | 輸出報告文件( .csv 文件) |
-e | 生成 html 格式的測試報表 |
-o |
|
伺服器相關參數
欄位 | 含義 |
---|---|
-H | 代理伺服器的 host 或 ip |
-P | 代理伺服器的 port |
-r | 指定所有遠程伺服器中運行測試 |
-R | 在指定的遠程伺服器中運行測試 |
-X | 伺服器運行完腳本後自動停止 jmeter-server |
屬性參數
Java 系統屬性和 JMeter 屬性可以直接通過以下命令進行覆蓋,而不用手動修改 jmeter.properties
格式 | 含義 |
---|---|
-D[prop_name]=[value] | 定義一個 Java 系統屬性值 |
-J[prop_name]=[value] | 定義本地 JMeter 屬性 |
-G[prop_name]=[value] | 定義要發送到所有遠程伺服器的 JMeter 屬性 |
-G[propertyfile] | 定義一個包含 JMeter 屬性的文件,該文件將發送到所有遠程伺服器 |
-L[category]=[priority] |
|
栗子一
jmeter -n -t FlaskDemo.jmx -l result/report.jtl
- 執行 FlaskDemo.jmx 腳本,並在 result 目錄下生成 report.jtl 報告
- report.jtl 存在也沒關係,可以自動覆蓋
栗子二
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -e -o report
- 執行 FlaskDemo.jmx 腳本
- 在 result 目錄下生成 report.jtl 報告
- 最後在 report 目錄下生成測試報表文件夾
- 切記: report.jtl 必須不存在, report 目錄必須不存在或者為空
後面再用一篇文章詳細講解 HTML 報告的細節
栗子三
jmeter -g report.jtl -o report
- 將 .jtl 文件轉換為 .html 文件,並保存到 report 文件夾中
- 類似栗子二,只不過跳過了執行 .jmx 文件的步驟,直接將 .jtl 文件轉換為 .html 文件
和栗子二的結果一樣
在 Jmeter GUI 中有一個類似的功能
點擊 Tools
選好 jtl 文件,properties 配置文件,存放 HTML 報告的文件夾
栗子四
jmeter -n -t FlaskDemo.jmx -r -l result/report.jtl
啟動所有遠程 slave 機執行 FlaskDemo.jmx ,並在 result 目錄下生成 report.jtl
重點
會執行 jmeter.properties 的 remote_hosts 填的所有遠程 slave 機,這裡有兩台:一台是虛擬機,另一台是本機也充當 slave 機
master 機
虛擬 slave 機
本地 slave 機
栗子五
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -R 172.20.72:38:1234,127.0.0.1:1234
啟動指定的遠程 slave 機執行 FlaskDemo.jmx ,並在 result 目錄下生成 report.jtl
和 -r 不一樣, -R 是指定slave機的,並不是所有 slave 機
master 機
slave 機
栗子六
jmeter -n -t FlaskDemo.jmx -l result/report.jtl -R 172.20.72:38:1234 -X
跟栗子五的基本一樣,只不過加了 -X,讓遠程伺服器在執行完腳本後自動退出 jmeter-server
master 機
跑了兩次,第一次沒有 -X,第二次加了 -X
slave 機
當然想一勞永逸的話
可以將屬性 jmeterengine.remote.system.exit 設置為 true(默認值為 false ),則 JMeter 將在測試結束後停止 RMI 之後調用 System.exit(0),但不建議這樣