10大主流壓力測試工具推薦

Michaelwubo發表於2018-11-06

 

https://blog.csdn.net/moonpure/article/details/72674374

在移動應用和Web服務正式釋出之前,除了進行必要的功能測試和安全測試,為了保證網際網路產品的服務交付質量,往往還需要做壓力/負載/效能測試。然而很多傳統企業在試水網際網路+的過程中,往往由於資源或產品迭代速度等原因忽視了這一塊工作,導致新產品上線之後頻繁出現卡頓等嚴重影響使用者體驗的問題。那麼網際網路產品為什麼要進行壓力/負載/效能測試,又有哪些工具幫我們實現呢,本文將為您細說端詳。

壓力/負載/效能測試之異同

在產品研發過程中,常常會混淆壓力/負載/效能測試這三者之間的區別,這三種測試到底有什麼不同呢?

壓力測試(StressTesting),也稱為強度測試,通過模擬實際應用的軟硬體環境及使用者使用過程的系統負荷,長時間或超大負荷地執行測試軟體,來測試被測系統的效能、可靠性、穩定性等。壓力測試需要確定一個系統的瓶頸或者不能接收的效能點,來獲得系統能提供的最大的服務級別。通俗地講,壓力測試是為了發現在什麼條件下您的應用程式的效能會變得不可接受。

負載測試(Load Testing)通常被定義為給被測系統加上它所能操作的最大任務數的過程,負載測試有時也會被稱為“容量測試”或者“耐久性測試/永續性測試”,其目標是確定並確保系統在超出最大預期工作量的情況下仍能正常執行。對於WEB應用來講,負載則是併發使用者或者HTTP連線的數量。負載測試通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。在這種測試中,將使測試物件承擔不同的工作量,以評測和評估測試物件在不同工作量條件下的效能行為,以及持續正常執行的能力。

效能測試(PerformanceTesting)的目的不是去找系統Bugs,而是排除系統的效能瓶頸,併為迴歸測試建立一個基準。而效能測試的操作,實際上就是一個非常小心受控的測量分析過程:“執行負載試驗->測度效能->除錯系統”。在理想的情況下,被測應用在這個時候已經是足夠穩定,所以這個過程得以順利進行。效能測試還有另一個目標就是建立一組被測系統的基準資料。應用在網路上的效能測試重點是利用成熟先進的自動化技術進行網路應用效能監控、網路應用效能分析和網路預測。

雖然三種測試的目的截然不同,但其測試操作的環節都是基本一致的,因此一次測試過程中完全可以包含效能測試、負載測試、壓力測試三個方面的內容,所使用的測試工具往往大同小異。

10大主流壓力/負載/效能測試工具推薦

市面上流行的壓力/負載/效能測試工具多是來自國外,同時由於開發的目的和側重點不同,其功能也有很大差異,下面就為您簡單介紹10款目前最常見的測試產品。

1

LoadRunner

LoadRunner是一種預測系統行為和效能的負載測試工具,通過模擬實際使用者的操作行為進行實時效能監測,來幫助測試人員更快的查詢和發現問題。LoadRunner適用於各種體系架構,能支援廣泛的協議和技術,為測試提供特殊的解決方案。企業通過LoadRunner能最大限度地縮短測試時間,優化效能並加速應用系統的釋出週期。

LoadRunner提供了3大主要功能模組:VirtualUser Generator(用於錄製效能測試指令碼),LoadRunner Controller(用於建立、執行和監控場景),LoadRunner Analysis(用於分析效能測試結果)既可以作為獨立的工具完成各自的功能,又可以作為LoadRunner的一部分彼此銜接,與其他模組共同完成軟體效能的整體測試。

詳見:《效能測試入門——LoadRunner使用初探》(http://www.admin5.com/article/20161114/695706.shtml)

LoadRunner官網:https://saas.hpe.com/zh-cn/software/loadrunner

2

Apache JMeter

JMeter作為一款廣為流傳的開源壓測產品,最初被設計用於Web應用測試,如今JMeter可以用於測試靜態和動態資源,例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫、FTP伺服器等等,還能對伺服器、網路或物件模擬巨大的負載,通過不同壓力類別測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能測試和迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正規表示式建立斷言。

JMeter的特點包括對HTTP、FTP伺服器、資料庫進行壓力測試和效能測試;完全的可移植性;完全 Swing和輕量元件支援包;完全多執行緒;快取和離線分析/回放測試結果;可連結的取樣器;具有提供動態輸入到測試的功能;支援指令碼程式設計的取樣器等。在設計階段,JMeter能夠充當HTTP PROXY(代理)來記錄瀏覽器的HTTP請求,也可以記錄Apache等WebServer的log檔案來重現HTTP流量,並在測試執行時以此為依據設定重複次數和併發度(執行緒數)來進行壓測。

參考文章:《雲智慧壓測實戰分享之JMeter工具使用初探》(https://segmentfault.com/a/1190000007922515)

官網連結:http://jmeter.apache.org/

3

NeoLoad

NeoLoad是Neotys出品的一種負載和效能測試工具,可真實地模擬使用者活動並監視基礎架構執行狀態,從而消除所有Web和移動應用程式中的瓶頸。NeoLoad通過使用無指令碼GUI和一系列自動化功能,可讓測試設計速度提高5-10倍,並將維護的指令碼維持在原始設計時間的10%,同時幫助使用者使用持續整合系統自動進行測試。

NeoLoad支援WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技術協議,能夠監控包括作業系統,應用伺服器,Web伺服器,資料庫和網路裝置在內的各種IT基礎設施,同時可以通過Neotys雲平臺發起外部壓力。

官網連結:http://www.neotys.com/product/overview-neoload.html

4

WebLOAD

WebLOAD是來自Radview公司的負載測試工具,它可被用以測試系統效能和彈性,也可被用於正確性驗證(驗證返回結果的正確性)。其測試指令碼是用Javascript(和整合的COM/Java物件)編寫的,並支援多種協議,如Web(包括AJAX在內的REST/HTTP)、SOAP/XML及其他可從指令碼呼叫的協議如FTP、SMTP等,因而可從所有層面對應用程式進行測試。

WebLOAD存在免費和專業兩個版本,免費版本支援50個虛擬使用者,專業版還提供更多的報告和協議供使用者選擇。WebLOAD通常用作QA團隊的獨立執行工具,在開發週期的驗證階段,被測系統(System Under Test,SUT)投入實用之前,在模擬環境中對被測系統進行測試。

官網連結:http://www.radview.com/

5

Loadster

Loadster是一款商用負載測試軟體,用於測試高負載下網站、Web應用、Web服務的效能表現,支援Linux,Mac和Windows等執行環境。

Loadster能夠對Web應用/服務的Cookies、執行緒、標頭檔案、動態表格等元素髮起測試,獲得Web在壓力下的效能、彈性、穩定性和可擴充套件性等方面的表現。

官網連結:http://www.loadsterperformance.com/

6

Load impact

Load impact是一款服務於DevOps的效能測試工具,支援各種平臺的網站、Web應用、移動應用和API測試。Loadimpact可以幫助使用者瞭解應用的最高線上使用者訪問量,通過模擬測試不同線上人數下網站的響應時間,估算出伺服器的最大負載。

Load impact的使用非常簡單,只需要輸入網址進行測試,便可統計出載入網站的一些詳細資料。包括整體載入和站內圖片,javascript, CSS等程式碼載入。可以在右側列表選擇不同檔案來同時對比最多三個物件的載入資料,並生成圖表顯示,方便網站設計者來分析。測試完成之後,網站還可以儲存測試過的統計資料。

官網連結:http://loadimpact.com/

7

CloudTest

CloudTest 是一個集效能和功能測試於一體的綜合壓力測試雲平臺,專為現代網路和移動應用測試而設計開發,CloudTest可以圖形化實現判斷、迴圈,整體減輕了測試開發的工作量,縮短了開發時間。CloudTest基於記憶體的分析引擎,可以實時收集和展示資料,所有資料在3秒內匯聚顯示。

CloudTest採用虛擬化技術,完美的配合公有/私有云計算技術,無需過多的硬體,頻寬資源的投入,人力維護成本幾乎為零,測試按需獲得,遠端接入,適合多團隊協作。各種規模的模擬成本均遠遠優於傳統工具,同時大大縮短了測試周期。

官網連結:https://soasta.com/cloudtest

8

Loadstorm

Loadstorm是一款針對Web應用的雲端負載測試工具,通過模擬海量點選來測試Web應用在大負載下的效能表現。由於採用了雲資源,所以Loadstorm的測試成本非常低,使用者可以在雲端選擇建立自己的測試計劃,測試標準和測試場景。

Loadstorm最多可以生成多達50000個併發使用者,通過數以千計的雲伺服器發起訪問。使用Loadstorm不需要任何指令碼知識,同時提供多樣化的測試圖表和報告模版,用於準確測量Web應用的各項效能指標,如錯誤率,平均響應時間和使用者數量等。Loadstorm可以申請免費試用,但更多壓力和功能需要開通高階帳戶。

官網連結:http://loadstorm.com/

9

阿里雲PTS

阿里雲效能測試(Performance Testing)是一個SaaS效能測試平臺,具有強大的分散式壓測能力,可模擬海量使用者真實的業務場景,讓應用效能問題無所遁形。PTS平臺特色包括提供壓測機,無需安裝軟體;指令碼場景監控簡單化,省時、省力;分散式併發壓測,施壓能力無上限;快速大規模叢集擴容、支援幾十萬使用者及百萬級TPS效能壓測;80%以上使用者基本不需要花費額外的成本。

PTS分為兩個版本,Lite版免費,企業版提供資源包月和按量付費兩種計費方式,按量付費採用階梯價計算,滿足企業客戶多種壓測需求。

官網連結:https://www.aliyun.com/product/pts

10

壓測寶

壓測寶是雲智慧推出的面向真實使用者行為與地域分佈的全鏈路雲端壓力測試平臺,通過雲端伺服器產生真實分散式使用者訪問壓力,模擬來自各地域使用者接入後臺所帶來的真實流量,無限接近生產環境所面臨的各種複雜因素,測量真實的使用者體驗。通過整合雲智慧應用效能管理和監控產品,幫助實現基於真實使用者行為的壓測方案定製、壓測過程中實時定位各環節應用資源及程式碼瓶頸,現場糾錯,分析應用效能肇因。

產品功能特色方面,壓測寶通過獨有的開放架構,支援各種主流網路協議;同時支援手機APP的指令碼錄製方式,可以大大降低壓測指令碼製作的時間和難度。依託壓測寶以及完善的產品線,雲智慧為使用者提供了一站式壓測服務,面向雲端計算時代的複雜應用提供專業效能壓測服務,幫助企業客觀評估應用效能容量,發現全鏈路效能瓶頸,對應用架構的調優及架構容量規劃提供專業諮詢服務,滿足企業靈活多變的業務需求。目前壓測寶已提供高達10萬UV併發級別的壓測服務。

官網連結:http://www.yacebao.com/

以上是市面上比較常見的十款壓力/負載/效能測試工具,其中以Jmeter和Loadrunner為代表的大部分產品屬於傳統防火牆內的壓測,適用於測試內網系統硬體資源以及服務、資料庫在併發條件下的效能表現。阿里雲PTS和CloudTest為代表的第二代壓測產品把壓測機遷移到雲端,通過雲資源在防火牆外部生成規模併發,有效降低了壓測的成本與準備週期,提高了效率。只是由於壓測點限制,國外或阿里的雲壓測產品,很難對國內應用,特別是非阿里環境部署的應用發起有效測試。

為滿足複雜的雲端分散式應用交付場景的壓力測試需求,第三代以雲智慧壓測寶為代表的壓測產品應運而生,從終端使用者行為與體驗的視角來審視應用效能問題,通過與APM整合深度追蹤系統,準確發現影響效能的問題瓶頸

相關文章