一、前言
性能測試時我們關注的重要指標是:並發用戶數,TPS,請求成功率,響應時間,服務器的CPU,memory, I/O disk等。Jmeter的聚合報告可以查看並發數、吞吐量、請求成功率、響應時間等;如果要查看服務器端的CPU,memory, I/O disk等就需要安裝插件ServerAgent。
二、ServerAgent插件安裝
1.需要下載三個文件,其中JMeterPlugins-Standard和JMeterPlugins-Extras是客戶端的,ServerAgent是服務端的。
前兩個的下載地址是:https://jmeter-plugins.org/downloads/old/。
服務端的下載地址:https://github.com/undera/perfmon-agent
2.解壓客戶端的兩個文件,進入其路徑JMeterPlugins-Extras\lib\ext,JMeterPlugins-Standard\lib\ext,復制JmeterPlugins-Extras.jar,JmeterPlugins-Standard.jar兩個文件,放到JMeter客戶端的apache-jmeter-4.0\lib\ext下面。
3.打開JMeter,可在監聽器中看到Permon Metrics Collector,客戶端配置成功
4.將ServerAgent-2.2.1.jar上傳到被測服務器(根目錄或任意位置),解壓,進入目錄,Windows環境,雙擊startAgent.bat啟動;linux環境執行startAgent.sh啟動,默認使用4444端口(如果沒有執行權限,可先賦予執行權限:chmod a+x startAgent.sh)
注意:在linux啟動 #./startAgent.sh時,報./startAgent.sh: line 3: java: command not found,應該是ServerAgent-2.2.1.jar上傳的位置沒有jdk,要先安裝jdk
1.查看雲端目前支持安裝的jdk版本 [root@localhost ~]# yum search java|grep jdk 2.選擇版本后,安裝(執行以下命令會自動安裝jdk相關依賴 [root@localhost ~]# yum install -y java-1.8.0-openjdk 3.安裝完成,驗證是否安裝成功 [root@localhost ~]# java -version 4.通過搜索java文件,查找jdk默認安裝目錄 [root@localhost ~]# find / -name 'java'

5.在Jmeter腳本的線程組中添加一個監聽器jp@gc - PerfMon Metrics Collector
注意:
- 一定要添加要監控的服務器的IP,serveragent的4444端口號,監控的指標CPU、Memory、DISK I/O,Network I/O。
- 一定要有將結果導出的文件如果添加文件時提示:Error loading results file - see file log,解決辦法為:在文件(什么類型都可以)中加上一段
-
<?xml version="1.0" encoding="UTF-8"?> <testResults version="1.2"> </testResults>

6.啟動線程組就可以監控到(線程運行時間如果太短可能會捕捉不到這個圖表,可以設置循環幾次來延長時間。
說明:CPU(X100 000 000)等,需要乘的,是因為Swap的值比較大,如果展示在一起的話,其他值就忽略不計了,所以乘100 000 000!
7.監控資源配置
8.Settings
1.use relative times:用於配置曲線圖x軸表示相對時間(測試開始時為0)還是實際系統時間。
2.Auto-zoom rows for best fit:默認勾選,則會有上一節講數值時提到的展示數據自動放大的功能,取消勾選則全部展示采集的實際數值。
3.Limit number of points in row to xx points:勾選后可以設定曲線圖展示的采樣點數量,我們的測試報告會有不同的角色查看,其中一些角色可能不具備也不需要對監控數據的細節理解能力,此時我們提供的監控曲線圖應該是易讀的,如果按照實際的所有采樣點來渲染出曲線圖,可能會有很多偏離趨勢的噪點數據,這對於不了解的人來說可能會有很多疑惑,所以當我們有了分析結論,最后報告呈現的時候,可以考慮通過調整采樣點,來讓曲線圖更好的展示資源使用趨勢,消除其他不必要的信息。
4.Force maximum Y axis value to xx:實際上我更多會選擇不勾選,不勾選的情況下,插件在描繪曲線圖的時候,會根據數值大小自動調整Y軸最大值,以達到更佳可讀性。不過與上一項類似,可能在對外出具報告時,為了更少的解釋說明,可能需要某個指定的數值。