java 定时器获得外部参数_JMeter定时器使用小结
?
一、定時器的作用域
1、無論定時器位置在Sampler之前還是下面,定時器是在每個sampler(采樣器)之前執行的,而不是之后;
2、當執行一個Sampler之前時,所有當前作用域內的定時器都會被執行;
3、如果希望定時器僅應用于其中一個Sampler,則把定時器作為子節點加入;
4、如果希望在Sampler執行完之后再等待,則可以使用Sampler中的Test Action;
二、定時器的作用
1、BeanShell定時器(BeanShell Timer)
利用BeanShell編程實現的定時器,十分強大,可以根據需要自己實現需要達到的效果,如在某個變量達到指定值的時候等待一下(其中BeanShell為一種松散類型的腳本語言,類似JS)。
參數說明:
Reset Interpreter(重置解釋器):是否每次重置迭代解釋器,默認選擇false,一般在長時間運行腳本時選擇true;
Paremeters(參數):beanshell timer的入參,可以是單個變量也可以是數組;
File Name:從腳本文件中讀取定時器的腳本;
Script:直接在script區域編寫BeanShell定時器腳本;
2、固定吞吐量定時器(Constant Throughput Timer)
可以讓JMeter以指定數字的吞吐量(即指定TPS)執行,注意的是這里要求指定每分鐘的執行數,而不是每秒。在控制對服務器施壓非常實用,如已知服務器每分鐘最大能處理多少線程數的情況下,要對服務器進行長時的疲勞強度測試。
Calculate Throughput based on:
有5個選項,分別是:
this thread only:控制每個線程的吞吐量,選擇這種模式時,總的吞吐量 = Target throughput * 線程的數量 。
all active threads:設置的Target throughput將分配在每個活躍線程上,每個活躍線程在上一次運行結束后等待合理的時間后再次運行。活躍線程指同一時刻同時運行的線程。
all active threads in current thread group:設置的Target throughput將分配在當前線程組的每一個活躍線程上,當測試計劃中只有一個線程組時,該選項和all active threads選項的效果完全相同。
all active threads (shared ):與All active threads 的選項基本相同,唯一的區別是,每個活躍線程都會在所有活躍線程上一次運行結束后等待合理的時間后再次運行。
all cative threads in current thread group (shared ):與All active threads in current thread group 基本相同,唯一的區別是,每個活躍線程都會在所有活躍線程的上一次運行結束后等待合理的時間后再次運行。
3、JSR223定時器(JSR223 Timer)
這個定時器相當于BeanShell定時器的“父集”,它可以使用beanshell、java、javascript、groovy等多種語言去實現你希望完成的事情。
4、泊松隨機定時器(Poisson Random Timer)
這個定時器在每個線程請求之前按隨機的時間停頓,大部分的時間間隔出現在一個特定的值,總的延遲就是泊松分布值和偏移值之和。
上面表示暫停時間會分布在 100到400毫秒之間:
1)Lambda(in milliseconds):蘭布達值(以毫秒為單位);
2)Constant Delay Offset(in milliseconds):固定延遲偏移(以毫秒為單位),暫停的毫秒數減去隨機延遲的毫秒數。
5、同步定時器(Synchronizing Timer)
這個定時器和Loadrunner當中的集合點(rendezvous point)作用相似,其作用是:阻塞線程,直到指定的線程數量到達后,再一起釋放,可以瞬間產生很大的壓力(可以用于絕對并發測試,即同一“時刻”對某一個服務施加多少用戶請求,這里的“多少用戶”指線程數,這樣更容易測試出線程資源掙用導致的死鎖等問題)
1)Number of Simulated Users to Group by:模擬用戶的數量,即指定同時釋放的線程數量;
2)Timeout in milliseconds:超時時間,即超時多少毫秒后同時釋放指定的線程數(即時沒有達到前面設置的線程數量),如果為 0 將一直等待,直到達到前面設置的線程數量。
6、均勻隨機定時器(Uniform Random Timer)
和高斯隨機定時器的作用差異不大,區別在于延時時間在指定范圍內且每個時間的取值概率相同,每個時間間隔都有相同的概率發生,總的延遲時間就是隨機值和偏移值之和。
上面表示的是延遲時間為?0到100之間的隨機數 + 50 毫秒:
1)Random Delay Maximum(in milliseconds):隨機延遲時間的最大毫秒數;
2)Constant Delay Offset(in milliseconds):暫停的毫秒數減去隨機延遲的毫秒數。
7、固定定時器(Constant Timer)
如果你需要讓每個線程在請求之前按相同的指定時間停頓,那么可以使用這個定時器;需要注意的是,固定定時器的延時不會計入單個sampler的響應時間,但會計入事務控制器的時間。
對于“java請求”這個sampler來說,定時器相當于loadrunner中的pacing(兩次迭代之間的間隔時間);
對于“事務控制器”來說,定時器相當于loadrunner中的think time(思考時間:實際操作中,模擬真實用戶在操作過程中的等待時間)。
8、高斯隨機定時器(Gaussian Random Timer)
如需要每個線程在請求前按隨機時間停頓,那么使用這個定時器,上圖表示暫停時間會分布在100到400毫秒之間,計算公式參考:Math.abs((this.random.nextGaussian() * 300) + 100)
-- End --
更多內容,請點擊下面?閱讀原文 查看。
文末寄語:??要是在力量底下屈服,那我身為男人還有什么意義。我絕對不會讓我的人生留下后悔。
總結
以上是生活随笔為你收集整理的java 定时器获得外部参数_JMeter定时器使用小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个好一点的头戴式耳机多少钱?
- 下一篇: word文档怎么给数字加千分符_Word