首先,我們來了解幾個jmeter中的概念
我們在添加一個線程組時通常都要配置這幾個屬性
線程數:即並發用戶數
ramp-up時間(秒):持續時間,加速時間
比如,並發數是1000個,持續時間設置為10,表示跑完1000個線程,我要花費10s,那每秒鍾就要發送100個線程
並發數是1000個,持續時間是50s,表示50s要跑到1000個線程,那每秒鍾就是1000/50=20,每秒鍾發送20個請求
並發數1000個,持續時間1000s,那每秒就是1s個線程。
一、准備工作
首先,我們需要安裝jp@gc - Ultimate Thread Group插件,這個不再詳述
二、配置jmeter
測試計划-》添加-》線程(用戶)-》jp@gc - Ultimate Thread Group,配置后,如下:
在這個線程組下面,我們再配置測試的http請求,添加一個監聽器jp@gc - Active Threads Over Time,即可查看線程運行情況
http請求的配置這里不再詳述,我們主要研究下jp@gc - Ultimate Thread Group 這個小可愛
創建線性負載:
如下圖,我這里創建的就是一個線性負載,我的測試場景是60s內啟動100個線程,持續運行60s,花10s的時間結束:
這個場景就比如說,高考成績公布,這個時候系統60s內涌入了100個用戶並發,他們訪問系統持續時間60s,10s鍾都退出了系統
運行后,查看監聽器jp@gc - Active Threads Over Time,
把鼠標點擊到監聽器的圖上,顯示橫坐標,縱坐標。從這個監聽器的圖就可以得知,1分鍾的時候,線程總數100個,持續運行1分鍾,又花了10s停止線程,因此總共耗時了2分10s。
查看聚合報告;
目的:
這里的持續時間,就是要看看系統達到這些負載后,能不能穩定運行,性能會不會惡化?但是這樣的話,我們不確定這個負載量是多少,我們不確定服務器能處理的負載量是多少,哪些負載不能處理?
所以,我們要按步驟增加負載,慢慢加上去,這就是我們的步進負載
創建步進負載:
場景:
想看系統的負載量是多少,最大負載多少,是否可以平穩運行
這里我們就要用到多個線程組,在線性基礎上增加多個線程組。比如我想每分鍾增加25個線程,這25個線程啟動耗時話費15s,設置如下:
通過以上配置,觀察日志和監聽器,就可以知道系統在哪個負載下面平穩運行,能承擔多大的負載。
監聽結果
創建波浪形測試負載:
場景:
比如12306搶票的時候,每次開放搶票時,有大量用戶涌入,等到下次開放時,又有大量用戶涌入,這個時候,就像波浪一樣,不斷敲擊服務器,考驗服務器的性能
這里,我們就用到jp@gc - Ultimate Thread Group
配置說明:
第一個階段,花20s的時間,啟動25個線程,持續運行60s,用5s的時間停止掉
第二個階段,第一階段的線程都停止后,再開始啟動第二個階段的線程,花20s的時間再啟動25個線程,再持續60s,用5s停掉
第三個階段,等第二個線程都結束后,再花20s的時間啟動25個線程,持續60s,再停掉
這樣像波浪一樣拍打服務器,觀察服務器的性能,看系統是否能平穩運行。
如有疑問,歡迎指正,歡迎評論!