4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)
一、階梯式場景(負載測試)
該場景主要應用在負載測試里面,通過設定一定的并發線程數,給定加壓規則,遵循“緩起步,快結束”的原則,不斷地增加并發用戶來找到系統的性能瓶頸,進而有針對性的進行各方面的系統優化。
使用到的線程為: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
*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/shouhu/,謝謝!!*******
總結
以上是生活随笔為你收集整理的4-8(九)Jmeter性能测试之阶梯式场景(负载测试)、波浪式场景(压力测试)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 苹果雪豹操作系统正式版_iOS 12.3
- 下一篇: python编程的常用工具_小白学Pyt
