集合點:讓所有請求在不滿足條件的時候處於等待狀態。
如:我集合點設置為50,那么不滿足50個請求的時候,這些請求都會集合在一起,處於等待狀態,當達到50的時候,就一起執行。從而達到並發的效果。
那么Jmeter中可以通過同步定時器 Synchronizing Timer 來完成。
Number of Simulated Users to Group by:按組分組的模擬用戶數。
timeout in milliseconds:Timout的意思是等待請求多久后,不管線程數有沒有到達設置的並發數量都開始運行測試。
注:同步定時器要在請求之前設置。
場景一:線程數設置為6,集合點為3,超時為0,點擊運行。
可以看到有6個結果,此處分成了2組進行並發,每次是3個用戶。
場景二:線程數設置3,集合點設置為4,超時為0,點擊運行。
發現沒有執行請求,需要手動stop。原因:不夠並發數且超時為0
場景三:線程數設置6,集合點設置為4,超時為0,點擊運行。
發現只有4個請求,然后一直都沒有停止,需要手動stop。原因:第一組夠集合點,一起並發,第二組只有2個,不夠集合點。
場景四:線程數設置6,集合點設置為6,超時為0,點擊運行。
可以看到有6個請求。分1組執行。
場景五:線程數設置6,集合點設置為4,超時為5000,點擊運行。
分2組,發現先有4個請求,為第一組,5秒后,出現后2個請求,為第二組,共6個。
結論:
Timeout in milliseconds: 如果設置為0,Timer將會等待線程數達到了"Number of Simultaneous Users to Group"中設置的值才釋放。也就是說,如果線程數不足集合點中設置的數,就會一直等待,需要手動stop。
如果大於0,那么如果超過Timeout in milliseconds中設置的最大等待時間(毫秒為單位)后還沒達到"Number of Simultaneous Users to Group"中設置的值,Timer將不再等待,釋放已到達的線程。也就是說如果線程數不滿足集合點中設置的值,則在timeout中設置的時間后繼續執行不足的那些線程。
Timeout in milliseconds默認為0。所以當timeout設置為0,但是線程數又不滿足集合點中設置的值時,就會一直等待,不執行請求,需要手動stop。
同步定時器是在每一個采集器之前執行的,不管定時器的位置是在采集器之前還是之后,都是在采集器之前執行。
如果一個線程中存在多個采集器,同步定時器和這些采集器在同一級(同一節點下),則同時作用於這些采集器。
如果需要一個定時器單獨對應某一個采集器,可以在采集器的子節點中創建定時器。
轉載:https://www.cnblogs.com/insane-Mr-Li/p/10684190.html