圖表分析,Jmeter還有這種功能?
- 2019 年 11 月 24 日
- 筆記
一、背景
在做壓力測試或者性能測試的時候, 服務端的各項資源指標是我們非常關心的問題。一般性能測試需要監控的指標分為資源指標和系統指標。
資源指標:
●CPU 使用率: 用戶進程與系統進程消耗的CPU百分比, 一般長時間可以接受的上限不超過85%
●Memory 利用率: (1-空閑記憶體/總記憶體)*100%, 一般至少留有10%的可用記憶體, 長時間記憶體使用率上限可接受範圍85%
●Disks I/O 用於磁碟存取數據: 用於讀寫操作所佔用的時間百分比, 度量磁碟讀寫性能
●Network I/O 網路頻寬: 表示為發送和接收位元組的速率, 判斷網路連接速度是否存在瓶頸
系統指標:
●並發用戶數:某一時刻同時向系統提交請求的用戶數
●在線用戶數:某段時間內訪問系統的用戶數,這些用戶並不一定同時向系統提交請求
●平均響應時間:系統處理事務的響應時間的平均值。事務的響應時間是從客戶端提交請求到伺服器響應所消耗的時間.
●吞吐量:指在一次性能測試過程中網路上傳輸的數據量的總和
針對資源指標,我們可以通過命令例如"iostat、free、vmstat、sar"等命令去監控記憶體、CPU、磁碟IO等。

針對系統指標,我們可以在Jmeter中添加聚合報告來統計平均響應時間和QPS等資訊。

但是這幾種統計方式都無法觀測到測試過程中的相關指標變化情況,於是問題就出現了,基於服務端日益增長的資源指標監測與測試工具基礎功能不能滿足需求的矛盾。基於此矛盾,我們通過導入Jmeter擴展的監聽器來解決問題。

二、工具的添加
1、在Jmeter官網下載Plugins Manage插件,然後將jar包放置jmeter的lib/ext路徑下,重啟Jmter。可以看到Jmeter中添加了很多功能。

2、為了遠程監控服務端機器的記憶體、CPU、磁碟IO需要在服務端啟動一個ServerAgent服務,並且在Jmeter中配置正確埠進行監聽。

下面簡單介紹幾種監測方法在測試中的應用。

三、在測試中的應用
為避免敏感資訊,以下場景均使用本地環境代替服務端。

場景一:
在順滑服務的性能測試過程中,QPS最終結果與開發預計不符,開發懷疑測試機器性能不穩定,於是給我們提出了一個需求,讓我們提供一個不同時間段QPS的結果。通過「Hits per Second」就可以解決此需求問題。



場景二
在翻譯服務的性能測試過程中,開發需要直觀的觀測不同並發數下翻譯服務的QPS。通過「Transaction Throughput vs Threads」,可以看到不同並發數下每秒的請求次數。



場景三
在性能測試中,有時需要觀察解碼器的狀態,此時就需要我們去監控解碼器的記憶體、CPU、磁碟IO的使用情況。」通過PerfMon Metrics Collector「,並且在解碼器啟動一個ServerAgent來對解碼器進行監控。



四、總結
本期為大家簡單介紹了幾種Jmeter的監聽器,其他幾種監聽器可以根據實際測試的需求進行使用。通過使用多樣化的監聽器,可以幫助我們更好的分析測試系統的性能。


