Jmeter的Html報告漢化及解析
經常有人提出Jmeter生成的html報告都是英文的看不懂,能不能給解釋一下,一般提出這種問題的人要么是懶,要么是對性能測試不是很了解(隔行如隔山嘛,可以理解)。所以我專門整理了Jmeter報告的漢化模板,有興趣的可以下載。當然不可能所有的內容都漢化,所以以下我會對各項指標再做一下說明。
一、html模板漢化
專門准備了Jmeter 4.x 和Jmeter5.x 兩套漢化模板:
https://gitee.com/smooth00/jmeter-cn-report-template
使用方法也簡單,下載我給的模板,將report-template目錄替換apache-jmeter-x.x\bin\report-template目錄即可,新生成的報告就被漢化了。漢化后的效果:
二、測試報告解析
1、Dashboard(概述面板)
(1)Test and Report informations(測試和報告信息)
Source file ---- 生成報告的源文件
Start Time ---- 開始時間
End Time ---- 結束時間
(2)APDEX (應用性能指標),計算每筆交易APDEX的容忍和滿足閾值基於可配置的值,范圍在 0-1 之間,1表示達到所有用戶均滿意。
Apdex:應用程序性能指標(0~1),1表示所有用戶請求均滿意,反之0則表示均不滿意
T(Toleration threshold):可接受(容忍或滿意)閾值,即用戶可接受的響應時間
F(Frustration threshold):不可接受(失敗)閾值,即用戶不可接受響應時間
Lable:采樣器名稱
T和F兩值可以在配置文件中找到,具體參見以下第三條 配置測試報告。
(3)Requests Summary(請求總結),成功與失敗的請求占比,KO指失敗率,OK指成功率
(4)statistics(數據分析),類似於jmeter聚合報告
Label:Sample采樣器名稱
Samples:總共發送請求數(線程數 * 循環次數)
KO:失敗次數
Error%:請求失敗率
Average:平均響應時間
Min:最小響應時間
Max:最大響應時間
90%Line:90%線,90%用戶響應不超過該時間
95%Line:95%線,95%用戶響應不超過該時間
99%Line:99%線,99%用戶響應不超過該時間
Throughput:吞吐量,一般情況下可看做每秒完成請求數(和QPS類似)
Received:每秒從服務器端接收到的數據量
Sent:每秒從客戶端發送的請求的數量
(5)Errors(錯誤情況)
主要就是統計請求出現錯誤
(6)Top 5 Errors by sampler(采樣器的5大錯誤)
主要是統計TOP5發生錯誤的采樣器信息,這里如果全部通過,就不會有統計。
2、Chart(圖表)
包括Over Time(時間變化) 、Throughput(吞吐量) 、Response Times(響應時間)
(1)Over Time
1)Response Times Over Time(響應時間變化曲線),類似於JMeter Plugins上的jp@gc - Response Times Over Time
Response Times Over Time,即響應時間隨時間變化趨勢。由於應用需要初始化建立連接以及CPU、內存等分配都會消耗資源,隨着系統趨於穩定,響應時間也會趨於穩定。
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(每秒狀態碼數量)
即每秒響應狀態碼數量,這里主要是對200響應成功的狀態碼進行記錄統計。
3)Transactions Per Second(每秒事務數),即TPS,是性能測試中很重要的一個指標,它是用來衡量系統處理能力的一個重要指標,類似於JMeter Plugins上的jp@gc - Transactions per Second
如果沒有開啟事務,那么TPS也可看做QPS
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(響應時間概述)
響應時間概述,仔細看下面這種圖不難發現,橫坐標所繪制的區間和我們最開始看到的APDEX應用程序性能指數中划分的區間一致。
3)Time Vs Threads(平均響應時間和線程數的對應變化曲線)
即活躍線程數和響應時間對比關系,這塊如果請求數據較少的話就會造成結果不是十分明顯。
4)Response Time Distribution(響應時間分布)
到此漢化的報告展示和解析完成, 可以看到,通過HTML可視化報告我們能夠更加清晰、詳細地了解到整個壓測過程中應用性能指標的變化以及相應的數據統計分析。我們可以通過報告中給我們呈現的結果,對應用服務進行針對性的優化,讓我們的服務更加穩固並且提供更好的體驗。
三、配置測試報告
從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來修改,通過這種方式來修改,那改變的是所有的頁面標題;