1.簡介
監聽器用來監聽及顯示JMeter取樣器測試結果,能夠以樹、表及圖形形式顯示測試結果,也可以以文件方式保存測試結果,JMeter測試結果文件格式多樣,比如XML格式、CSV格式。默認情況下,測試結果將被存儲為xml格式的文件,文件的后綴: ".jtl"。另外一種存儲格式為CSV文件,該格式的好處就是效率更高,但存儲的信息不如xml格式詳細。
2.預覽監聽器
首先我們來看一下JMeter的監聽器,路徑:線程組(用戶)->添加->監聽器;我們可以清楚地看到JMeter5中共有16個監聽器(不包括jp@gc開頭的監聽器,這個是宏哥安裝的插件),如下圖所示:
如果上圖您看得不是很清楚的話,宏哥總結了一個思維導圖,關於JMeter5的前置處理器類型,如下圖所示:
通過以上的了解,我們對監聽器有了一個大致的了解和認識。下面宏哥就給小伙伴或則童鞋們分享講解一些通常在工作中會用到的監聽器。
3.常用監聽器詳解
這一小節,宏哥就由上而下地詳細地講解一下常用的監聽器。
3.1 察看結果樹
察看結果樹,顯示取樣器請求和響應的細節以及請求結果,包括消息頭,請求的數據,響應的數據。
注意!!!敲黑板,敲腦殼!!!
(1)察看結果樹,放的位置不同,查看的結果也不同。在線程組下添加察看結果樹,查看線程組下所有請求的結果;放在具體某個請求下,只查看此請求的結果;若放在某個控制器節點下,則查看此控制器下節點執行的結果;
(2)該監聽器推薦做調試用,在實際運行壓測時,應該禁用,因為大量請求時,啟用該監聽器時打印的日志比較多,會造成大IO消耗,影響壓力機性能。
1、我們先來看看這個 察看結果樹 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 察看結果樹,如下圖所示:
2、關鍵參數說明如下:
名稱:控制器的描述性名稱,顯示在左邊節點上,並用於命名事務
注釋:控制器注釋信息,非必填項
文件名:載入文件名
Log/Display Only: 僅日志錯誤、Success ;勾選中顯示對應的日志信息
Configure:定義report中自己所關心的數據項。
取樣器結果:
Thread Name: 線組名稱
Sample Start: 啟動開始時間
Load time: 加載時長
Latency: 等待時長
Size in bytes: 發送的數據總大小
Headers size in bytes: 發送頭大小
Body size in bytes: 發送數據的其余部分大小
Sample Count: 發送統計
Error Count: 錯誤統計
Response code: 返回碼
Response message: 返回消息
Response headers:返回頭信息
請求
數據獲取方式、路徑、地址等以及傳遞的參數、cookie
響應數據
響應加載的頁面html
3、作用
1)查看請求結果,請求成功的測試通常為綠色;紅色則代表失敗。
注:在沒有對請求斷言的情況下,顯示綠色並不一定是成功,只代表響應碼是200或300系列,顯示紅色說明響應碼是400或500系列。所以要想確定請求返回的是正確的,必須要加上斷言,只有斷言成功才會顯示綠色。
2)查看對應Sampler的測試結果的請求、響應數據。
- 取樣器結果:顯示的是取樣器相關參數(客戶端參數與響應參數)
- 請求:發送請求的具體內容
- 響應數據:服務器返回的相應參數
3.2 匯總報告
匯總報告,為測試中的每個不同命名的請求創建一個表行。這與聚合報告類似,只是它使用更少的內存。提供了最簡要的測試結果信息,同時可以配置將相應的信息保存至指定的文件中(支持xml、csv格式的文件)。
單擊Configure按鈕,可以配置結果保存各種選項,具體這里不做說明了。
該監聽器是筆者在調試jmeter項目時常用的監聽器之一。
1、我們先來看看這個 匯總報告 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 匯總報告,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空;
Label 取樣器別名,如果勾選Include group name ,則會添加線程組的名稱作為前綴
# Samples 取樣器運行次數
Average 請求(事務)的平均響應時間
Min 請求的最小響應時間
Max 請求的最大響應時間
Std. Dev 響應時間的標准方差
Error % 事務錯誤率
Throughput 吞吐量 也就是TPS
Received KB/sec 每秒收到的千字節
Sent KB/sec 每秒發送的千字節
Avg. Bytes 響應平均流量
3.3聚合報告
聚合報告,記錄這次性能測試的總請求數、錯誤率、用戶響應時間(中間值、90%、最少、最大)、吞吐量等,用以幫助分析被測試系統的性能。在聚合報告中,各個響應時間不能超過客戶的要求,就是合格,例如不能超過響應時間2s,大於2s就是不合格的.
聚合報告應該是最詳細的報告了,也是最為常用的報告。是大家在壓測過程中最常用的監聽器。
該監聽器對於每個請求,它統計響應信息並提供請求數,平均值,最大,最小值,中位數、90%、95%、錯誤率,吞吐量(以請求數/秒為單位)和以kb/秒為單位的吞吐量。
單擊Configure按鈕,可以配置結果保存各種選項,具體這里不做說明了。
1、我們先來看看這個 聚合報告 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 聚合報告,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空;
Label :每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值
#Samples :表示測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那么這里就顯示對應的 HTTP Request的執行次數是100
Average :平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
Median :50%用戶的響應時間
90%Line :90%用戶的響應時間
Min :最少響應時間
Max :最大響應時間
Error% :本次運行測試中出現錯誤的請求的數量/請求的總數
Throughput :吞吐量,默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
(接收/發送)KB/sec :每秒從服務器端接收到的數據量,相當於LoadRunner中的Throughput/Sec
3.4后端監聽器
后端監聽器,是一個異步偵聽器,可以將數據推入都數據庫中,提供了InfluxDB,graphite選項
1、我們先來看看這個 后端監聽器 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 后端監聽器,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空;
Backend Listener implementation:BackendListenerClient類的實現,Jmeter默認提供如下兩種實現,因為我們使用的influxdb作為持久存儲
org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient
org.apache.jmeter.visualizers.backend.graphite.InfluxdbBackendListenerClient 因為我們使用的influxdb作為持久存儲,所以后續只介紹InfluxdbBackendListenerClient
Async Queue size:異步隊列大小 隊列值包含異步處理時的度量標准。除非有一些特定的性能問題,否則最好不要從默認的5000。
3、我們使用InfluxdbBackendListenerClient
- influxdbMetricsSender:org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
- influxdbUrl:influx數據庫的url。example : http://influxHost:8086/write?db=jmeter
- application:被測試的應用名稱。此值也作為名為“application”的標記存儲在“events”中
- measurement:使用默認的”jmeter“就行
- summaryOnly:為true的情況下,只輸出所有請求的集合數據報告,為flase的情況下,輸出每條數據的詳情報告、
- samplersRegex:正則表達式將與樣本名稱匹配並發送到后端。默認匹配所有
- testTitle:測試名稱。默認的設置為 Test name。該值作為名為“text”的字段存儲在“事件”度量中。 JMeter在測試的開始和結束時自動生成一個注釋,其值以'started'和'ended'結尾
- percentiles:要發送到后端的百分位數,多個值已
;
分割 - TAG_WhatEverYouWant:自定義標簽。您可以根據需要添加任意數量的自定義標簽。對於它們中的每一個,只需創建一個新行並在其名稱前加“TAG_”
3.5匯總圖
匯總圖,我們可以看到表格顯示的結果與圖形結果,看着挺復雜,其實稍微翻譯一下就知道,絕大多數都是對圖形的設置。
1、我們先來看看這個 匯總圖 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 匯總圖,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空;
Column settings
- Columns to display 選擇要在圖表中顯示的列
- Rectangles color 單擊右側顏色矩形打開彈出對話框,選擇自定義顏色。(就是點擊
)
- Foreground color 允許更改值文本顏色
- Value font 允許定義文本的字體設置
- Draw outlines bar? 在條形圖上繪制或不繪制邊界線
- Show number grouping? 是否顯示Y軸標簽中的數字分組
- Value labels vertical? 更改值標簽的方向。(默認為水平)
- Column label selection 按結果標簽過濾
Title
在圖表的頭部定義圖表的標題
Graph size
根據當前JMeter窗口大小的寬度和高度計算圖形大小。使用“ 寬度”和“ 高度”字段定義自定義大小。單位是像素。
X Axis settings
定義X軸標簽的最大長度(以像素為單位)
Y Axis settings
為Y軸定義自定義最大值。
Legend
定義圖表圖例的放置和字體設置
3.6 斷言結果
斷言結果,對相應的請求添加斷言。對取樣器進行斷言后,我們希望知道斷言結果;此元件可以幫助我們顯示斷言結果(察看結果樹元件中也可以看到)。消耗了大量資源(內存和CPU),性能測試時候不建議使用。
作用:用於檢查測試中得到的響應數據等是否符合預期,用以保證性能測試過程中的數據交互與預期一致,一般與結果樹結合使用。
1、我們先來看看這個 斷言結果 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 斷言結果,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空。
3.7比較斷言可視化器
比較斷言可視化器,和比較斷言配合使用。
1、我們先來看看這個 比較斷言可視化器 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 比較斷言可視化器,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空。
3.8 生成概要結果
生成概要結果,該測試元素可以放置在測試計划中的任何位置。生成到目前為止對日志文件和/或標准輸出的測試運行的摘要。顯示了運行總計和差異總計。在適當的時間邊界每n秒(默認為30秒)生成一次輸出,因此將同步在同一時間運行的多個測試。
1、我們先來看看這個 生成概要結果 長得是啥樣子,路徑:線程組 > 添加 > 監聽器 > 生成概要結果,如下圖所示:
2、關鍵參數說明如下:
Name:名稱,可以隨意設置,甚至為空;
Comments:注釋,可隨意設置,可以為空。
4.小結
好了,今天關於JMeter監聽器的上篇就講解到這里,這一篇主要介紹了 察看結果樹、匯總報告、聚合報告、后端監聽器、匯總圖、斷言結果、比較斷言可視化器和生成概要結果。
您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波 推薦 不要忘記哦!!!
別忘了點 推薦 留下您來過的痕跡