一、jmeter中使用命令生成測試報告
JMeter雖不像Loadrunner那樣,提供了強大的圖表分析功能,但是jmeter(必須是jmeter3.0以上版本)中同樣提供了自動生成html測試報告的方法,使用如下命令:
命令:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
-n ---- 非GUI模式執行JMeter
-t ---- 測試計划保存的路徑及文件名
[jmx file] ---- 測試計划保存的路徑及.jmx文件名,路徑可以是相對路徑也可以是絕對路徑,它依賴於DOS中當前目錄,如果DOS中當前目錄在C盤AA目錄下,測試計划.jmx文件保存在E盤BB目錄下,那么應該寫絕對路徑:E:\BB\xx.jmx;如果DOS中當前目錄在E盤AA目錄下
-l ---- 保存生成測試結果的文件
[results file] ---- 保存生成測試結果的文件,jtl文件格式
-e ---- 測試結束后,生成測試報告
-o ---- 存放生成測試報告的路徑
[Path to web report folder] ---- 存放生成測試報告的路徑,它可以是相對路徑也可以是絕對路徑,也是依賴於DOS中當前目錄,如果需要保存到DOS中當前目錄中,那么就直接寫相對路徑;如果不保存在DOS中當前目錄中,那么就必須絕對路徑。如:DOS中當前目錄在C盤AA目錄下,而測試報告要放在 E盤report目錄下,那么應該寫絕對路徑:E:\report,那么測試報告就會保存在E:\report目錄下,注意:report是一個自定義的目錄,原先在F盤中是沒有report這個目錄的,使用命令時相當於同時自動在F盤下自動新建了一個report目錄
舉例說明:
DOS當前目錄是:E:\ 注意:DOS當前的目錄必須是jmeter.log所在的目錄或jmeter.log所在盤的根目錄下,否則會提示無法打開jmeter.log文件。如果啟動jmeter是用DOS命令啟動的,那么jmeter運行時的日志文件是保存在DOS命令啟動時的當前目錄下,所以在生成測試報告時,必須用啟動時的當前目錄;如果用jmeter.bat啟動時,那么生成測試報告的當前目錄可以是jmeter.log所在盤的根目錄下或jmeter.log所在的目錄下;
[jmx file]目錄在:F:\member.jmx
定義[results file]為:E:\results.jtl
定義[Path to web report folder]為: E:\report
使用命令:jmeter -n -t E:\member.jmx -l results.jtl -e -o E:\report
注意:report、results.jtl 原先都是不存在的,如果在使用命令時,report、results.jtl已存在,那么必須用先刪除,否則在運行命令時就會報錯。
可以在DOS中使用命令來刪除
刪除整個目錄:rd /s /q [盤符:][路徑名][子目錄名]
/s ---- 表示刪除該目錄下所有遍歷的子目錄和文件
/q ---- 表示刪除目錄時不提示確認,直接刪除
刪除文件:del /q [盤符:][文件名]
可以寫一個bat批處理命令,就不需要每次都輸入命令了。
在DOS窗口,看到end of run 就表示已經生成測試報告了,到E盤中查看report目錄,可以看到下圖中4個文件
二、測試報告分析
打開index.html,就可以看到頁面左側有下圖中三個目錄
1、Dashboard
(1)Test and Report informations(測試和報告信息)
Source file ---- 生成報告的源文件
Start Time ---- 開始時間
End Time ---- 結束時間
(2)APDEX (應用性能指標),計算每筆交易APDEX的容忍和滿足閾值基於可配置的值,范圍在 0-1 之間,1表示達到所有用戶均滿意
T(Toleration threshold):容忍或滿意閾值
F(Frustration threshold):失敗閾值
(3)Requests Summary(請求總結),成功與失敗的請求占比,KO指失敗率,OK指成功率
(4)statistics(數據分析),類似於jmeter聚合報告
Lable --- 請求名稱
Samples ---- 請求數目
KO ----- 失敗請求數目
Error% ---- 錯誤率(測試中出現錯誤的請求的數量/請求的總數)
Average ---- 響應時間平均值
Min ---- 最小響應時間
Max ---- 最大響應時間
90th pct ----- 90%用戶響應時間
95th pct ---- 95%用戶響應時間
99th pct ----- 99%用戶響應時間
Throughput ---- 吞吐量
Received ---- 每秒從服務器端接收到的數據量
Sent ---- 每秒從服務器發出的數據量
(5)Errors(錯誤情況)
(6)Top 5 Errors by sampler(采樣器的5大錯誤)
2、第二個目錄Chart(圖表),它包括Over Time(時間變化) 、Throughput(吞吐量) 、Response Times(響應時間)
(1)Over Time 中又包括下圖中所示
1)Response Times Over Time(響應時間變化曲線),類似於JMeter Plugins上的jp@gc - Response Times Over Time
2)Response Time Percentiles Over Time (successful responses) (成功響應時間百分比),類似於jmeter聚合報告中的Min、Max、90%、95%、99%
3)Active Threads Over Time(活動線程時間變化曲線圖),隨着時間變化,每個時間節點上的活動線程數
4)Bytes Throughput Over Time(字節吞吐量時間變化曲線圖),藍色為每秒發送字節數,黃色為每秒接收字節數
5)Latencies Over Time(延遲時間曲線圖),記錄的是客戶端發送請求完成后,服務器端返回請求之前的這段時間,在高並發場景或者業務強數據一致性場景,延時是個很嚴重的影響因素
6)Connect Time Over Time(連接時間變化曲線圖),隨着時間變化,每個時間節點花費在連接上的平均時間
(2)Throughput(吞吐量)包括如下圖所示
1)Hits Per Second(每秒點擊率),類似於JMeter Plugins上的jp@gc - Hits per Second
2)Codes Per Second(每秒狀態碼數量)
3)Transactions Per Second(每秒事務數),即TPS,是性能測試中很重要的一個指標,它是用來衡量系統處理能力的一個重要指標,類似於JMeter Plugins上的jp@gc - Transactions per Second
4)Total Transactions Per Second(每秒總事務數)
5)Response Time Vs Request(響應時間點請求的成功或失敗數)
6)Latency Vs Request(延遲時間點請求的成功或失敗數)
(3)Response Times(響應時間)包括如下圖所示
1)Response Time Percentiles(響應時間百分比)
2)Response Time Overview(響應時間概述)
3)Time Vs Threads(平均響應時間和線程數的對應變化曲線)
4)Response Time Distribution(響應時間分布)
三、配置測試報告
JMeter3.0在bin目錄新增了reportgenerator.properties
文件保存了所有關於圖形化HTML報告生成模塊的默認配置,要變
更配置,建議不要直接編輯該文件,而是推薦在user.properties
中去配置和覆蓋。
1、user.properties中配置,
基本配置都是以jmeter.reportgenerator.
為前綴的
(1)定義采樣點粒度(overall_granularity)
user.properties中
overall_granularity(采樣點粒度)默認為60000ms,如下圖
通過我們測試過程中,需要更小的粒度,如2秒,所以在上圖中將60000修改為2000,也可以在文檔末性加上jmeter.reportgenerator.overall_granularity=2000;
注意:基本配置都是以jmeter.reportgenerator.
為前綴的
(2)定義報告的標題(report_title)
(3)定義Apdex評估中滿意的閾值(單位ms)(apdex_satisfied_threshold
)
(4)定義Apdex評估中可容忍的閾值(apdex_tolerated_threshold)
(5)修改響應時間的百分比
jmeter.properties
中,有三個默認的響應時間的百分比:
如果需要修改這三個默認值,可以在user.properties文檔末尾加上這三個字段名稱,並重新賦值
2、修改圖表或html報告的頁面標題
JMeter的HTML報告生成時是使用了固定的模板,模板文件路徑為./bin/report-template,
進入該目錄可以看到報告的每個
頁面都有一個.fmkr模板文件,包括index.html.fmkr
和./content/pages
路徑下的幾個文件,可以利用這幾個文件,修改對應的
名稱。
html報告的頁面標題默認為Apache JMeter Dashboard,如下圖所示
如果想改為這個頁面標題,可以通過user.properties
中的jmeter.reportgenerator.report_title
來修改,通過這種方式來修改,那改變的是所有的頁面標題;
如果通過修改.fmkr文件中的title標簽的雙引號內的值,<title>${reportTitle!"想要設置的title"}</title>
,那么修改的單獨頁面的標題;
圖表的名稱,可以在下面路徑中進行修改
如修改響應時間,打開ResponseTimes.html.fmkr,修改title標簽的雙引號內的值
3、配置html測試報告的默認存放路徑(jmeter.reportgenerator.exporter.property.output_dir
),注意:使用命令時,-o選項
是可以覆蓋該配置的路徑的;