Jmeter(十九) - 從入門到精通 - JMeter監聽器 -上篇(詳解教程)

巨集哥發表於2020-08-04

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監聽器的上篇就講解到這裡,這一篇主要介紹了 察看結果樹彙總報告聚合報告、後端監聽器、彙總圖、斷言結果、比較斷言視覺化器生成概要結果

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕跡

 

相關文章