前言
LoadRunner 中可以設置一個集合點,設置多個虛擬用戶等待到一個時間點,到齊后一起發請求達到並發的目的。
集合點概念:阻塞線程,直到指定的線程數量到達后,再一起釋放,可以瞬間產生很大的壓力
jmeter 中使用同步定時器 Synchronizing Timer實現 LoadRunner 中集合點的功能,模擬多用戶並發測試,即多個線程在同一時刻並發請求。
同步定時器 Synchronizing Timer
在HTTP請求的樣本下添加-定時器-同步定時器
有2個參數設置
- 模擬用戶組的數量(Number of Simulated Users to Group by) 也就是並發數,集合多少請求后一起發出去
- 超時時間以毫秒為單位(Timeout in milliseconds) 指定人數多少秒沒集合到算超時,默認為0,會一直等。設置500毫秒的話,如果500毫秒內湊齊並發數,就先發出去了。
並發請求
先禁用同步定時器,線程組設置30,循環一次
運行后用表格查看結果,會看到starttime沒有重復的,說明沒有並發的請求
打開同步定時器,設置模擬用戶組的數量為3,也就是3個並發,超時先設置為0
再次運行,就可以看到在同一時間會發出3個請求(這里不是絕對的,會更接近3個並發)
那么這里設置的並發數,會等線程數達到這個數量后一起發出去,起到並發的作用
超時時間
前面設置線程數30,並發3,剛好每湊齊3個請求一起發出去。如果線程數30,並發為7,最后還有2個請求湊不齊會怎樣?
可以看到右上角有2個線程會一直等待,不會自動結束,因為前面超時時間為0,就一直等待。
為了避免這種一直等待的情況,可以設置同步定時器的超時時間,比如我設置500毫秒,如果500毫秒還沒湊齊7個請求,那就先發出去,不用一直等了。
運行后,查看結果
原文地址https://www.cnblogs.com/yoyoketang/tag/jmeter/,轉載請注明出處!