并非原創(chuàng)怖辆,摘抄自:這里
Jmeter平時(shí)做API接口的吞吐量測(cè)試是复,幾個(gè)配置項(xiàng)很好上手沒(méi)有去深入思考删顶。
有幾個(gè)疑問(wèn):
1 Ramp-Up配置時(shí)間實(shí)際作用竖螃?
2 循環(huán)是在哪個(gè)時(shí)間點(diǎn)開始執(zhí)行的?與線程組的關(guān)系是怎樣的逗余?
3 配置10/s個(gè)并發(fā)如何實(shí)現(xiàn)特咆?
有疑問(wèn)就實(shí)踐,讀別人博客難免找不到自己想要的內(nèi)容录粱。
實(shí)踐疑問(wèn)1:
Ramp-UP time的實(shí)際作用腻格,圖一為例解釋:有5個(gè)線程需要5秒發(fā)送完成,也就是1個(gè)/s請(qǐng)求啥繁。(如果線程數(shù)是10菜职,ramp-up time是5,又是什么意思旗闽?)
注:線程數(shù)抽象實(shí)例化后就是用戶數(shù)酬核,Ramp-up time是規(guī)定所有用戶在時(shí)間段內(nèi)把請(qǐng)求發(fā)送完(前提條件循環(huán)次數(shù)是1)蜜另,而且請(qǐng)求的時(shí)間間隔是固定的=Ramp-Up time/線程數(shù)。
看執(zhí)行結(jié)果統(tǒng)計(jì):從結(jié)果中可以看出嫡意,總計(jì)時(shí)耗時(shí)5s举瑰,請(qǐng)求數(shù)是5個(gè),時(shí)間間隔是固定的1秒(這個(gè)總時(shí)耗和時(shí)間間隔就是Ramp-Up time實(shí)際作用)蔬螟。
疑問(wèn)二: 循環(huán)是在哪個(gè)時(shí)間點(diǎn)開始執(zhí)行的此迅?與線程組的關(guān)系是怎樣的?
解答:循環(huán)開始時(shí)間幾乎與啟動(dòng)時(shí)間并行旧巾,
如下圖解釋:a循環(huán)數(shù)為1的解釋是1個(gè)/s請(qǐng)求發(fā)5次請(qǐng)求耸序。
b循環(huán)數(shù)為2時(shí)解釋是(1個(gè)/s請(qǐng)求發(fā)5次)執(zhí)行2遍(循環(huán)數(shù)),循環(huán)開始執(zhí)行時(shí)間幾乎與第一遍執(zhí)行時(shí)間并行鲁猩。(仔細(xì)觀察Thread Name的時(shí)間點(diǎn))
疑問(wèn)三:配置10/s個(gè)并發(fā)如何實(shí)現(xiàn)佑吝?是否可以通過(guò)(線程數(shù),Ramp-Up time绳匀、循環(huán)數(shù))配合來(lái)實(shí)現(xiàn)芋忿?
方法一: 通過(guò)(線程數(shù),Ramp-Up time疾棵、循環(huán)數(shù))配合來(lái)實(shí)現(xiàn)
組合有很多種戈钢,我列了幾個(gè)
方法二:用Jmeter自帶Constant Throughput Timer插件實(shí)現(xiàn),實(shí)際測(cè)試這樣配置要達(dá)到10/s的效果不可行是尔。(原因:評(píng)估這個(gè)配置限制TPS值的最小單位是minute殉了,所有對(duì)數(shù)量小的請(qǐng)求統(tǒng)計(jì)測(cè)試不準(zhǔn)是可以理解的。)具體是什么原因該以后工作留個(gè)疑問(wèn)拟枚,多閱讀多思考薪铜。
對(duì)上minute級(jí)別的大并發(fā)測(cè)試這個(gè)配置項(xiàng)應(yīng)該是準(zhǔn)的。
劃重點(diǎn):
總請(qǐng)求數(shù) = 線程數(shù) * 循環(huán)次數(shù) 每秒請(qǐng)求數(shù) = 總請(qǐng)求數(shù) / ramp-up
加一些自己的理解:
其實(shí)循環(huán)次數(shù)并不是說(shuō)恩溅,執(zhí)行完第一輪之后再執(zhí)行第二輪隔箍。拿循環(huán)次數(shù)為10來(lái)說(shuō),不是1到10一遍一遍的執(zhí)行(執(zhí)行完1遍再執(zhí)行第2遍脚乡、第3遍...第10遍)蜒滩,理解成1到10同時(shí)進(jìn)行就可以了。在啰嗦點(diǎn)奶稠,就是開啟了10個(gè)線程來(lái)執(zhí)行