jmeter-獲取系統最大並發數


問題:有一個頁面,需要測試一下最大支持多少用戶並發?

此時需計算的是最大用戶並發數,強調的是同時操作,也可以理解為同時發起請求;

針對這個問題,我們可以通過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 查看這些指標是否和上面得出的結果一致(預期應該是滿足的)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM