Jmeter之定時器

JMeter提供了六種定時器,下面讓我們一起來學習下JMeter的定時器。

先明確一些概念:
1)定時器是在每個sampler(採樣器)之前執行的,而不是之後
是的,你沒有看錯,不管這個定時器的位置放在sampler之後,還是之下,它都在sampler之前得到執行
2)定時器是有作用域的;當執行一個sampler之前時,所有當前作用域內的定時器都會被執行;

3)如果希望定時器僅應用於其中一個sampler,則把該定時器作爲子節點加入;
4)如果希望在sampler執行完之後再等待,則可使用Test Action;

一、固定定時器(Constant Timer)
毫無疑問,這是最重要的定時器。
需要注意的是,固定定時器的延時不會計入單個sampler的響應時間,但會計入事務控制器的時間。
如下圖,固定定時器的時長設爲300毫秒。
定時器時長並不計入java請求的響應時間,但被計入“事務控制器”的總時間
如果你堅持看到這裏,並且對loadrunner的think time和pacing這兩個概念還有記憶的話,我們可以有答案了:
對於“java請求”這個sampler來說,定時器相當於loadrunner中的pacing;對於“事務控制器”來說,定時器相當於loadrunner中的think time。

我們通常說的響應時間,應該大部分情況下是針對某一個具體的sampler(http請求),而不是針對一組sampler組合的事務
二、高斯隨機定時器(Gaussian Random Timer)
基本同上,只是定時器的延時時間是在指定範圍內的正態分佈。
三、均勻隨機定時器(Uniform Random Timer)
同上,延時時間是在指定範圍內,並且每個時間取值的概率相同。
四、固定吞吐量定時器(Constant Throughput Timer)
可以讓JMeter以指定數字的吞吐量(即指定TPS,只是這裏要求指定每分鐘的執行數,而不是每秒)執行。吞吐量計算的範圍可以爲指定爲當前線程、當前線程組、所有線程組,並且計算吞吐量的依據可以是最近一次線程的執行時延。
相信這種定時器在特定的場景下,還是很有用的。
五、同步定時器(Synchronizing Timer)
在該定時器處,使線程等待,一直到指定的線程個數達到後,再一起釋放。可以在瞬間製造出很大的壓力。
沒錯,它和loadrunner的集合點(rendezvous point)差不多的功能。
六、BeanShell定時器(BeanShell Timer)
這個定時器,平時用不上。但實際上,它是最強大的,因爲可以自己編程實現想要乾的任何事。
有複雜需求時,就要靠它了。例如,希望在每個線程執行完等待一下,或者希望在某個變量達到指定值的時候等待一下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章