1. 程式人生 > >JMeter學習—006—JMeter 命令列(非GUI模式)詳解(一)-分散式(遠端)執行指令碼及檢視指定結果、日誌

JMeter學習—006—JMeter 命令列(非GUI模式)詳解(一)-分散式(遠端)執行指令碼及檢視指定結果、日誌

JMeter分散式執行指令碼,以更好的達到預設的效能測試(併發)場景,前文解說了jmeter使用命令列執行各個引數的作用以及命令列使用範例,那麼此文就繼續前文,針對 JMeter 的命令列模式之分散式遠端執行模式進行詳細解說。

一、應用場景

1、無需互動介面或受環境限制(linux text model)
2、遠端或分散式執行
3、持續整合,通過shell指令碼或批處理命令均可執行,生成的測試結果可被報表生成模組直接使用,便於生成報告

二、命令列模式優點

1、節約系統資源:無需啟動介面,節約系統資源
2、便捷快速:僅需啟動命令列,輸入命令便可執行,是為命令達人最愛
3、易於持續整合:可通過shell指令碼命令執行

三、引數詳解(為了方便記憶,我把引數全英文寫出來)


命令引數                 
命令英文釋義 命令中文釋義
-n This specifies JMeter is to run in non-gui mode
指定JMeter在非gui模式下執行
-t [name of JMX file that contains the Test Plan]. 指定jmx指令碼路徑
引數為:jmx指令碼路徑,若指令碼非當前目錄需用全路徑或相對路徑。
-l [name of JTL file to log sample results to] 指定結果檔案路徑
引數為:結果檔案路徑。路徑不存在時會自動建立。
-j [name of JMeter run log file]. 指定執行日誌路徑
引數為:日誌路徑。路徑不存在,不會自動建立,同時將日誌輸出至命令列控制檯。執行第二次,路徑不存在,就會自動建立了,很奇怪。
-r Run the test in the servers specified by the JMeter property "remote_hosts" 設定分散式(遠端)執行
伺服器列表由JMETER_HOME/bin/jmeter.properties中remote_hosts指定的伺服器上執行測試
-R [list of remote servers] Run the test in the specified remote servers 指定遠端(分散式)伺服器列表
引數為:指定伺服器列表,配置形式如同remote_hosts
-g [path to CSV file] generate report dashboard only
指定測試結果檔案路徑。僅用於生成測試報表
引數為:csv結果檔案
-e generate report dashboard after load test
設定測試完成後生成測試報表
-o output folder where to generate the report dashboard after load test. Folder must not exist or be empty
The script also lets you specify the optional firewall/proxy server information:
指定測試報表生成資料夾。資料夾必須為空或不存在
引數為:報表資料夾路徑
-H [proxy server hostname or ip address] 指定代理伺服器域名或代理伺服器IP
引數為:代理伺服器域名或代理伺服器IP
-P [proxy server port] 指定代理伺服器埠號
引數為:代理伺服器埠號

四、分散式執行步驟(從指令碼到命令執行)

步驟1、在主控機中jmeter.properties中remote_hosts配置執行機的IP

步驟2、jmx指令碼配置檔案需要給執行機(路徑需和控制機保持一致),無配置檔案就不需要給執行機任何檔案了。

步驟3、開啟執行機的jmeter-server.bat服務監聽。(若主控機也當執行機的話,也需要開啟)

步驟4、cmd進入jmeter.bat目錄下執行分散式(遠端)命令,進行分散式測試即可

五、例項演示

1、執行測試指令碼

jmeter -n -t  C:\Users\Administrator\Desktop\invest.jmx 【我的jmx檔案路徑在桌面上】

命令列視窗輸出如下所示:


預設的日誌路徑在Jmeter_HOME\bin\jmeter.log

2、指定結果檔案及日誌路徑

jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx  -l report\01-result.csv -j report\01-log.log

命令列視窗輸出如下所示:


若日誌路徑不存在,則JMeter不會自動建立,同時將日誌輸出至命令列視窗。再執行一次,就出來了,很奇怪。不放你們可以試一試。

結果檔案型別為 jtl 或 csv,可通過JMeter的聚合報告瀏覽結果檔案,檢視最終的結果,如下所示:


3、分散式(遠端)執行預設伺服器列表

jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx -r -l report\01-result.csv -j report\01-log.log

命令列輸出結果和以上一樣,就不截圖了。你們可以嘗試下

若出現如下圖所示情況,請檢查:網路是否暢通、伺服器域名(IP)及埠是否正確、執行機是否啟動jmeter-server.bat 或 jmeter-server


4、分散式(遠端)執行指定伺服器列表

jmeter -n -t C:\Users\Administrator\Desktop\invest.jmx -R 127.0.0.1,10.133.255.175:1099 -l report\01-result.csv -j report\01-log.log

最後,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^