插件轉換模式不只能夠將 JMeter報告-jtl 文件轉換成png,還能轉換成csv。html
其中會用到1個批處理文件和4個jar文件,並且所有包含在 Command-Line Graph Plooting Tool中:java
1. PluginsManagerCMD.bat (for windows) 或者 PluginsManagerCMD.sh (for linux), 選擇其中一個放到 jmeter\bin 路徑下。 (也可能你下載的文件名稱叫作 JMeterPluginsCMD.bat 和 JMeterPluginsCMD.sh )linux
2. cmdrunner.jar (我下載的是cmdrunner-2.0.jar),須要放到 jmeter\lib 路徑下。sql
3. jmeter-plugins-cmn-jmeter-0.4.jar。而後放到 jmeter\lib 路徑下。apache
4. jmeter-plugins-cmd-2.1.jar . 而後放到 jmeter\lib\ext 路徑下。windows
5. jmeter-plugins-manager-0.20.jar 。而後放到 jmeter\lib\ext 路徑下。瀏覽器
僅適合Apache jmeter 3.0以上版本哦。服務器
https://jmeter-plugins.org/ 併發
下載某個版本的jar包就能夠了. 這個Zip包裏面包含6個文件:1個bat文件,1個sh文件,4個jar文件。分佈式
若是想看這個jar包的使用方法,就點擊藍色的連接「Command-Line Graph Plotting Tool」, 跳轉界面有詳細的jar包使用說明哦(https://jmeter-plugins.org/wiki/JMeterPluginsCMD/)。裏面這個支持轉換成png的圖片類型很重要哦:
Make note that you need to install corresponding plugins set to have Extras plugins available in CMD.
Most of class names are self-explanatory:
Plugin type在轉換格式的時候是這麼被調用的:
Generating PNG:
JMeterPluginsCMD.bat --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
Generating CSV:
JMeterPluginsCMD.bat --generate-csv test.csv --input-jtl results.jtl --plugin-type ResponseTimesOverTime
命令中傳遞的plugin-type必定是上述列表中的某一個,其餘就可能轉換不了了哦。
PluginsManagerCMD.bat 和 PluginsManagerCMD.sh 放到 bin 目錄下面:
cmdrunner.jar 和 jmeter-plugins-cmn-jmeter-0.4.jar 放到 lib目錄下面:
jmeter-plugins-cmd-2.1.jar 和 jmeter-plugins-manager-0.20.jar 放到 lib\ext目錄下面:
java -jar D:\apache-jmeter-3.3\lib\cmdrunner-2.0.jar --tool Reporter --input-jtl %WORKSPACE%\result-output\%TestAPI%.jtl --plugin-type ResponseTimesOverTime --generate-png ResponseTimesOverTime.png
Generating PNG:
JMeterPluginsCMD.bat --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
Generating CSV:
JMeterPluginsCMD.bat --generate-csv test.csv --input-jtl results.jtl --plugin-type ResponseTimesOverTime
-jar 後面跟的是這個cmdrunner.jar在的實際目錄,根據狀況看是否加上路徑
--tool 咱們就選擇Reporter就行了
--input-jtl 後面跟的是咱們須要轉換的jtl文件實際目錄
--plugin-type 跟的是咱們將要轉換的視圖,這裏我用Response Times Over Time組件作例子:
也就是說這裏可以將組件轉換成圖片的話,這個組件的名字必定是cmdrunner支持的組件類型哦:
具體支持什麼組件類型,能夠查看官方文檔: Plugins Manager from Command-Line:
http://www.jmeter-plugins.org/wiki/PluginsManagerAutomated/
https://jmeter-plugins.org/wiki/JMeterPluginsCMD/
https://jmeter-plugins.org/wiki/GraphsGeneratorListener/
這裏面講的是如何調用 JMeterPluginsCMD.bat, 可是我實際用的時候碰到了不少問題。
這是我本地的bat文件 ,名字是「PluginsManagerCMD」。(bat文件放到bin目錄,cmdrunner.jar放到 lib 目錄):
@echo off
java %JVM_ARGS% -jar %~dp0\..\lib\cmdrunner-2.0.jar --tool org.jmeterplugins.repository.PluginManagerCMD %*
@echo off
java %JVM_ARGS% -jar cd ..\lib %~dp0 cmdrunner-2.0.jar --tool org.jmeterplugins.repository.PluginManagerCMD %*
轉換成相對路徑之後能夠找到cmdrunner.jar包了,可是報錯:
由於我是在Jenkins Job中添加的Window Command:
生成的png前面沒有加上絕對路徑,也就是說這裏默認是在workspace路徑下生成圖片。
若是你是在JMeter的cmdrunner.jar所在路徑執行命令,就不要加上jar包的絕對路徑了,這個時候就會在這個jar包的同目錄下生成圖片。
在Editable Email Content中這麼引用:
命令行模式將不須要上述那麼麻煩,須要4個jar包和一個批處理文件,這裏直接在jmeter運行某個jmx文件的時候,直接將jtl轉成測試圖表 - 注意此方法只使用jmeter3.0之後版本。
./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
參數說明:
-n : 非GUI 模式執行JMeter
-t : 執行測試文件所在的位置及文件名
-r : 遠程將全部agent啓動用在分佈式測試場景下,不是分佈式測試只是單點就不須要-r
-l : 指定生成測試結果的保存文件, jtl 文件格式
-e : 測試結束後,生成測試報告
-o : 指定測試報告的存放位置
-o 指定的文件及文件夾,必須不存在 ,不然執行會失敗,對應上面的命令就是resultReport文件夾必須不存在不然報錯
如上命令執行,能夠看到控制檯開始打印數據了
運行完成後,能夠在指定的目錄下看到生成結果文件夾/home/tester/apache-jmeter-3.0/resultReport
咱們能夠將該文件夾下載到本地windows機器,而後用瀏覽器打開index.html文件就能看到報告內容了
首頁Dashboard:
解釋:
file:文件名
start time:開始時間
end time:結束時間
filter for display:過濾器
APDEX(Application performance Index):應用程序性能指標,計算每筆交易APDEX的容忍和知足閾值基於可配置的值,範圍在 0-1 之間,1表示達到全部用戶均滿意
T(Toleration threshold):容忍或滿意閾值
F(Frustration threshold):失敗閾值
requests summary中KO指失敗率,OK指成功率
首頁Dashboard:頁面滾動條往下拉:
解釋:
statistics:數據分析, 基本將 Summary Report 和 Aggrerate Report 的結果合併,含義分別爲:
請求名稱、請求數目、失敗請求數目、錯誤率(本次測試中出現錯誤的請求的數量/請求的總數)、90%用戶響應時間、95%用戶響應時間、99%用戶響應時間、吞吐量(吞吐量——默認狀況下表示每秒完成的請求數Request per Second,當使用了 Transaction Controller 時,也能夠表示相似 LoadRunner 的 Transaction per Second 數)、Kb/sec(每秒從服務器端接收到的數據量,至關於LoadRunner中的Throughput/Sec)、最小響應時間、最大響應時間
errors:錯誤狀況,依據不一樣的錯誤類型,將全部錯誤結果展現
Chart-Over Time-Response Times Over Time:隨着時間推移響應時間變化趨勢圖
能夠看到歷時3分鐘,響應時間由0.334ms慢慢下滑到0.225ms
Chart-Over Time-Bytes Throughput Over Time:隨着時間推移每秒接收和請求字節數變化趨勢圖,藍色爲每秒發送字節數,黃色爲每秒接收字節數:
Chart-Over Time-Latencies Over Time:隨着時間推移平均響應延時趨勢圖,記錄客戶端發送請求完成後,服務器端返回請求以前這段時間
因爲我測試用的併發請求百度,請求都被拒絕了,並無收到從服務端返回的請求,因此這裏看到一條0的線
以上就是over time欄的全部圖表,除了over time還有throuput和response times欄
throuput欄:
Throughput欄包括:
hits per second:每秒點擊率
codes per second:每秒狀態碼數量
Transactions per second:每秒事務量
Response Time Vs Request: 響應時間點請求的 成功/失敗 數
Latency Vs Request: 延遲時間點請求的 成功/失敗 數
Response Times欄:
response times欄包括:
Response Time Percentiles: 響應時間百分比
Active Threads Over Time: 隨着時間推移活躍線程數
Time Vs Threads: 測試過程當中的線程數時續圖
Response Time Distribution: 響應時間分佈
./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
-g : 指定已存在的測試結果文件
-e :測試結果後,生成測試報告
-o : 指定測試報告的存放位置
-o 指定的文件及文件夾,必須 不存在 ,不然執行會失敗
使用命令行轉換的第一種和第二種方式其實最終都依賴生成的jtl文件,將jtl文件生成測試報告。雙擊測試報告中的index.html文件便可查看報告內容
謝謝閱讀哦~~