一、階梯式場景(負載測試)
該場景主要應用在負載測試里面,通過設定一定的並發線程數,給定加壓規則,遵循“緩起步,快結束”的原則,不斷地增加並發用戶來找到系統的性能瓶頸,進而有針對性的進行各方面的系統優化。
使用到的線程為:jp@gc - Stepping Thread Group (deprecated)
在測試計划上:右鍵—>添加—>線程(用戶)—>jp@gc - Stepping Thread Group (deprecated)
同時添加以下監視器:
- TPS:jp@gc - Transactions per Second
- 響應時間:jp@gc - Response Times Over Time
- 活躍線程數:jp@gc - Active Threads Over Time
針對階梯式場景的參數配置,說明如下:
- This group will start:給定的當前負載的並發用戶數
- First, wait for:等待XX秒后開始啟動
- Then start:0秒(初始化)啟動XX並發用戶數 — 在第幾個虛擬用戶啟動
- Next, add:每using ramp-up時間內啟動XX的用戶數
- threads every:每次加壓階梯下用戶完成啟動后保持運行XX秒
- using ramp-up:XX秒內完成Next, add的用戶數的啟動
注:五秒鍾啟動十個線程,這十個線程持續運行30秒,再用五秒鍾啟動十個線程,這20個線程持續運行30秒
- Then hold load for:This group will start並發用戶數全部啟動完成后保持運行XX秒 == 所有線程運行完成后再執行XX秒
- Finally, stop:每隔threads every的時間減少XX用戶數
- threads every:每隔XX秒減少Finally, stop的用戶數
注:每隔1秒減少5個並發用戶數直到並發用戶數減少為0
我們以注冊接口為例,配置如下參數:
配置參數的完整描述為:給定負載並發用戶數為25,從0秒開始,每3秒內增加5個並發用戶數,3秒時刻完成5個並發用戶數的啟動后開始平穩運行10秒鍾,依次下去,直到25個並發用戶數全部都啟動完成后,平穩運行30秒,然后每隔1秒減少5個並發用戶數直到並發用戶數減少為0時,負載測試結束。
開始進行負載測試,等待測試完成后,可以通過添加的jpgc監視器圖表查看性能測試報告結果
二、波浪式場景(壓力測試)
該場景主要用在分段時間壓測和壓力測試里面,分段時間壓測比如點餐系統,一天會出現用餐高峰期、平穩期和閑時區,針對該場景我們就要設計成不同時間段的壓力值不同,加壓方式不同等等,壓力測試我們只需要使用一個場景,並將壓測時間設置長即可,同樣的測試報告也用jpgc的監視器獲得
使用到的線程為:jp@gc - UItimate Thread Group
在測試計划上:右鍵—>添加—>線程(用戶)—>jp@gc - UItimate Thread Group
針對波浪式場景的參數配置,說明如下:
- Start Threads Count:給定當前時間段的並發用戶數
- Initial Delay, sec:初始化時間,單位:秒(s)
- Startup Time, sec:啟動時間,單位:秒(s)
- Hold Load For, sec:所有並發用戶數啟動完成后保持運行的時長,單位:秒(s)
- Shutdown Time:結束時間,單位:秒(s)
分段時間壓測(示例):
理解:從 0秒 開始,30秒 啟動 50個 虛擬用戶,運行 60秒 后,10秒 停止50個虛擬用戶 == 第一階段耗時100秒
從100秒 開始,15秒 啟動 200個 虛擬用戶,運行 120秒 后,10秒 停止 200個 虛擬用戶 == 前兩個階段總耗時 245 秒
從 245秒 開始,30秒 啟動 50個 虛擬用戶,運行 60秒 后,20秒 停止 100個 虛擬用戶 == 前三個階段總耗時 385秒
。。。。。。
壓力測試(示例):
理解:從 0秒 開始,60秒 啟動 300個 虛擬用戶,運行 500秒 后,10秒 停止300個虛擬用戶 == 段耗時 570秒
三、服務器監控
服務器監控插件:jp@gc - PerfMon Metrics Collector,需要在服務器安裝:ServerAgent
-
- 服務器資源監控線形圖
- 用於監控機器的CPU、Memory、swap、Disks I/O、Networks I/O。CPU:cpu占用量百分比;
- 服務器性能監測控件,包括CPU,Memory,Network,I/O等等(此功能用到在需監聽的服務器上啟動startAgent)
- 根據需要選擇CPU,Memory,Network I/O等
1、下載並安裝ServerAgent
鏈接:https://pan.baidu.com/s/1VOQVS0LdrhMEXdFthvyuhg
提取碼:0h1p
2、通過ftp/sftp方式把包上傳到服務器上,解壓
- 上傳 壓縮包到服務器 建議公司環境安裝目錄下或opt目錄下
- 解壓命令:unzpi ServerAgent-2.2.3.zip
- 進入解壓后的文件:cd ServerAgent-2.2.3/
- 查看所有文件:ll
- starAgent.sh 是啟動文件
3、更改端口並啟動服務:
Linux 下啟動:.startAgent.sh 回車就可以啟動,默認的端口是4444
在阿里雲的服務器上面4444端口可能沖突后會被禁用,防止禁用后會出現各種問題
更改並啟動服務執行: sh startagent.sh --udp-port 0 - -tcp-port 3231
(建議使用該方式,去掉udp、tcp改變端口, 默認4444,可能沖突或禁用)
- udp和tcp都是http協議中使用的數據傳輸協議 其中 udp 的意思是傳輸的速度越快越好,不保證數據的准確定
- tcp 需要先建立雙方的鏈接,數據穩定不會出錯,傳輸的速度沒有udp快
加上&后台運行:sh startagent.sh --udp-port 0 -tcp-port 3231&
停止服務:Ctrl + C
4、啟動服務后去檢查防火牆是否關閉
1、服務器\防火牆是關閉狀態那就沒有問題
- 1、啟動防火牆:systemctl start firewalld
- 2、關閉防火牆:systemctl stop firewalld
- 3、檢查防火牆狀態:systemctl status firewalld
2、如果沒有關閉防火牆,那么就需要關閉或執行下面的命令把端口添加到防火牆內
- 防火牆添加開放端口:
- 命令:firewall-cmd --permanent -add-port=3123/tcp
- 不用在意此條內容:再firewall-cmd --reload (刪除firewall-cmd-permanent --remove-port=3243/tep)
安裝完畢
5、運行腳本:
啟動后會出現如下圖:服務器資源監控的圖表
可能出現的問題:
1.啟動文件,並指定端口號(隨意):
- ./ startAgent.sh --udp-port 0 --tcp-port 3128
- 意思是:不啟用 udp 服務,只啟動 tcp 服務
2.可能出現網絡不通
檢測到服務器 端口網絡不通
telnet 服務器地址.3129
1、網絡不通第一種解決辦法
先停止服務:Ctrl + C
檢查3128端口:lsof -1:3128
輸入命令回車后什么都沒有提示
需要查看防火牆:systemctl status fi rewalld
2、網絡不通第二種方法
- 關閉防火牆,重新指定端口
- systemctl stop firewalld
- systemctl status firewalld
- ./ startAgent.sh - -udp-port 0 --tcp-port 3129
檢測端口網絡是否通暢
telnet 148. 70. 249.98 3129