一、插件安裝 (Stepping Thread Group)
1.安裝 JMeter Plugins Manager (如果尚未安裝)
-
- 在 Test Plan (測試計劃) 上右鍵點擊。
- 選擇 Add > Threads (Users) > jp@gc - Stepping Thread Group。
- 一個新的 "Stepping Thread Group" 配置元素會出現在你的測試計劃中。
二、插件使用方法 (Stepping Thread Group)
1.安裝成功后,你就可以創建階梯式的負載場景了
-
- 添加 Stepping Thread Group
-
- 在 Test Plan (測試計劃) 上右鍵點擊。
- 選擇 Add > Threads (Users) > jp@gc - Stepping Thread Group。
- 一個新的 "Stepping Thread Group" 配置元素會出現在你的測試計劃中。
2.理解 Stepping Thread Group 界面
-
- Stepping Thread Group 的配置界面主要包含以下幾個關鍵參數:
-
- This group will start
[ ]threads: 整個線程組最終要達到的最大并發線程數。
- This group will start
-
- First, wait for
[ ]seconds: 測試計劃啟動后,等待多少秒再開始啟動第一個線程(初始延遲)。
- First, wait for
-
- Then start
[ ]threads: 初始要啟動的線程數。
- Then start
-
- Next, add
[ ]threads every[ ]seconds, using ramp-up[ ]seconds: 這是定義"階梯"的核心部分。
- Next, add
-
-
add [ ] threads: 每次階梯增加的線程數量。
-
-
-
every [ ] seconds: 每次增加線程的時間間隔 (即每個階梯持續的時間)。
-
-
-
using ramp-up [ ] seconds: 在指定的時間間隔內,新增的線程是平滑啟動的(而不是瞬間啟動)。例如,如果你設置增加 10 個線程,使用 5 秒 ramp-up,那么這 10 個線程會在 5 秒內均勻啟動。
-
-
-
- Then hold load for
[ ]seconds: 達到最大線程數后,保持該負載壓力運行多少秒。
- Then hold load for
-
-
-
- Finally, stop
[ ]threads every[ ]seconds: (可選) 定義如何逐步停止線程(階梯式下降)。通常測試執行完 Hold Load 階段后線程會立即停止,如果需要模擬用戶逐漸退出,可以配置這里。
- Finally, stop
-
三、配置一個典型的階梯負載場景 (示例):
1.假設你想模擬以下場景:
-
-
測試開始后等待 10 秒。
-
初始啟動 10 個用戶。
-
之后,每分鐘增加 20 個用戶,新增的 20 個用戶在 30 秒內平滑啟動 (ramp-up)。
-
一直增加到 100 個用戶。
-
達到 100 個用戶后,保持壓力運行 5 分鐘。
-
最后,所有用戶立即停止(不配置階梯下降)。
-
參數配置如下:
-
This group will start:
100(最終最大線程數) -
First, wait for:
10(秒) -
Then start:
10(初始線程數) -
Next, add:
20threads -
every:
60seconds (1分鐘) -
using ramp-up:
30seconds -
Then hold load for:
300seconds (5分鐘 = 300秒) -
Finally, stop...: 留空或設為
0(表示不進行階梯停止,Hold結束后立即停止所有線程)
這個配置的含義:
-
-
T=0s: 測試開始。 -
T=0s to T=10s: 等待。 -
T=10s to T=40s: 啟動前 10 個用戶 (在30秒內平滑啟動?注意:這里的 "Then start 10 threads" 沒有單獨的 ramp-up 時間。它實際會在T=10s瞬間啟動 10 個用戶。如果需要平滑初始用戶,需要把初始用戶也看作一個階梯,或者使用using ramp-up來控制初始啟動。插件界面在這個初始啟動的表述上有點歧義。通常認為初始線程是立即啟動的。如果需要平滑初始啟動,可以將Then start設為0,然后在第一個階梯增加初始用戶數并設置 ramp-up)。 -
T=40s: 第一個階梯結束,當前總用戶數 = 10。 -
T=40s to T=70s: 啟動 下一批 20 個用戶 (在 30 秒內平滑啟動)。 -
T=70s: 第二個階梯結束,當前總用戶數 = 10 + 20 = 30。 -
T=70s to T=100s: 啟動 再下一批 20 個用戶 (在 30 秒內平滑啟動)。 -
T=100s: 第三個階梯結束,當前總用戶數 = 30 + 20 = 50。 -
T=100s to T=130s: 啟動 再下一批 20 個用戶 (在 30 秒內平滑啟動)。 -
T=130s: 第四個階梯結束,當前總用戶數 = 50 + 20 = 70。 -
T=130s to T=160s: 啟動 最后一批 20 個用戶 (在 30 秒內平滑啟動)。注意:70 + 20 = 90,但最大線程數是 100。插件會確保不超過最大線程數。 -
T=160s: 第五個階梯結束,當前總用戶數 = 90。 -
T=160s to T=190s: 啟動 最后 10 個用戶 (在 30 秒內平滑啟動, 因為只剩 10 個需要達到最大 100)。 -
T=190s: 達到最大線程數 100。 -
T=190s to T=490s (190 + 300): 保持 100 個用戶并發運行 300 秒 (5 分鐘)。這是主要的穩定壓力階段。 -
T=490s: 測試結束,所有線程立即停止。
-
浙公網安備 33010602011771號