jmeter(七)定時器
知識來源有點複雜,其他測試工作者的部落格,百度百科,蒐集的電子文件,個人理解等等,限於水平和理解能力,可能有些內容有錯誤的地方。。。
jmeter提供了很多元件,幫助我們更好的完成各種場景的效能測試,其中,定時器(timer)是很重要的一個元件,最新的3.0版本jemter提供了9種定時器(之前6種),下面一一介紹:
一、定時器的作用域
1、定時器是在每個sampler(取樣器)之前執行的,而不是之後(無論定時器位置在sampler之前還是下面);
2、當執行一個sampler之前時,所有當前作用域內的定時器都會被執行;
3、如果希望定時器僅應用於其中一個sampler,則把定時器作為子節點加入;
4、如果希望在sampler執行完之後再等待,則可以使用Test Action;
二、定時器的作用
1、固定定時器(Constant Timer)
如果你需要讓每個執行緒在請求之前按相同的指定時間停頓,那麼可以使用這個定時器;需要注意的是,固定定時器的延時不會計入單個sampler的響應時間,但會計入事務控制器的時間。
對於“java請求”這個sampler來說,定時器相當於loadrunner中的pacing(兩次迭代之間的間隔時間);
對於“事務控制器”來說,定時器相當於loadrunner中的think time(思考時間:實際操作中,模擬真實使用者在操作過程中的等待時間)。
這裡附上一個傳送門,對loadrunner中的pacing和think time有比較全面的解釋:https://zhidao.baidu.com/question/1431215934913423459.html
我們通常說的響應時間,應該大部分情況下是針對某一個具體的sampler(http請求),而不是針對一組sampler組合的事務 。
2、高斯隨機定時器(Gaussian Random Timer)
如需要每個執行緒在請求前按隨機時間停頓,那麼使用這個定時器,上圖表示暫停時間會分佈在100到400之間,計算公式參考:Math.abs((this.random.nextGaussian() * 300) + 100)
傳送門(什麼是高斯隨機分佈):https://zhidao.baidu.com/question/89318504.html
3、均勻隨機定時器(Uniform Random Timer)
和高斯隨機定時器的作用差異不大,區別在於延時時間在指定範圍內且每個時間的取值概率相同,每個時間間隔都有相同的概率發生,總的延遲時間就是隨機值和偏移值之和。
下面表示的是隨機延遲時間的最大值是100毫秒:
(1)Random Delay Maximum(in milliseconds):隨機延遲時間的最大毫秒數
(2)Constant Delay Offset(in milliseconds):暫停的毫秒數減去隨機延遲的毫秒數
4、固定吞吐量定時器(Constant Throughput Timer)
可以讓JMeter以指定數字的吞吐量(即指定TPS,只是這裡要求指定每分鐘的執行數,而不是每秒)執行。
吞吐量計算的範圍可以為指定為當前執行緒、當前執行緒組、所有執行緒組等範圍,並且計算吞吐量的依據可以是最近一次執行緒的執行時延。這種定時器在特定的場景下,還是很有用的。
5、同步定時器(Synchronizing Timer)
這個定時器和loadrunner當中的集合點(rendezvous point)作用相似,其作用是:阻塞執行緒,直到指定的執行緒數量到達後,再一起釋放,可以瞬間產生很大的壓力(人多力量大- -哈哈!)
(1)Number of Simulated Users to Group by:模擬使用者的數量,即指定同時釋放的執行緒數數量
(2)Timeout in milliseconds:超時時間,即超時多少毫秒後同時釋放指定的執行緒數
6、BeanShell定時器(BeanShell Timer)
這個定時器,一般情況下用不到,但它可以說是最強大的,因為可以自己變成實現想要做的任何事情,例如:希望在每個執行緒執行完等待一下,或者希望在某個變數達到指定值的時候等待一下。
這裡給大家介紹下BeanShell:
BeanShell是一種鬆散型別的指令碼語言(這點和JS類似),一種完全符合java語法的java指令碼語言,並且又擁有自己的一些語法和方法。
傳送門(另外一位部落格園作者的部落格):http://www.cnblogs.com/jssy/archive/2006/10/23/537101.html
7、泊松隨機定時器(Poisson Random Timer)
這個定時器在每個執行緒請求之前按隨機的時間停頓,大部分的時間間隔出現在一個特定的值,總的延遲就是泊松分佈值和偏移值之和。
上面表示暫停時間會分佈在100到400毫秒之間:
(1)Lambda(in milliseconds):蘭布達值
(2)Constant Delay Offset(in milliseconds):暫停的毫秒數減去隨機延遲的毫秒數
傳送門(什麼是泊松隨機數):http://baike.baidu.com/link?url=CJ0_Qtuilzp3a4Xos9N7V_hFQjaf_zb_aM1wggqxIYGDGWjtKsp6JSjRIQ110lE38sQOKYcgNUMjRuMAPGb3xK
8、JSR223定時器(JSR223 Timer)
在jemter最新的版本中,新增了這個定時器,可以這麼理解,這個定時器相當於BeanShell定時器的“父集”,它可以使用java、JavaScript、beanshell等多種語言去實現你希望完成的事情;
我們都知道jemter是一種開源的純java工具,可以自己構件各個元件,jar包去完成各種事情。
9、BSF定時器(BSF Timer)
BSF Timer,也是jmeter新的版本中新增的定時器,其使用方法和JSR223 Timer很相似,只需要在jmeter的lib資料夾匯入其jar包,就可以支援指令碼語言直接訪問Java物件和方法的一定時器。
有了它 , 你就能在java application中使用javascript, Python, XSLT, Perl, tcl, ……等一大堆scripting language. 反過來也可以;
就是在這些scripting language中呼叫任何已經註冊過了的JavaBean,java object。它提供了完整的API實現通過Java訪問指令碼語言的引擎。
由於本人對java瞭解不深,只能通過查閱相關資料,簡單描述下其作用,不足之處,希望指正。
Has anything you're done made your life better?
分類:Jmeter
相關文章
- JMeter—定時器(八)JMeter定時器
- 5.9 jmeter元件-定時器JMeter元件定時器
- JMeter定時器設定延遲與同步JMeter定時器
- Jmeter(十三) - 從入門到精通 - JMeter定時器 - 上篇(詳解教程)JMeter定時器
- Jmeter(十四) - 從入門到精通 - JMeter定時器 - 下篇(詳解教程)JMeter定時器
- JMeter定時器種類+詳細教程舉例JMeter定時器
- JMeter—配置元件(七)JMeter元件
- 『動善時』JMeter基礎 — 18、JMeter配置元件【計數器】JMeter元件
- 『動善時』JMeter基礎 — 61、使用JMeter監控伺服器JMeter伺服器
- 『動善時』JMeter基礎 — 34、JMeter介面關聯【XPath提取器】JMeter
- 『動善時』JMeter基礎 — 12、JMeter取樣器詳解:samplerJMeter
- 定時器以及定時器的幾個案例定時器
- Jmeter —— jmeter設定HTTP資訊頭管理器模擬請求頭JMeterHTTP
- 『動善時』JMeter基礎 — 39、JMeter中如果(If)控制器詳解JMeter
- 『動善時』JMeter基礎 — 40、JMeter中ForEach控制器詳解JMeter
- JavaScript定時器JavaScript定時器
- iOS定時器iOS定時器
- Timer(定時器)定時器
- JavaScript 定時器JavaScript定時器
- js定時器JS定時器
- python定時器Python定時器
- 『動善時』JMeter基礎 — 35、JMeter介面關聯【JSON提取器】詳解JMeterJSON
- 『動善時』JMeter基礎 — 16、JMeter配置元件【HTTP資訊頭管理器】JMeter元件HTTP
- 純生JS輪播,定時器新增和清除定時器JS定時器
- Linux核心定時器Linux定時器
- Flink onTimer定時器定時器
- Qt - QTimer(定時器)QT定時器
- python flask 定時器PythonFlask定時器
- TIM-定時器定時器
- Java - Timer定時器Java定時器
- Systemd 定時器教程定時器
- java 中定時器Java定時器
- Qt QTimer定時器QT定時器
- 定時備份 MySQL 並上傳到七牛MySql
- 『動善時』JMeter基礎 — 47、JMeter的HTTP代理伺服器詳細介紹JMeterHTTP伺服器
- celery筆記七之週期/定時任務及crontab定義筆記
- jmeter+nmon+crontab簡單的執行介面定時壓測JMeter
- GO的定時器Timer 和定時任務cronGo定時器
- 『動善時』JMeter基礎 — 20、JMeter配置元件【HTTP Cookie管理器】詳細介紹JMeter元件HTTPCookie