jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group
我們有時需要模擬非常真實復雜的用戶壓測場景,可以用到此插件來設計場景
1、安裝插件,選項——Plugins Manager打開安裝頁面
2、搜索standard set并安裝,重啟jmeter,查看測試計劃——添加線程組——jp@gc - Stepping Thread Group (deprecated)
3、Stepping Thread Group復雜場景線程組
This group will start 100 threads【(并發數)設置單臺負載機,線程組啟動的線程總數為100個】
First,wait for 2 seconds【等待2s后開始起線程】
Then start 3 threads【設置最開始時啟動3個線程】
Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔5秒,在5秒內啟動10個線程【5s啟動10個線程運行30s,再5s啟動余下10個線程,再運行30s,以此類推】
Then hold load for 60 seconds【單臺負載機啟動的線程總數達到最大值100線程后,再持續運行60秒(一直在請求,相當于jmeter普通線程組里面的循環運行)】
Finally,stop 5 threads every 2 seconds【5個線程停1次,等2s再停5個線程】
?
?
舉個例子:一個線程組下包含了登陸和抽獎兩個接口
1、繼續:如果登陸接口失敗,會繼續執行抽獎接口
2、start next thread loop:主要針對循環次數>=2的時候。在loop1的時候,如果登陸接口失敗,會停止loop1開始loop2,重新執行循環接口;所以如果循環次數設置為1的時候,其實就是結束了線程。
3、停止線程:比如有50個線程,循環次數=2;線程2的登陸接口失敗之后,直接停止線程2,不再循環
4、停止測試:如果接口失敗就停止線程,但是已經執行中的線程需要等結束之后自動停止
5、stop test now:立刻停止所有線程,包括已經執行中的線程。
6、this group will start:表示總共要生成的線程數,如圖:設置為20000個,表示總共會加載到20000個線程
7、first,wait for:第一個線程從點擊執行之后多長時間開始加載,如圖:設置為0秒,表示點擊執行之后立即執行
8、then start:初次加載多少個線程,如圖:設置為1000個,表示初次會加載1000個線程(在60秒內)
9、next add:之后每次加載多少個線程,如圖:設置為5000個,表示每次多加載5000個線程
10、threads every:當前運行多長時間后再次加載線程,及每一次加載完成之后的持續時間,如圖:設置為600秒,每次加載完之后持續執行600秒
11、using ramp-up:加載線程的時間,如圖:設置為60秒,表示每一次加載需要在60秒內完成
12、then hold load for:線程全部加載完之后運行多長時間,如圖:設置為300秒,表示最后20000個線程加載完之后再持續300秒
13、finally,stop/threads every:每多長時間停止多少個線程,如圖:設置為10個和1秒,表示每1秒鐘停止10個線程
?
4、Ultimate Thread Group終極線程組、階梯線程組
提供了一個'Threads Schedule' 線程計劃表,您可以在其中配置不同的線程組。 您可以決定
線程數量('Start Threads Count')
每組開始添加到測試執行之前的延遲('Initial Delay,sec')
線程組的加速期('Startup Time') ,sec')
在減速前線程組的持續時間('Hold Load For,sec')
所有線程組應該關閉的速度('Shutdown Time')
?所有線程組同時啟動,但每個線程組都有自己的Intial Delay“初始延遲”值,這有助于分別從每個組中分離用戶。
?
示例一:
最后的10s停止階段,每s停止30線程
示例二:模擬浪潮式的壓測場景
常見的場景:
12306開始售票時用戶急劇增加
網站公布高考成績、錄取分數時,用戶急劇增加
網站投放商業促銷廣告和促銷活動,如雙11和618等活動開始時,用戶急劇增加
?
并發的用戶就像浪花一波一波的不斷涌入系統,拍打服務器,考驗我們的系統能否頂住壓力并平穩運行
我們的網站正在平穩運行的時候,突然有一波1000用戶同時訪問,我們稱之為第一浪潮。訪問了30s之后,第一浪潮在15s內逐漸退出系統。
在第一浪潮退出系統的同時,第二波2000用戶在極短時間內又突然涌入網站,我們稱之為第二浪潮。在訪問30s之后,第二浪潮在15s內也逐漸退出了系統。
在第二浪潮退出系統的同時,第三波3000用戶又突然涌入網站,我們稱之為第三浪潮。在訪問30s之后,第三浪潮在15s內也逐漸退出了系統。
在第三浪潮退出系統的同時,第四波1000用戶又突然涌入網站,我們稱之為第四浪潮。在訪問30s之后,第四浪潮在15s內也逐漸退出了系統。
5、并發線程組bzm - Concurrency Thread Group階梯式加壓
Target Concurrency:目標并發(線程數)
Ramp Up Time:加速時間
Ramp-Up Steps Count:加速步驟計數
Hold Target Rate Time:保持目標速率時間
Time Unit:時間單位(分鐘或者秒)
Thread Iterations Limit:線程迭代次數限制(循環次數)
Log Threads Status into File:將線程狀態記錄到文件中(將線程啟動和線程停止事件保存為日志文件);
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Django中的数据库操作API之d
- 下一篇: python3 struct.pack方