常見(jiàn)性能測(cè)試工具:
ApacheBench (免費(fèi))
是一個(gè)輕量級(jí)工具。主要用于 HTTP 協(xié)議的性能測(cè)試问芬。非常簡(jiǎn)單快捷悦析。不支持場(chǎng)景化測(cè)試。
ab -n 1 -c 1?https://testxxxx.com/
-n:總請(qǐng)求次數(shù)
-c:并發(fā)次數(shù)(并發(fā)請(qǐng)求不能大于總請(qǐng)求次數(shù))
JMeter (免費(fèi))
Apache 開(kāi)源基金會(huì)提供的完全開(kāi)源的性能測(cè)試工具此衅。
Apache JMeter也可用于測(cè)試靜態(tài)和動(dòng)態(tài)資源强戴,Web動(dòng)態(tài)應(yīng)用程序的性能亭螟。用于模擬服務(wù)器,服務(wù)器組骑歹,網(wǎng)絡(luò)或?qū)ο笊系姆敝刎?fù)載预烙,以測(cè)試其強(qiáng)度或分析不同負(fù)載類型下的總體性能。支持分布式運(yùn)行道媚,JMeter 使用 Java 語(yǔ)言開(kāi)發(fā)的扁掸,使用前需要安裝 Java 運(yùn)行環(huán)境。某些私有協(xié)議可以二次開(kāi)發(fā)插件來(lái)支持相應(yīng)的協(xié)議最域。
LoadRunner(商用)
性能測(cè)試工具谴分,它最初是Mercury公司的產(chǎn)品,2006年Mercury公司被HP收購(gòu)镀脂。
LoadRunner 是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具牺蹄。通過(guò)以模擬上千萬(wàn)用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來(lái)確認(rèn)和查找問(wèn)題,LoadRunner 能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試薄翅。通過(guò)使用LoadRunner 企業(yè)能最大限度地縮短測(cè)試時(shí)間優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布沙兰。因?yàn)槭情]源收費(fèi)的軟件,且授權(quán)費(fèi)用高昂翘魄。使用也較為復(fù)雜鼎天,而且該工具體積比較大。
LR 強(qiáng)調(diào)的是對(duì)整個(gè)企業(yè)應(yīng)用架構(gòu)進(jìn)行測(cè)試暑竟,它通過(guò)模擬實(shí)際用戶的操作行為和實(shí)行實(shí)時(shí)性能監(jiān)控來(lái)幫助客戶更快的確認(rèn)和查找問(wèn)題训措。LR能支持廣泛的協(xié)議,可以為客戶的特殊環(huán)境光羞,提供特殊的解決方案。
Locust (免費(fèi))
使用的分布式用戶負(fù)載測(cè)試工具怀大。它旨在對(duì)網(wǎng)站進(jìn)行負(fù)載測(cè)試纱兑,并確定系統(tǒng)可以處理多少個(gè)并發(fā)用戶。非常易用化借。很方便地基于Python進(jìn)行腳本擴(kuò)展和業(yè)務(wù)請(qǐng)求實(shí)現(xiàn)潜慎。完全基于事件驅(qū)動(dòng),所以不受進(jìn)程和線程的限制蓖康,可以支持發(fā)起更高的并發(fā)數(shù)請(qǐng)求铐炫。可以分布式發(fā)起并發(fā)請(qǐng)求蒜焊。
工具選擇:
1.根據(jù)壓測(cè)場(chǎng)景來(lái)選擇
根據(jù)壓測(cè)場(chǎng)景是什么來(lái)選擇倒信。如果說(shuō)是一次性單接口的場(chǎng)景就可以使用 AB。如果說(shuō)是復(fù)雜事物多接口需要業(yè)務(wù)場(chǎng)景的話泳梆,就會(huì)選擇 JMeter 這類工具可以構(gòu)造豐富的場(chǎng)景能滿足需求鳖悠。
2.我需要提供多大壓力
我要提供多大的壓力榜掌?是1000 QPS還是萬(wàn)級(jí)以上的。壓力很大的話就要考慮壓力測(cè)試工具是否支持分布式乘综,能否快速擴(kuò)展 agent憎账。對(duì)于 JMeter 來(lái)講就很好的支持了。
3.周期性需求
業(yè)務(wù)可能頻繁上線卡辰,服務(wù)隨時(shí)變動(dòng)胞皱。可能會(huì)有一個(gè)周期性需求九妈,按月巡檢反砌。需要一個(gè)場(chǎng)景文件,我可以去做數(shù)據(jù)驅(qū)動(dòng)允蚣,實(shí)時(shí)跟進(jìn)數(shù)據(jù)改變于颖。最后希望結(jié)果落庫(kù)。
4.二次開(kāi)發(fā)的需求
JMeter 開(kāi)源插件化思想嚷兔,支持 Thrift森渐,Dubbo 等多種協(xié)議∶拔可以快速平臺(tái)化同衣。
總結(jié):建議使用Jmeter進(jìn)行壓測(cè)試行為,JMeter有開(kāi)放社區(qū)壶运,有問(wèn)題的時(shí)候能夠快速獲得答案耐齐。