- 腳本
locust使用寫腳本的方式,方便對(duì)于python有一定基礎(chǔ)的人,可以隨著自己的想法進(jìn)行腳本的編寫
jmeter通過可視化工具,填寫后保存。上手難度低,適合所有人員。 - 運(yùn)行
locust有兩種啟動(dòng),一種通過web模式控制,還有一種通過命令行控制
jmeter有兩種啟動(dòng),一種通過可視化工具控制,還有一種也是通過命令行控制 - 調(diào)試
locust腳本編寫時(shí),幾乎無調(diào)試方式,只能靠運(yùn)行查看,不方便
jmeter腳本編寫時(shí),使用查看結(jié)果樹就能查看到具體的結(jié)果 - 分布式
locust無論是否使用web,分布式執(zhí)行指令即可,可以按照分布機(jī)的情況,控制分布worker的數(shù)量。
jmeter分布式命令行模式控制稍繁瑣,可視化界面需要配置文件中指定機(jī)器,而且https互通時(shí),還需要互相傳遞秘鑰。
綜上,jmeter可以指定運(yùn)行的機(jī)器,但是需要配置。locust被動(dòng)接受運(yùn)行機(jī)器,但是當(dāng)一個(gè)機(jī)器斷開后,不會(huì)重新分配。分布方法都還可以,挺簡單。 - 報(bào)告
locust真的是簡陋,只有tps、響應(yīng)時(shí)間、并發(fā)數(shù)的圖,還有錯(cuò)誤信息,但是80%的信息都包含了,只能滿足可用。
jmeter可以生產(chǎn)html的報(bào)告,乍一看很強(qiáng)大,很詳細(xì),但是可用的數(shù)據(jù)不多,io使用情況以及少量圖表可以借鑒。
綜上,報(bào)告都一般,主要的信息都提供了,其余的需要自己匯總和參考。 - 運(yùn)行時(shí)
主要監(jiān)控消耗的內(nèi)存和cpu數(shù)據(jù)(本機(jī)4核cpu),并產(chǎn)出的壓力tps的值
情況一:模擬一個(gè)簡單的接口,請(qǐng)求就返回,單進(jìn)程,平均響應(yīng)時(shí)間非常快
- locust的web模式:
非分布式:
cpu占用最多24%,內(nèi)存占用50M+,最后產(chǎn)生tps 600+
分布式(3個(gè)):
cpu占用總和最多70%,內(nèi)存占用總和120M+,最后產(chǎn)出的tps 650+ - lucust的命令行模式:
cpu占用最多24%,內(nèi)存占用46M+,最后產(chǎn)生tps 600+
分布式(3個(gè)):
cpu占用總和最多70%,內(nèi)存占用總和110M+,最后產(chǎn)出的tps 650+ - jmeter可視化工具:
cpu占用44%,內(nèi)存占用1250M+,最后產(chǎn)生tps 900+ - jmeter命令行:
cpu占用46%,內(nèi)存占用550M+,最后產(chǎn)生tps 1200+ - 綜上,當(dāng)前情況下,即響應(yīng)快,需要cpu大量參與的情況,jmeter的命令行,優(yōu)勢(shì)非常明顯,而且占用的內(nèi)存比可視化工具少很多,cpu消耗比locust分布式小一些。
情況二:模擬一個(gè)簡單的接口,請(qǐng)求后等待0.05秒才返回,單進(jìn)程
- locust的web模式:
非分布式:
cpu占用18%,內(nèi)存占用50M+,最后產(chǎn)生tps 19.1
分布式(3個(gè)):
cpu占用總和36%,內(nèi)存占用總和120M+,最后產(chǎn)出的tps 19.2 - lucust的命令行模式:
cpu占用17%,內(nèi)存占用46M,最后產(chǎn)生tps 19.2
分布式(3個(gè)):
cpu占用總和35%,內(nèi)存占用總和110M,最后產(chǎn)出的tps 19.4 - jmeter可視化工具:
cpu占用19%,內(nèi)存占用950M+,最后產(chǎn)生tps 19.2 - jmeter命令行:
cpu占用12%,內(nèi)存占用370M+,最后產(chǎn)生tps 19.4 - 綜上,當(dāng)前情況下,即響應(yīng)時(shí)間一般,兩個(gè)工具消耗的cpu相近,內(nèi)存使用jmeter偏高
- 寫在最后
還有很多想比較的地方,待下回分解
總體推薦使用jmeter,但是期望二次開發(fā),兩者都可以,但是個(gè)人喜歡在locust的基礎(chǔ)上,二次開發(fā)。