參考《全棧效能測試修煉寶典JMeter實戰》第六章 JMeter 元件詳解中第三節定時器
JMeter中的定時器一般用來設定延遲與同步。定時器的執行優先順序高於取樣器,在同一作用域下有多個定時器存在時,每一個定時器都會執行,如果想讓某一定時器僅對某一取樣器有效,則可以把定時器加在此取樣器節點下。
一、高斯隨機定時器
高斯隨機定時器生成一個呈高斯分佈的時間間隔。
偏差:設定的偏差值實際是一個浮動範圍,單位毫秒
固定延時偏差:固定延時時間
用它可以模擬思考時間(使用者提交表單前填寫表單及思考的時間)
二、固定值的定時器
固定值定時器,多用來模擬思考時間
三、Synchronizing Timer
同步定時器,在效能測試中需要模擬多使用者併發的場景,設定10個使用者一起釋放,相當於10個使用者併發
四、Constant Throughput Timer
固定吞吐量定時器,它會盡量保持取樣器的一個固定的範圍內。JMeter通過固定吞吐量定時器來控制吞吐量,如果吞吐量大過固定值則增加迭代間的間隔時間,反之減少。
Calculate Thoughput based on選項:
This thread only:僅針對當前執行緒,也就是每個執行緒相互不干擾,都是分開計算需要延遲的時間
All active threads:針對所有執行緒,把所有執行緒的吞吐量合在一起作為因子計算
All active threads in current thread group:針對當前執行緒組中的所有執行緒
All active threads(shared):執行緒延遲計算是基於任意一個執行緒上次執行的時間,也就是隨便獲取一個執行緒的執行時間來計算
All active threads in currnet thread group(shared):在當前執行緒組中任取一個執行緒的上次執行時間來計算延時
五、Uniform Random Timer
讓執行緒暫停一個隨機時間,只不過力求隨機時間能夠更均勻,都會出現
Random Delay Maximum:隨機延遲時間部分
Constant Dealy Offset:固定延遲時間
六、Poisson Random Timer
設定的執行緒延遲時間呈鬆泊分佈
Lambda:鬆泊分佈的期望和方差均為
Constant Delay offset:固定延遲部分時間
七、BeanShell Timer
JMeter支援BeanShell指令碼語言,BeaShell Timer就用BeanShell來設定執行緒延遲間隔
八、BSF Timer
BSF也是一種可以直接呼叫Java的指令碼語言
九、JSR223 Timer
JSR223作為一個標準,為指令碼引擎提供了統一的介面、統一的訪問模式