性能測試中我們經常提到一個概念就是“併發”,其實在實際真實的性能測試中是不存在真正的併發的。爲了更真實的模擬對一個請求的併發測試場景,我們通常設置一個集合點,JMeter中提供了這樣的一個功能設置。
那麼集合點的大致概念是什麼呢?
簡單理解就是:設置一個閥值(請求數量),當請求數達到這個閥值時,允許請求同時發出。例如:想測試一座橋的併發(忽略載重等其他因素,只考慮通過),那麼併發的請求就是類似於多少輛車可同時通過橋,而車輛一般情況下是不可能同時通過橋的,因而我們可以在橋頭A,設置一個集合點,等車輛數滿足一定的數量,同時讓車輛通過此橋。
添加路徑:右鍵單擊線程組,依次選擇【添加/定時器/Synchronizing Timer】即可添加集合點
添加後,顯示如下圖所示:
PS:超時時間爲0時,默認無超時限制。
實際運行過程中,可能出現請求數當不滿足集合點設置的請求數時,JMeter一直卡頓在如下頁面:
解決辦法是:設置同步定時器的超時時間。
同步定時器(Synchronizing Timer)的超時時間設置要求:
超時時間 > 請求集合數量 * 1000 / (線程數 / 線程加載時間)
同步計時器的超時時間定義:若在超時時間內,性能測試併發場景設定的併發樣本數量未達到,則jmeter認爲超時,會立即執行併發。這樣就不符合你設定的性能測試場景。
超時時間的設定值約束:超時時間 > 請求集合數量 * 1000 / (線程數 / 線程加載時間)
分母計算結果爲:每秒啓動的線程數;
請求集合數量:爲設定的性能測試場景的樣本併發數量;
不等式右邊計算結果爲:加載性能併發樣本所需時間(毫秒)
綜上,同步定時器的超時時間建議設置爲大於不等右邊。