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的所有監聽器就介紹和分享完了,感謝您耐心的閱讀和一路支援巨集哥!!!