【JMeter】 使用Synchronizing Timer設置請求集合點,實現絕對並發


布局設置說明

參數說明:

Number of Simulated Users to Group

每次釋放的線程數量。如果設置為0,等同於設置為線程租中的線程數量。

Timeout in milliseconds

如果設置為0,Timer將會等待線程數達到了"Number of Simultaneous Users to Group"中設置的值才釋放。如果大於0,那么如果超過Timeout in milliseconds中設置的最大等待時間(毫秒為單位)后還沒達到"Number of Simultaneous Users to Group"中設置的值,Timer將不再等待,釋放已到達的線程。默認為0

使用時需要注意的點

  • 如果設置Timeout in milliseconds為0,且線程數量無法達到"Number of Simultaneous Users to Group by"中設置的值,那么Test將無限等待,除非手動終止。
  • Synchronizing timer 僅作用於同一個JVM中的線程,所以,如果使用並發測試,確保"Number of Simultaneous Users to Group by"中設置的值不大於它所在線程組包含的用戶數。

(原文:Synchronizing timer blocks only within one JVM, so if using Distributed testing ensure you never set "Number of Simultaneous Users to Group by" to a value superior to the number of users of its containing Thread group considering 1 injector only)

集合點作用域

  • Synchronizing Timer是在每個sampler(采樣器)之前執行的,而不是之后,不管這個定時器的位置放在sampler之后,還是之前,如下,執行HTTP請求1和HTTP請求2前都會執行同步定時器

  • 作用域:當執行一個sampler之前時,和sampler處於相同作用域的定時器都會被執行;

  • 如果希望定時器僅應用於其中一個sampler,則把該定時器作為子節點加入

定時器僅僅對HTTP請求2起作用,即僅在HTTP請求2執行前執行定時器,和HTTP請求1無關

實際運行

如上,添加相關請求,結果樹等,進行必要設置后,運行查看效果

通過結果樹可以看到,請求是批量執行的,其中有兩個請求在集合點超時之后運行

點擊右上角的感嘆號可以查看運行日志,可以看到集合點等待超時的warning日志


免責聲明!

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



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