8款負(fù)載測(cè)試工具,總有一款適合你
譯文【51CTO.com快譯】大多數(shù)開(kāi)發(fā)人員經(jīng)常進(jìn)行性能測(cè)試,但容易忽視的一種測(cè)試是負(fù)載測(cè)試。
雖然性能測(cè)試與負(fù)載測(cè)試常常換著使用,但兩者不一樣。性能測(cè)試是一種通用的做法:在真實(shí)場(chǎng)景下測(cè)試應(yīng)用程序的響應(yīng)性和穩(wěn)定性。
負(fù)載測(cè)試是性能測(cè)試的一個(gè)特定子集,旨在確定應(yīng)用程序在特定數(shù)量的用戶(hù)同時(shí)使用時(shí)的服務(wù)質(zhì)量。負(fù)載測(cè)試軟件模擬眾多用戶(hù)同時(shí)使用一個(gè)應(yīng)用程序的情形,從而讓你識(shí)別大規(guī)模并發(fā)造成的瓶頸。
比如說(shuō),我注意到博客應(yīng)用程序的用戶(hù)在嘗試編輯自己的內(nèi)容時(shí)遇到了速度減慢,這是我在常規(guī)測(cè)試過(guò)程中從未注意到的問(wèn)題。通過(guò)使用Apache JMeter這款負(fù)載測(cè)試軟件,我發(fā)現(xiàn)了一個(gè)Ruby代碼庫(kù)(gem)導(dǎo)致這項(xiàng)功能減速20%。不借助該軟件,我自己永遠(yuǎn)查不出瓶頸的根源。
負(fù)載測(cè)試似乎是一種明顯的做法,但可能被忽略。如果你每天測(cè)試自己的應(yīng)用程序,很容易忘了這一點(diǎn):你看到的和用戶(hù)看到的可能大不一樣。任何客戶(hù)端-服務(wù)器應(yīng)用程序需要負(fù)載測(cè)試,以便確定其局限性,并改善用戶(hù)體驗(yàn)。
當(dāng)然,你自己的個(gè)人開(kāi)發(fā)環(huán)境與應(yīng)用程序在專(zhuān)業(yè)人員使用期間看到的相去甚遠(yuǎn)。雖然在生產(chǎn)環(huán)境中加載測(cè)試有一些優(yōu)點(diǎn),但復(fù)制自己的環(huán)境或再現(xiàn)客戶(hù)的環(huán)境更現(xiàn)實(shí)更安全。無(wú)論你做什么,都要確保你的測(cè)試環(huán)境未使用PayPal之類(lèi)的第三方插件。許多模塊可模擬應(yīng)用程序的那些方面,但唯一與測(cè)試進(jìn)行交互的應(yīng)該是虛擬用戶(hù)。
最受歡迎的負(fù)載測(cè)試軟件是LoadRunner,但市面上有許多可行的替代方案。下面,我們?cè)u(píng)估了其中幾款負(fù)載測(cè)試軟件套件的優(yōu)缺點(diǎn),以便你評(píng)估哪款最適合自己的要求。
一、免費(fèi)解決方案
Apache JMeter
與大多數(shù)Apache軟件一樣,JMeter也是開(kāi)源的,因而是獨(dú)立開(kāi)發(fā)人員的理想選擇,但對(duì)于每天預(yù)計(jì)有數(shù)千用戶(hù)的應(yīng)用程序而言,它不是那么出色。
優(yōu)點(diǎn):
- 免費(fèi)使用
- 易于設(shè)置,可從任何環(huán)境來(lái)運(yùn)行
- 腳本易于使用和復(fù)制
- 添加插件,即可高度定制
缺點(diǎn):
- 數(shù)據(jù)可視化不方便
- 沒(méi)有分布式測(cè)試;無(wú)法同時(shí)測(cè)試兩個(gè)不同的用例
- 擴(kuò)展性不如高級(jí)測(cè)試套件
Locust
Locust是一款基于Python的負(fù)載測(cè)試軟件。它完全開(kāi)源,讓用戶(hù)可以使用純粹的Python代碼創(chuàng)建自己的測(cè)試套件。
優(yōu)點(diǎn):
- 開(kāi)源
- 使用Python可高度定制,因而非常人性化
缺點(diǎn):
- 沒(méi)有內(nèi)置的可視化服務(wù)
- 創(chuàng)建超過(guò)幾百個(gè)虛擬用戶(hù)時(shí),性能差
Loader.io
Loader.io是一種基于云的負(fù)載測(cè)試服務(wù),提供強(qiáng)大的免費(fèi)版。
優(yōu)點(diǎn):
- 易于使用和理解的基于Web的界面
- 數(shù)據(jù)可視化簡(jiǎn)潔
- 無(wú)需安裝
缺點(diǎn):
- 與收費(fèi)版中無(wú)限制的目標(biāo)主機(jī)相比,免費(fèi)方案只允許一個(gè)目標(biāo)主機(jī)
Gatling
Gatling是另一款開(kāi)源負(fù)載測(cè)試套件。與Locust一樣,它允許使用基于文本的腳本,使用自己的特定域語(yǔ)言。還有名為Gatling FrontLine的收費(fèi)版。
優(yōu)點(diǎn):
- 開(kāi)源
- 易于設(shè)計(jì)自定義測(cè)試腳本
- 一目了然的數(shù)據(jù)可視化
缺點(diǎn):
- 界面不如其他開(kāi)源軟件套件直觀
- 不支持眾多協(xié)議
BlazeMeter
BlazeMeter是一種流行平臺(tái)即服務(wù),旨在與JMeter協(xié)同工作。它能彌補(bǔ)JMeter在擴(kuò)展性和可視化方面的不足,但不是開(kāi)源的。
優(yōu)點(diǎn):
- 出色的可視化和報(bào)告
- 可高度擴(kuò)展
- 與JMeter全面兼容
缺點(diǎn):
- 客戶(hù)支持很慢
鏈接:https://www.blazemeter.com/load-testing
二、收費(fèi)工具
Radview WebLOAD
WebLOAD是市面上歷史最久的負(fù)載測(cè)試軟件套件之一,目前版本是10.3.1。它有一款功能有限的免費(fèi)版,高級(jí)版價(jià)格取決于每天預(yù)計(jì)的虛擬用戶(hù)數(shù)。它的測(cè)試基于JavaScript。
優(yōu)點(diǎn):
- 易于使用和設(shè)置,基于Web的用戶(hù)界面
- 分析結(jié)果顯示清晰,并不雜亂
- RadView提供響應(yīng)迅速的支持
- 雖然沒(méi)有列出價(jià)格,但據(jù)稱(chēng)比其他高級(jí)負(fù)載測(cè)試軟件更具成本效益
缺點(diǎn):
- 目前沒(méi)有錄制功能
- RadView在網(wǎng)站上沒(méi)有顯示標(biāo)價(jià)
鏈接:https://www.radview.com/webload-download/
Micro Focus LoadRunner
LoadRunner是最受歡迎的負(fù)載測(cè)試工具之一,可以說(shuō)是最可靠、用途最廣泛的負(fù)載測(cè)試軟件套件。與WebLOAD一樣,它也有免費(fèi)版;價(jià)格隨運(yùn)行模擬的數(shù)量而增加。
優(yōu)點(diǎn):
- 易于使用和設(shè)置,運(yùn)行起來(lái)很快,不需要服務(wù)器太長(zhǎng)的停機(jī)時(shí)間
- 非常適合多種場(chǎng)景,易于創(chuàng)建多種類(lèi)型的模擬用例
- 一項(xiàng)新的測(cè)試版功能讓它可與JMeter集成
缺點(diǎn):
- 價(jià)格偏高,免費(fèi)版只允許50個(gè)用例
- 數(shù)據(jù)可視化不方便
鏈接:https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview
IBM Rational Performance Tester
Rational Performance Tester是IBM開(kāi)發(fā)的工具,主要用于測(cè)試基于Java的應(yīng)用程序。 IBM為使用軟件許可證提供了好幾種支付方案。
優(yōu)點(diǎn):
- 分布式負(fù)載測(cè)試易于設(shè)置
- 用戶(hù)界面簡(jiǎn)單易用
- 與許多軟件套件相比,可更高效地完成數(shù)據(jù)參數(shù)化
缺點(diǎn):
- 購(gòu)買(mǎi)軟件許可證是復(fù)雜的過(guò)程
- 不支持非HTTP協(xié)議
- 月度許可證的費(fèi)用比許多競(jìng)爭(zhēng)對(duì)手都貴
鏈接:https://www.ibm.com/developerworks/downloads/r/rpt/index.html
SmartBear LoadUI Pro
這款負(fù)載測(cè)試工具出自流行的SoapUI API測(cè)試軟件的開(kāi)發(fā)商之手。它最適合測(cè)試基于SOAP的應(yīng)用程序,是市面上最昂貴的工具之一。
優(yōu)點(diǎn):
- 界面很直觀,可以實(shí)時(shí)配置
- 很容易與SoapUI兼容
- 與亞馬遜云集成
缺點(diǎn):
- 設(shè)置測(cè)試學(xué)起來(lái)費(fèi)勁
- 年度軟件許可證非常昂貴
鏈接:https://smartbear.com/product/ready-api/loadui/overview/
原文標(biāo)題:Load Testing Round Up: 8 tools you can use to strengthen your stack,作者:Noah Heinrich
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】