問題:有一個頁面,需要測試一下最大支持多少用戶並發?
此時需計算的是最大用戶並發數,強調的是同時操作,也可以理解為同時發起請求;
針對這個問題,我們可以通過rps定時器或階梯加壓線程組測試每秒最大的請求數;
首先需要導入jmeter-plugins插件 ,然后去初始化需要用到的插件
在平衡狀態下,並發數=RPS*響應時間

a)使用jp@gc - Throughput Shaping Timer(吞吐量成形計時器,調節rps的定時器);
設置線程組中線程數為50,ramp-up時間為1s,永遠循環;
同時在請求下面加Throughput Shaping Timer定時間,rps由1增加到400/s;
測試最終運行時間取 線程組運行時間 與 定時器時間的最小值;


設置后我們需要添加幾個性能測試中常用的監聽器:
添加監聽器Hits per Second(每秒請求數)
觀察HPS走勢,HPS在140的時候持續了十幾秒,隨后HPS穩定在100

添加監聽器 Transaction per second
TPS在48/s穩定了十幾秒,然后穩定在30/s

添加監聽器 jp@gc - Response Times Over Time
平均響應時間在3s以內


在比較穩定的情況下,最大rps=140/s,平均響應時間=1.6s,則最大並發=140*1.6=224,也就是224個線程同時啟動可滿足1s內140/s HPS壓力值
b)使用階梯加壓線程組

功能如下:
This group will start 100 threads:設置線程組啟動的線程總數為400個;
First,wait for N seconds:啟動第一個線程之前,需要等待N秒;
Then start N threads:設置最開始時啟動N個線程;
Next,add 100 threads every 2 seconds,using ramp-up 10 seconds:每隔2秒,在10秒內啟動100個線程;
Then hold load for 40 seconds:啟動的線程總數達到最大值之后,再持續運行40秒;
Finally,stop 100 threads every 0 seconds:同時停止100個線程;
設置階梯線程組各配置項后,再添加各個監聽器后觀察,發現得出的tps,rps,平均響應時間與添加rps監聽器測試出的結果基本一致
下面可以來驗證一下,線程組的線程數設置為224,其它值可隨意,(如,設置定時60s,循環次數設置為100,因為並發數=rps*響應時間 是在平衡狀態下得出的結論,所以運行時間不能太短)
添加監聽器Hits per Second,Transactions per Second,Response Times Over Time 查看這些指標是否和上面得出的結果一致(預期應該是滿足的)

