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