jmeter吞吐量_深入理解Jmeter常用定时器
bug
前言
jmeter并發(fā)測試每個請求之間是沒有延時的,但實際工作有時候需要增加固定時間來測試,那么可以Jmeter定器組件,完成工作。其實這些知識百度一查就出來,為什么還要寫,主要方便自己復(fù)習(xí),要找的時候就從自己文章中找出,而且這些自己通過自己調(diào)試后,直接可以拿出來用。
jmeter定時器分類:
Constant Timer 固定定時器
Uniform Random Timer 均勻隨機(jī)定時器
Constant Throughput Timer 固定吞吐量定時器
Gaussian Random Timer 高斯隨機(jī)定時器
JSR223 Timer JSR223定時器
Poisson Random Timer 泊松隨機(jī)定時器
Synchronizing Timer 同步定時器
BeanShell Timer BeanShell腳本編寫定時器
Precise Throughput Timer 精準(zhǔn)吞吐量定時器
定時器
1、Constant Timer 固定定時器(重要常用):
固定定時器
作用:通過ThreadDelay設(shè)定每個線程請求之前的等待時間(單位為毫秒)。注意:固定定時是有作用域的,放到線程組下其作用域是所有請求都會延遲固定器設(shè)置的時間,如果放到請求內(nèi),作用域是單個請求延遲時間(常用)。
2、Uniform Random Timer 均勻隨機(jī)定時器
Uniform Random Time定時器
作用:它產(chǎn)生的延遲時間是個隨機(jī)值,而各隨機(jī)值出現(xiàn)的概率均等。總的延遲時間等于一個隨機(jī)延遲時間加上一個固定延遲時間,用戶可以設(shè)置隨機(jī)延遲時間和固定延遲時間。
總延遲時間=指定范圍內(nèi)的隨機(jī)時間+固定延遲時間。
3、Constant Throughput Timer 固定吞吐量定時器
作用: 按指定的吞吐量執(zhí)行,以每分鐘為單位。計算吞吐量依據(jù)是最后一次線程的執(zhí)行時延。
Target throughput(in samples per minute):目標(biāo)吞吐量。注意這里是每分鐘發(fā)送的請求數(shù),可以選擇作用的線程:當(dāng)前線程、當(dāng)前線程組、所有線程組等,具體含義如下:
this thread only: 設(shè)置每個線程的吞吐量。總的吞吐量=線程數(shù)*該值。
all active threads in current thread group:吞吐量被分?jǐn)偟疆?dāng)前線程組所有的活動線程上。每個線程將根據(jù)上次運(yùn)行時間延遲。
all active threads:吞吐量被分配到所有線程組的所有活動線程的總吞吐量。每個線程將根據(jù)上次運(yùn)行時間延遲。在這種情況下,每個線程組需要一個具有相同設(shè)置的固定吞吐量定時器。(不常用)
all active threads in current thread group (shared):同上,但是每個線程是根據(jù)組中的線程的上一次運(yùn)行時間來延遲。相當(dāng)于線程組組內(nèi)排隊。(不常用)
all active threads (shared):同上,但每個線程是根據(jù)線程的上次運(yùn)行時間來延遲。相當(dāng)于讓所有線程組整體排隊。(不常用)
4、Gaussian Random Timer 高斯隨機(jī)定時器
Gaussian Random Timer 高斯隨機(jī)定時器
作用:每個線程的延遲時間是符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)時間停頓,那么使用這個定時器,總延遲 = 高斯分布值(平均0.0和標(biāo)準(zhǔn)偏差1.0)* 指定的偏差值+固定延遲偏移(Math.abs((this.random.nextGaussian() * 偏差值) + 固定延遲偏移))
5、JSR223 Timer JSR223定時器
JSR223 Timer JSR223定時器
作用:JSR223計時器可以使用JSR223腳本語言生成延遲;
參考幫助文檔:
https://jmeter.apache.org/usermanual/component_reference.html#JSR223_Timer
6、Poisson Random Timer 泊松隨機(jī)定時器
Poisson Random Timer 泊松隨機(jī)定時器
作用:這個定時器在每個線程請求之前按隨機(jī)的時間停頓,總的延遲就是泊松分布值和偏移值之和。
上面表示暫停時間會分布在100到400毫秒之間:
(1)Lambda(in milliseconds):蘭布達(dá)值
(2)Constant Delay Offset(in milliseconds):暫停的毫秒數(shù)減去隨機(jī)延遲的毫秒數(shù)
7、Synchronizing Timer 同步定時器(重要-常用)
Synchronizing Timer 同步定時器
作用:用來設(shè)置集合點(diǎn),其作用是:阻塞線程,直到指定的線程數(shù)量到達(dá)后,再一起釋放,可以瞬間產(chǎn)生很大的壓力
(1)Number of Simulated Users to Group by:模擬用戶的數(shù)量,即指定同時釋放的線程數(shù)數(shù)量,若設(shè)置為0,等于設(shè)置為線程組中的線程數(shù)量;
(2)Timeout in milliseconds:超時時間,即超時多少毫秒后同時釋放指定的線程數(shù);如果設(shè)置為0,該定時器將會等待線程數(shù)達(dá)到了設(shè)置的線程數(shù)才釋放,若沒有達(dá)到設(shè)置的線程數(shù)會一直死等。如果大于0,那么如果超過Timeout inmilliseconds中設(shè)置的最大等待時間后還沒達(dá)到設(shè)置的線程數(shù),Timer將不再等待,釋放已到達(dá)的線程。默認(rèn)為0
同步定時器(Synchronizing Timer)的超時時間設(shè)置要求:超時時間 > 請求集合數(shù)量 * 1000 / (線程數(shù) / 線程加載時間)
8、BeanShell Timer BeanShell腳本編寫定時器(重要-常用)
簡單示例:
BeanShell Timer BeanShell
參數(shù)說明:
Reset Interpreter:每次迭代是否重置解析器,默認(rèn)為false;在長時間運(yùn)行的腳本中建議設(shè)置為true。
Parameters:BeanShell腳本的入?yún)ⅰH雲(yún)⒖梢允菃蝹€變量;也可以是數(shù)組,若是字符串?dāng)?shù)組,兩個元素之間用空格隔開;也可以是常量。
File Name:BeanShell腳本可以從腳本文件中讀取。
Script:在Script區(qū)直接寫B(tài)eanShell腳本。
增加一個Java Request請求,并且增加時間驗證是否按照自己設(shè)定的定時運(yùn)行腳本:
Java Request ${__time(yyyy-MM-dd HH:mm:ss:SSS,)}
增加結(jié)果查看樹:結(jié)果顯示按之前設(shè)置的每個1秒鐘運(yùn)行
9、Precise Throughput Timer 精準(zhǔn)吞吐量定時器
Precise Throughput Timer 精準(zhǔn)吞吐量定時器
Target Throught:目標(biāo)吞吐量
Throught Period:表示在多長時間內(nèi)發(fā)送Target Throught指定的請求數(shù)(以秒為單位)
Test Druation:指定測試運(yùn)行時間(以秒為單位)
Number of threads in the bath:用來設(shè)置集合點(diǎn),等到指定個數(shù)的請求后并發(fā)執(zhí)行其它參數(shù)默認(rèn)即可。
總結(jié)
以上是生活随笔為你收集整理的jmeter吞吐量_深入理解Jmeter常用定时器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASR测试方法---字错率(WER)、句
- 下一篇: 海信旗下年轻潮牌Vidda发布激光投影C