1. 程式人生 > >Jmeter(十九) - 從入門到精通 - JMeter監聽器 -上篇(詳解教程)

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

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

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

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

 

相關推薦

Jmeter() - 入門精通 - JMeter監聽器 -教程

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

Jmeter() - 入門精通 - JMeter邏輯控制器 - 教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(七) - 入門精通 - JMeter後置處理器 -教程

1.簡介   後置處理器是在發出“取樣器請求”之後執行一些操作。取樣器用來模擬使用者請求,有時候伺服器的響應資料在後續請求中需要用到,我們的勢必要對這些響應資料進行處理,後置處理器就是來完成這項工作的。例如系統登入成功以後我們需要獲取SessionId,在後面的業務操作中伺服器會驗證這

Jmeter(二一) - 入門精通 - JMeter斷言 - 教程

1.簡介   最近由於巨集哥在搭建自己的個人部落格可能更新的有點慢。斷言元件用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,其支援正則表示式。雖然我們的通過響應斷言能夠完成絕大多數的結果驗證工作,但是JMeter還是為我們提供了適合多個場景的斷言元件,輔助我們來更好的完成結果驗證工作。在使用JMeter進

Jmeter(十三) - 入門精通 - JMeter定時器 - 教程

1.簡介   使用者實際操作時,並非是連續點選,而是存在很多停頓的情況,例如:使用者需要時間閱讀文字內容、填表、或者查詢正確的連結等。為了模擬使用者實際情況,在效能測試中我們需要考慮思考時間。若不認真考慮思考時間很可能會導致測試結果的失真。例如,估計的可支撐使用者數偏小。在效能測試中,訪問請求之間的停頓時間被

Jmeter(二) - 入門精通 - JMeter邏輯控制器 - 終教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(二) - 入門精通 - JMeter監聽器 -下篇教程

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

Jmeter(二) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy2教程

1.簡介   上一篇文中已經對Badboy做了一個基本上詳細完整的介紹,這一篇巨集哥帶你們實戰一下,這一篇主要講解和分享:錄製和執行指令碼、引數化 首先讓我們使用N模式錄製一個指令碼,測試用例編號為:1.1.1 成功的釋出僅有文字主題。  2錄製指令碼 1. 建立名為1 Log in的Suite,

Jmeter() - 入門精通 - JMeter邏輯控制器 - 中篇教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(一) - 入門精通 - JMeter邏輯控制器 - 下篇教程

1.簡介 Jmeter官網對邏輯控制器的解釋是:“Logic Controllers determine the order in which Samplers are processed.”。 意思是說,邏輯控制器可以控制取樣器(samplers)的執行順序。由此可知,控制器需要和取

Jmeter(四) - 入門精通 - JMeter定時器 - 下篇教程

1.簡介   使用者實際操作時,並非是連續點選,而是存在很多停頓的情況,例如:使用者需要時間閱讀文字內容、填表、或者查詢正確的連結等。為了模擬使用者實際情況,在效能測試中我們需要考慮思考時間。若不認真考慮思考時間很可能會導致測試結果的失真。例如,估計的可支撐使用者數偏小。在效能測試中,訪問請求之間的停頓時間被

Jmeter(五) - 入門精通 - JMeter匯入自定義的Jar包教程

1.簡介   原計劃這一篇是介紹前置處理器的基礎知識的,結果由於許多小夥伴或者童鞋們在微信和部落格園的短訊息中留言問如何引入自己定義的Jar包呢???我一一回復告訴他們和引入外掛的Jar包一樣的道理,一通百通。但是感覺他們還是很迷糊很迷惘,因此在這裡穿插一篇匯入自定義的Jar包。還有另外一個原因就是前置處理器

Jmeter(六) - 入門精通 - JMeter前置處理器教程

1.簡介   前置處理器是在發出“取樣器請求”之前執行一些操作。如果將前置處理器附加到取樣器元件,則它將在該取樣器元件執行之前執行。前置處理器最常用於在取樣器請求執行前修改其設定,或更新未從響應文字中提取的變數。前置處理器主要是用來處理請求前的一些準備工作,比如引數設定、環境變數設定等

Jmeter(八) - 入門精通 - JMeter後置處理器 -下篇教程

1.簡介   後置處理器是在發出“取樣器請求”之後執行一些操作。取樣器用來模擬使用者請求,有時候伺服器的響應資料在後續請求中需要用到,我們的勢必要對這些響應資料進行處理,後置處理器就是來完成這項工作的。例如系統登入成功以後我們需要獲取SessionId,在後面的業務操作中伺服器會驗證這

Jmeter(二二) - 入門精通 - JMeter斷言 - 下篇教程

1.簡介   斷言元件用來對伺服器的響應資料做驗證,常用的斷言是響應斷言,其支援正則表示式。雖然我們的通過響應斷言能夠完成絕大多數的結果驗證工作,但是JMeter還是為我們提供了適合多個場景的斷言元件,輔助我們來更好的完成結果驗證工作。在使用JMeter進行效能測試或者介面自動化測試工作中,經常會用到的一個功

Jmeter(二四) - 入門精通 - JMeter函式 - 中篇教程

1.簡介   在效能測試中為了真實模擬使用者請求,往往我們需要讓提交的表單內容每次都發生變化,這個過程叫做引數化。JMeter配置元件與前置處理器都能幫助我們進行引數化,但是都有侷限性,為了幫助我們能夠更好地進行引數化,JMeter提供了一組函式來幫助我們引數化生成需要的資料,這些函式可以函式助手面板來進行編

Jmeter(二八) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy1教程

1.簡介    在使用jmeter自動錄製指令碼時會產生很多無用的請求,所以推薦使用badboy錄製指令碼之後儲存為jmx檔案,在jmeter中開啟使用。因此巨集哥在這裡介紹一下Badboy這款工具,本來打算不做介紹了,原因是因為這款工具已經不在維護和更新了,但是考慮到有些童鞋們不能手擼測試指令碼,

Jmeter(三) - 入門精通 - Jmeter Http協議錄製指令碼工具-Badboy3教程

1.簡介   Badboy為方便自動化資料靈活性,以及指令碼的重用,減少工作量;為此提供了指令碼引數化的功能,這一篇文章巨集哥以度娘搜尋的關鍵字“北京-巨集哥”進行引數化為例,巨集哥帶領你們實戰一下如何使用Badboy的引數化功能。 2.指令碼錄製   經過上一篇文章的學習想必大家對B

Jmeter(三四) - 入門精通進階 - 引數化教程

1.簡介   前邊三十多篇文章主要介紹的是Jmeter的一些操作和基礎知識,算是一些初級入門的知識點,從這一篇開始我們就來學習Jmeter比較高階的操作和深入的知識點了。今天這一篇主要是講引數化,其實前邊或多或少的介紹過類似的知識點,知識沒有系統的講解,由於這個在實際工作中用到比較多而且經常用到,所以巨集哥今

Jmeter(三五) - 入門精通進階 - 關聯教程

1.簡介   上一篇中介紹瞭如果想要同時傳送多條請求,那麼怎樣才能讓每條資料某些請求引數改變呢。這就用到了jMeter引數化。在實際測試場景中,我們往往還有這樣的需求,登入後伺服器響應的token作為下次請求的引數,這就是所謂的引數關聯。   當請求之間有依賴關係,比如一個請求的入參是另一個請求返回的資料