Jmeter集合點(線程組和同步定時器)


性能測試最常見的場景就是,在同一時間N個用戶同時操作。之前簡單的認為線程組數在0s內同時啟動,不就實現了並發么。線程組中並發數、啟動時間、循環次數、持續時間和定時器又有什么關聯呢?

同步定時器Synchronizing Timer配置如圖,主要有2個參數:
第一個參數,我自己翻譯為每次集合的用戶數,當線程組數達到這個數量時,觸發一次並發。
第二個參數,超時時間,當數量沒有達到集合用戶數時,若超過了這個時間,也會觸發並發。

 

 下面通過具體的例子來講解:

配置一:線程組數10,啟動時間為0秒,無同步定時器
效果:按下start按鈕后,所有線程組的HTTP請求幾乎同時啟動運行

 

 

配置二:線程組數10,啟動時間為10秒,無同步定時器
效果:按下start按鈕后,每1秒啟動一個線程組,10秒完成所有10個線程組啟動

 

配置三:線程組數10,啟動時間為10秒,同步定時器中每次集合用戶數10
效果:按下start按鈕后,仍然是按照配置10秒內啟動所有線程組,即每1秒啟動一個線程組,但是HTTP請求並沒有在線程組啟動后立即發送,那是因為有同步定時器設置了10個為一個集合,所以會等待10秒鍾,線程組個數湊夠了10個之后,所有線程組的HTTP請求再同時發送

 

配置四:線程組數10,啟動時間為10秒,同步定時器中每次集合用戶數5
效果:按下start按鈕后,每1秒鍾啟動一個線程組,但HTTP請求並沒有立即發送,而是5秒鍾后,當集合到了5個線程組后,5個HTTP請求一起發送,再過5秒鍾后,剩余5個線程組的HTTP請求一起發送

 

其他配置

配置五:線程組數10,啟動時間為10秒,同步定時器中每次集合用戶數3,超時時間為0
這種配置…運行起來的效果…:按下start按鈕,3秒后有3個線程組HTTP請求發送,6秒后有另3個線程組HTTP請求發送,9秒后又有3個線程組HTTP請求發送,然后就沒有然后了,最后一個線程組的HTTP請求不會發送了,因為永遠達不到集合數3。

配置六:線程組數10,啟動時間為10秒,同步定時器中每次集合用戶數3,超時時間為5000ms
開始時候的效果與上面配置類似,按下start按鈕,3秒后有3個線程組HTTP請求發送,6秒后有另3個線程組HTTP請求發送,9秒后又有3個線程組HTTP請求發送。此時由於只剩一個線程,所以定然不會達到集合數量,但是設置了5秒超時,所以5秒鍾后,最后一個線程組啟動運行

 

思考

最后的疑問是,使用
配置1(線程組數10,啟動時間為0秒,無同步定時器)
配置3(線程組數10,啟動時間為10秒,同步定時器中每次集合用戶數10)
都能實現同一時間多用戶並發。區別在哪兒呢?
1、配置3中這些線程是慢慢啟動的,然后同一個時間並發訪問。而配置1中的所有線程同時啟動且並發訪問。當並發用戶數很大很大時,配置1會使得壓力服務器瞬間壓力太大,可能會影響並發效果。
2、loadrunner中管這種並發叫集合點。所謂集合,感覺更像是軍訓時候,教官突然吹了一個哨子,說5分鍾后在樓下緊急集合。此時大家會各自開始准備,有的人很快就跑到樓下了,有的人穿衣服比較慢,或者跑的太慢,最后一秒鍾才到樓下,總而言之,5分鍾后大家集合完畢,准備統一行動。說着說着,是不是感覺同步計時器Synchronizing Timer才像是真正的集合呢?嘿嘿,大概是吧


免責聲明!

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



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