第五篇:JMeter 定時器


前言

在默認情況下,jmeter 發送每個請求之間是沒有延時的,如果采用默認方式,如果線程數足夠大,瞬間就會將服務器壓死。再則在實際的業務過程中,請求之間是有一定時間的停頓的所以在請求之間設置合理的延時是必須的,也是更接近用戶真實業務情況。在 jmeter 中,定時器組件提供了系列不同類型的延時控制。合理使用定時器組件,能讓你的性能測試更接近真實,更能挖掘出系統的瓶頸和評估系統的性能指標。

定時器類型

1、固定定時器

這是最簡單的一種定時器,也是新手最常用的一種方式。下面我們看下其具體設置:

因其是固定值,在實際模擬用戶請求的過程中,會失去靈活性,不推薦大量使用該定時器。

2、高斯隨機定時器

高斯隨機定時器,又可以稱作正態分布隨機定時器,該定時器可以設置在兩個請求間隨機延時時長。且總的延時是高斯分布(正態分布)的總和(均值:0.0、標准差 1.0)。在使用時須指定偏差延時值和偏移值。。下面我們看下其具體設置:

例如在訪問百度首頁,然后輸入關鍵詞進行搜索,受網絡、人等各種因素影響,有的人打開首頁后 3s 后則進行了搜索,有時則是 10s或更多時間,在正常情況下,打開百度然后進行搜索,假設用戶間隔在 3s-10s 之間,從統計學來看,這個間隔時間可能是一個正態分布或接近正態分布。而不是一個固定的常量。從筆者在日常實踐中,也更推薦使用該定時器。能更接近模擬用戶實際情況。

3、Synchronizing Timer

這個定時器應該是大家很期望的,它有在 LoadRunner 中有一個大家熟悉的名稱:集合點。是的,它實現了某種意義上的並發。

請注意 Timeout in milliseconds 盡量填寫一個合理的值。

4、Uniform Random Timer

該定時器可以在請求之間設置一個隨機延時,每個隨機延時有相同的發生概率。總的延時等於隨機延時 + 偏移延時值。該定時器也是常用之一。

  5、Poisson Random Timer

類似高斯隨機定時器,只是其隨機延時值發生在一個特定的值。總的延時值呈現泊松分布。

 6、Constant Throughput Timer

通過控制每分鍾請求數(即控制吞吐的方式)來控制是否進行延時暫停。
例如,當我們需要使服務端長期處於一定的壓力下時,可以通過該定時器來控制吞吐。
注意:吞吐值可以是常量,也可以使用函數來動態生成,已達成更靈活的使用,滿足不同的壓力場景。

 7、JSr R223 Timer   和  BeanShell Timer

這兩種定時器就不細說了,簡單的說就是提供了腳本方式來進行控制,是更為靈活的方式。一般情況下,大家是不會用的。當然有興趣的,可以去研究下,增強理解。

總結
本文就各種定時器進行了介紹,並大致介紹了其可能的應用場景。不管是哪種定時器,都需要深入理解業務的情況下,統籌規划使用。以更深入的發揮其作用,模擬好真實應用場景,更好的挖掘性能瓶頸和評估目標服務的性能情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM