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

北京-宏哥發表於2025-03-10

1.簡介

  監聽器用來監聽及顯示 JMeter 取樣器測試結果,能夠以樹、表及圖形形式顯示測試結果,也可以以檔案方式儲存測試結果,JMeter 測試結果檔案格式多樣,比如 XML 格式、CSV 格式。預設情況下,測試結果將被儲存為 xml 格式的檔案,檔案的字尾: ".jtl"。另外一種儲存格式為 CSV 檔案,該格式的好處就是效率更高,但儲存的資訊不如 xml 格式詳細。

2.預覽監聽器

  首先我們來看一下 JMeter 的監聽器,路徑:執行緒組(使用者)->新增->監聽器;我們可以清楚地看到 JMeter5 中共有 16 個監聽器(不包括 jp@gc 開頭的監聽器,這個是宏哥安裝的外掛),如下圖所示:

如果上圖您看得不是很清楚的話,宏哥總結了一個思維導圖,關於 JMeter5 的前置處理器型別,如下圖所示:

透過以上的瞭解,我們對監聽器有了一個大致的瞭解和認識。下面宏哥就給小夥伴或則童鞋們分享講解一些通常在工作中會用到的監聽器。

3.常用監聽器詳解

這一小節,宏哥就由上而下地詳細地講解一下常用的監聽器。

3.1 圖形結果

圖形結果,透過圖形展示出本次效能測試資料的分佈。 圖形結果一般作為聚合報告的分析輔佐

1、我們先來看看這個 圖形結果 *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > 圖形結果 ,如下圖所示:

2、關鍵引數說明如下:

名稱: 控制器的描述性名稱,顯示在左邊節點上,並用於命名事務

註釋: 控制器註釋資訊,非必填項

檔名: 載入檔名

Throught:吞吐量,可以理解成 TPS(TPS 表示每秒透過的事物數,QPS 表示每秒查詢介面數。jmeter 中如果只有單介面,那麼 TPS=QPS。如果是多介面的混合場景,只有在事物控制器下執行,才能將其理解為 TPS)

  • 樣本數目。在這裡,我們可以把樣本數量簡單理解成是 jmeter 一共向伺服器發起了多少次請求;
  • 最新樣本。jmeter 最後一次傳送請求的響應時間。單位是毫秒;
  • 平均。所有請求響應時間的平均值。單位是毫秒;
  • 偏離。標準方差,學過統計學的同學應該知道這個概念。如果你對這個概念一無所知也沒有關係,偏離越小就代表測試的總體結果與平均值越接近;
  • 吞吐量。被測系統每分鐘能處理的請求個數,這是判斷伺服器效能好壞的重要指標(也可以說是最重要的指標)。在上面的圖形結果報表裡我們可以看到系統的吞吐量是 138.985 每分鐘,這就代表著系統每分鐘可以處理 138.985 個請求;
  • 中值。就是響應時間的中間值,學術一點中值指的是有 50% 的值大於這個值,另外 50% 的值小於這個值。蒙圈了吧?實際上中值指的是如果有 9 個數,那麼我們從小到大排列這些數,排在第 5 個的數就是這一組數的中值。那麼如果有 10 個數呢?10 個數的話第 5 個和第 6 個數的平均值就是這組數字的中值;

3.2 JSR223 Listener

JSR223 Listener,允許將 JSR223 指令碼程式碼應用於示例結果。

1、我們先來看看這個 SR223 Listener *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > JSR223 Listener ,如下圖所示:

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 郵件觀察儀

郵件觀察儀, 如果測試執行從伺服器收到太多失敗的響應,則可以將郵件程式視覺化工具設定為傳送電子郵件,這個不錯,起到及時通知效果,下面我使用的是 163 SMTP 進行測試。可以實現。

1、我們先來看看這個 郵件觀察儀 *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > 郵件觀察儀 ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空;

Message 中

From 代表,發件人

Address 代表 收件人

Success Limit 代表成功次數大於 x 時傳送郵件

Failure Limit 代表失敗事務大於 4 時,傳送郵件

SMTP sever

Host 填寫郵件伺服器名稱

Login 發件人的郵箱地址

Password 將 smtp 服務開啟,生成授權碼當作密碼

Connection Security 選擇協議

點選 TestMail 測試下是否可以傳送成功,就可以投入使用了

3.3.1 例項

1、新建測試計劃,執行緒組下新增郵件觀察儀,如下圖所示:

2、配置好以後,點選 “Test Mail”,提示傳送郵件成功。如下圖所示

3、去收件箱檢視,如下圖所示:

3.4 響應時間圖

響應時間圖,響應時間圖形監聽器。有點和我們之前介紹的Aggregate Graph類似

1、我們先來看看這個 響應時間圖長得是啥樣子,路徑: 執行緒組 > 新增 > 監聽器 > 響應時間圖 ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空;

2.1 Graph setting 圖片設定

2.2 Interval:橫座標的刻度

2.3 Title 標題 預設

2.4 Line setting 線條設定 預設

2.5 Graph size 圖片尺寸 預設

2.6 X Axis 橫座標 預設

2.7 Y Aixs 縱座標

2.8 Scale maximum value 縱座標長度

2.9 increment scale 縱座標的刻度 ;Legend 字型設定 預設

  • Interval (ms) X 軸間隔的時間(以毫秒為單位)
  • Sampler label selection 按結果標籤過濾。可以使用正規表示式
  • Title 在圖表的頭部定義圖表的標題
  • Line settings 定義線條的寬度
  • Graph size 根據當前 JMeter 視窗大小的寬度和高度計算圖形大小。使用 “ *寬度” 和 “ *高度” 欄位定義自定義大小。單位是畫素。
  • X Axis settings 自定義 X 軸標籤的日期格式
  • Y Axis settings 為 Y 軸定義自定義最大值(以毫秒為單位)
  • Legend 定義圖表圖例的放置和字型設定

3.5 儲存響應到檔案

儲存響應到檔案,我們可以看到表格顯示的結果與圖形結果,看著挺複雜,其實稍微翻譯一下就知道,絕大多數都是對圖形的設定。

1、我們先來看看這個 儲存響應到檔案 *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > 儲存響應到檔案 ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空;

檔名稱字首: 設定響應檔案所在路徑 (路徑必須已存在) 和檔案字首

Save Failed Responses only: 只儲存失敗的響應

Save Successful Responses only: 只保留成功的響應

Don't add number to prefix: 不新增數字到檔名字首

Don't add suffix: 不新增檔案字尾,即副檔名(注:預設情況下,jmeter 會根據伺服器返回的結果自動生成合適型別的檔案,比如伺服器返回 json 格式的內容,jmter 會自動生成.json 檔案)

Add timestamp: 新增時間戳到檔案字首

Minimum Length of sequence number : 最小序列號,不填預設從 1 開始。

3.6 簡單資料寫入器

簡單資料寫入器,對用來記錄取樣器響應結果,不會以圖形方式顯示。配合NON GUI 模式使用。

1、我們先來看看這個 簡單資料寫入器 *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > 簡單資料寫入器 ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空。

3.7 用表格檢視結果

用表格檢視結果,這個 listener 用來顯示每個請求的響應頭資訊,我覺得它最好用的一點就是可以按先後順序顯示每個請求的開始時間、耗時、響應狀態等,方便進行結果分析。

1、我們先來看看這個 用表格檢視結果 *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > 用表格檢視結果 ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空。

Sample # : 一個系列號,我們執行緒使用者設定了 5,這裡就有 5 個號

Start Time: 每個使用者的開始時間,我們設定了 1 秒進 5 個使用者,所以,每個使用者進入時間不同,這裡精確到毫秒。

Thread Name: 執行緒名稱,注意 1-1,1-5,第一個 1 我也不知道表示什麼,後面的 1 到 5 很好理解,就是使用者 1 到使用者 5.

Label: 就是 Http reques 的名稱

Sampler Time: 執行這個 Sampler 所消耗的時間,有時候也等於 Duration time

Status: 執行結果標記,成本綠勾,失敗紅叉。

Bytes: 請求的響應檔案大小

Sent Byte: 傳送 HTTP 請求的資料包大小

Latency: 這個字面意思是潛伏時間,不是延遲,暫時不好理解和解釋。一個網路術語

Connet Time: 連線到伺服器消耗的時間。

3.8 BeanShell Listener

BeanShell Listener,透過 BeanShell 監聽器可以訪問 JMeter 提供的屬性和變數

1、我們先來看看這個 BeanShell Listener *長得是啥樣子,路徑: *執行緒組 > 新增 > 監聽器 > BeanShell Listener ,如下圖所示:

2、關鍵引數說明如下:

Name: 名稱,可以隨意設定,甚至為空;

Comments: 註釋,可隨意設定,可以為空。

4.小結

  好了,今天到這裡 JMeter5 的所有監聽器就介紹和分享完了,感謝您耐心的閱讀和一路支援宏哥!!!

相關文章