當我們做性能測試的時候,測試協(xié)議需要用到性能測試工具。市場上有很多可以做性能測試的工具。有些是收費的,有些是開源免費的。選擇的時候它是否友好支持所有的協(xié)議呢?現(xiàn)在帶大家來看看一些行業(yè)中常用的流行的性能測試工具。
ApacheBench 是一個輕量級工具。主要用于 HTTP 協(xié)議的性能測試。非常簡單快捷。不支持場景化測試。
ab是個小巧而簡便容易上手的工具,但是沒有圖形化的界面,提供的也是基本的性能參數(shù),不能監(jiān)控,一般用于臨時測試某個接口的效率。
ab -n 1 -c 1 https://testerhome.com/
- -n:總請求次數(shù)
- -c:并發(fā)次數(shù)(并發(fā)請求不能大于總請求次數(shù))
JMeter 是 Apache 開源基金會提供的完全開源的性能測試工具,旨在加載測試功能行為和衡量性能。它最初是為測試Web應(yīng)用程序而設(shè)計的,但此后已擴展到其他測試功能。
Apache JMeter也可用于測試靜態(tài)和動態(tài)資源,Web動態(tài)應(yīng)用程序的性能。用于模擬服務(wù)器,服務(wù)器組,網(wǎng)絡(luò)或?qū)ο笊系姆敝刎撦d,以測試其強度或分析不同負載類型下的總體性能。支持分布式運行,JMeter 使用 Java 語言開發(fā)的,使用前需要安裝 Java 運行環(huán)境。某些私有協(xié)議可以二次開發(fā)插件來支持相應(yīng)的協(xié)議。
LoadRunner是一個性能測試工具,它最初是Mercury公司的產(chǎn)品,2006年Mercury公司被HP收購。
LoadRunner 是一種預(yù)測系統(tǒng)行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發(fā)負載及實時性能監(jiān)測的方式來確認和查找問題,LoadRunner 能夠?qū)φ麄€企業(yè)架構(gòu)進行測試。通過使用LoadRunner 企業(yè)能最大限度地縮短測試時間優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布。因為是閉源收費的軟件,且授權(quán)費用高昂。使用也較為復(fù)雜,而且該工具體積比較大。
LR 強調(diào)的是對整個企業(yè)應(yīng)用架構(gòu)進行測試,它通過模擬實際用戶的操作行為和實行實時性能監(jiān)控來幫助客戶更快的確認和查找問題。LR能支持廣泛的協(xié)議,可以為客戶的特殊環(huán)境,提供特殊的解決方案。
Locust 是易于使用的分布式用戶負載測試工具。它旨在對網(wǎng)站進行負載測試,并確定系統(tǒng)可以處理多少個并發(fā)用戶。非常易用。很方便地基于Python進行腳本擴展和業(yè)務(wù)請求實現(xiàn)。完全基于事件驅(qū)動,所以不受進程和線程的限制,可以支持發(fā)起更高的并發(fā)數(shù)請求??梢苑植际桨l(fā)起并發(fā)請求。
nGrinder 是一個用于在多臺機器上運行用 jython(在 JVM 上運行的 python)編寫的測試腳本的應(yīng)用程序。它的內(nèi)部引擎是基于 Grinder。nGrinder 分別用 controler 和 agent 將 Grinder 的 controler 和 agent 包裝起來,并擴展了支持多個并發(fā)測試的特性。
nGrinder是一個壓力測試的平臺,使您可以同時執(zhí)行腳本創(chuàng)建,測試執(zhí)行,監(jiān)視和結(jié)果報告生成器。提供了進行壓力測試的簡便方法。
看到這么多的工具,我在做一個性能測試任務(wù)的時候該怎么選擇呢?
1.根據(jù)壓測場景來選擇
根據(jù)壓測場景是什么來選擇。如果說是一次性單接口的場景就可以使用 AB。如果說是復(fù)雜事物多接口需要業(yè)務(wù)場景的話,就會選擇 JMeter 這類工具可以構(gòu)造豐富的場景能滿足需求。
2.我需要提供多大壓力
我要提供多大的壓力?是1000 QPS還是萬級以上的。壓力很大的話就要考慮壓力測試工具是否支持分布式,能否快速擴展 agent。對于 JMeter 來講就很好的支持了。
3.周期性需求
業(yè)務(wù)可能頻繁上線,服務(wù)隨時變動??赡軙幸粋€周期性需求,按月巡檢。需要一個場景文件,我可以去做數(shù)據(jù)驅(qū)動,實時跟進數(shù)據(jù)改變。最后希望結(jié)果落庫。
4.二次開發(fā)的需求
JMeter 開源插件化思想,支持 Thrift,Dubbo 等多種協(xié)議??梢钥焖倨脚_化。
最后是社區(qū)問題支持:JMeter 開放社區(qū),廣泛使用。有問題的時候能夠快速獲得答案。
基于我們這些需求點,就選擇使用 JMeter 作為壓測工具。
然后另外一個觀點是:我們不用在乎工具是什么語言寫的,市場情況如何。我們用工具就是要實現(xiàn)對系統(tǒng)的壓力。如果工具能實現(xiàn)壓力,它就實現(xiàn)了我們的性能測試工具想要的東西。并且在性能測試工具當中我們只要關(guān)注兩條曲線:一個是 TPS、一個是響應(yīng)時間。
能看懂性能曲線才是我們性能測試工程師的能力。而不是我們用什么測試工具,有多熟練工具。因為熟練只是一個開始。不管你是用什么樣的性能測試工具,我們都會看到一些數(shù)據(jù)。這些數(shù)據(jù)我們要知道帶給我們什么樣的含義?后續(xù)做什么樣的分析。所以這是性能測試工具可以給我們提供的東西。也是性能測試工具的意義。
本文為企業(yè)推廣,本網(wǎng)站不做任何建議,僅提供參考,作為信息展示!
推薦閱讀:尋找iphone在哪里
網(wǎng)友評論
請登錄后進行評論|
0條評論
請文明發(fā)言,還可以輸入140字
您的評論已經(jīng)發(fā)表成功,請等候?qū)徍?/p>
小提示:您要為您發(fā)表的言論后果負責(zé),請各位遵守法紀注意語言文明