1. 程式人生 > >jmeter生成html效能結果報告

jmeter生成html效能結果報告

一、前言

印象中,jmeter在圖表展示方面是比較弱的,需要依賴各種外掛才能展示需要的圖表,而且介面還很土!

終於,在jmeter3.0版本推出了一個很重要的新功能,就是能夠自動生成html效能圖表,功能相當強大!

我們先來看一眼主介面:

這裡只放兩張圖,其它還有各種效能指標的圖表,就不一一展示了。

二.功能簡介

JMeter3.0提供一個用於生成HTML頁面格式圖形化報告的擴充套件模組。該模組支援通過兩種方式生成多維度圖形化測試報告:

  1. 在JMeter效能測試結束時,自動生成本次測試的HTML圖形化報告
  2. 使用一個已有的結果檔案(如jtl、csv檔案)來生成該次結果的HTML圖形化報告

其預設提供的度量維度包括:

  1. APDEX(Application Performance Index)指數
  2. 聚合報告
- 類似於UI上的*Aggregate Report*
  1. Errors報告
- 展示不同錯誤型別的數量以及百分比
  1. 響應時間變化曲線

- 展示平均響應時間隨時間變化情況
- 類似於JMeter Plugins在UI上的*[email protected] - Response Times Over Time*
  1. 資料吞吐量時間曲線

- 展示每秒資料吞吐量隨時間變化的情況
- 類似於JMeter Plugins在UI上的*[email protected]
- Bytes Throughput Over Time*
  1. Latency time變化曲線

- 展示Latency time隨時間變化的情況
- 類似於JMeter Plugins在UI上的*[email protected] - Response Latencies Over Time*
  1. 每秒點選數曲線

- 類似於JMeter Plugins在UI上的*[email protected] - Hits per Second*
  1. HTTP狀態碼時間分佈曲線

- 展示響應狀態碼隨時間的分佈情況
- 類似於JMeter Plugins在UI上的*[email protected]
- Response Codes per Second*
  1. 事務吞吐量時間曲線(TPS)

- 展示每秒處理的事務數隨時間變化情況
- 類似於JMeter Plugins在UI上的*[email protected] - Transactions per Second*
  1. 平均響應時間與每秒請求數的關係圖
- 展示平均響應時間與每秒請求數(可以理解為QPS)的關係
  1. Latency time與每秒請求數的關係圖
- 展示Latency time與每秒請求數的關係
  1. 響應時間百分點陣圖
- 響應時間的百分位分佈圖
  1. 活動執行緒數變化曲線
- 展示測試過程中活動執行緒數隨時間變化情況
  1. 平均響應時間與執行緒數的關係圖

- 展示平均響應時間與執行緒數的關係
- 類似於JMeter Plugins在UI上的*[email protected] - Response Times vs Threads*
  1. 柱狀響應時間分佈圖
- 展示落在各個平均響應時間區間的請求數情況

注1:Latency time沒有翻譯成中文,這裡對其計算方式做註解:
- Latency time = 接收到響應的第一個位元組的時間點 - 請求開始傳送的時間點

from just before sending the request to just after the first response has been received
-- Apache JMeter Glossary

- 響應時間(JMeter術語中的Elapsed time) = 接收完所有響應內容的時間點 - 請求開始傳送的時間點

from just before sending the request to just after the last response has been received
-- Apache JMeter Glossary

注2:Apdex 標準從使用者的角度出發,將對應用響應時間的表現,轉為使用者對於應用效能的可量化為範圍為 0-1 的滿意度評價。。

Apdex (Application Performance Index) is an open standard developed by an alliance of companies. It defines a standard method for reporting and comparing the performance of software applications in computing.
-- wikipedia

  • Apdex

效能指數,Apdex(Application Performance Index)是一個國際通用標準,Apdex 是使用者對應用效能滿意度的量化值。它提供了一個統一的測量和報告使用者體驗的方法,把終端使用者的體驗和應用效能作為一個完整的指標進行統一度量。下圖表示為通用使用者滿意度區域,0代表沒有滿意使用者,1則代表所有使用者都滿意。實際業務系統開發過程中,1是團隊的追求目標。

若所有請求的Apdex值都接近1,說明使用者滿意度優秀,也從側面說明了伺服器響應速度快。
通常而言,最低要求超過0.5,當然專案組可設定具體需求。
 

三.快速入門

1.確認基本配置

  • 在jmeter.properties或者user.properties確認如下配置項:
jmeter.save.saveservice.bytes = true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
# the timestamp format must include the time and should include the date.
# For example the default, which is milliseconds since the epoch: 
jmeter.save.saveservice.timestamp_format = ms
# Or the following would also be suitable
jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
  • 如果希望在Errors報告中展示更詳細資料,需要確保如下配置
    • jmeter.save.saveservice.assertion_results_failure_message = true
    • 如果使用了事務控制器(Transaction Controller),確認Generate parent sample為未勾選狀態

2.生成報告

a. 在壓力測試結束時同時自動生成報告

  • 基本命令格式:
    jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
  • 樣例:
    jmeter -n -t F:\PerformanceTest\TestCase\script\getToken.jmx -l testLogFile -e -o ./output

引數:
-n :以非GUI形式執行Jmeter
-t :source.jmx 指令碼路徑
-l :執行結果儲存路徑(.jtl或.csv) ---這裡字尾可以是jtl或csv,但檔案內容格式必須要是csv格式
-e :在指令碼執行結束後生成html報告
-o :儲存html報告的路徑, 此資料夾必須為空或者不存在

b. 使用已有的壓力測試結果日誌檔案生成報告

  • 基本命令格式:
    jmeter -g <log file> -o <Path to output folder>
  • 樣例:
    jmeter -g D:\apache-jmeter-3.0\bin\testLogFile -o ./output

引數:

-g :specifies the existing result file   指定已存在的結果檔案

以上兩個樣例都會在\apache-jmeter-3.0\bin\output目錄下產生如下檔案(夾):

用瀏覽器開啟index.html檔案,即可檢視各種圖形化報告。

注:在3.0版本,由於原始碼中字元編碼的問題,可能會遇到生成的報告中,中文標籤展示為亂碼的問題,需要修改原始碼中的讀取報告的編碼格式。在3.1版本中,該問題已修復,所以建議選擇高版本的jmeter。
 

四.自定義配置

JMeter3.0在bin目錄新增了reportgenerator.properties檔案儲存了所有關於圖形化HTML報告生成模組的預設配置,要變更配置,建議不要直接編輯該檔案,而是推薦在user.properties中去配置和覆蓋。

1.總體配置

總體配置都是以jmeter.reportgenerator.為字首,如:jmeter.reportgenerator.overall_granularity=60000

  • overall_granularity:定義取樣點粒度,預設為60000ms,通常在穩定性以外的測試中,我們可能需要定義更細的粒度,比如1000ms,我們可以在user.properties檔案末尾新增如下配置:
# Change this parameter if you want to change the granularity of over time graphs.
jmeter.reportgenerator.overall_granularity=6000
  • report_title:定義報告的標題,我們可能需要將標題定義為實際測試項名稱
  • apdex_satisfied_threshold:定義Apdex評估中滿意的閾值(單位ms)
  • apdex_tolerated_threshold: 定義Apdex評估中可容忍的閾值
    Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples

另外,在jmeter.properties中,有關於集合報告中的三個百分位的預設值:

aggregate_rpt_pct1 : Defaults to 90
aggregate_rpt_pct2 : Defaults to 95
aggregate_rpt_pct3 : Defaults to 99

可以在user.properties中對其進行覆蓋,如:aggregate_rpt_pct1 = 70,效果如下:

2.圖表配置

每個圖表配置都是以jmeter.reportgenerator.graph.<圖表名稱>.為字首。

  • classname 圖表的實現類,如果有自己定製的實現,將該配置的值寫為自定義實現類的類名
  • property.set_granularity 設定圖示的取樣點粒度,不配置時預設使用總體配置中的粒度設定

3.輸出配置

輸出配置都以jmeter.reportgenerator.exporter為字首。

  • property.output_dir 配置預設的報告輸出路徑。在命令列可以用-o選項來設定特定的路徑覆蓋該配置。
  • html.series_filter 用於過濾展示內容。如在user.properties新增如下配置:
    jmeter.reportgenerator.exporter.html.series_filter=(^Login)(-success|-failure)?
    則最後的報告只展示名為Login這個取樣器的資料。該配置包含兩部分,(-success|-failure)?Transactions per second圖表所依賴的配置。前面部分接受一個正則表示式用來過濾。

4.報告定製

JMeter的HTML報告生成時是使用了固定的模板,模板檔案路徑為./bin/report-template
進入該目錄可以看到報告的每個頁面都有一個.fmkr模板檔案,包括index.html.fmkr./content/pages路徑下的幾個檔案。通過檢視這些模板檔案,就可以知道怎樣去進行報告的輕度定製,比如將一些文字修改得更易懂,或者修改為中文等

  • 頁面的title
    • 預設為"Apache JMeter Dashboard"
    • 可以由reportgenerator.properties中的jmeter.reportgenerator.report_title來統一定義,這種方式就是所有頁面的title都使用同一個。
    • 也可以直接修改對應的.fmkr檔案中的title標籤中雙引號內的值,如<title>${reportTitle!"想要設定的title"}</title>,這中方式可以為每個頁面單獨定義title
  • 圖表的名稱
    • 當前版本下,各圖表的名稱是直接在模板檔案中定義,要修改也是直接修改模板檔案中對應元素的值即可
    • 如要修改Transactions Per Second圖表的名稱,可以直接在./content/pages/Throughput.html.fmkr檔案中修改,效果如下圖

  • 頁面的其他各元素也可以用相同的方法進行定製

相關推薦

no