10大主流壓力/負載/性能測試工具推薦
在移動應用和Web服務正式發布之前,除了進行必要的功能測試和安全測試,為了保證互聯網產品的服務交付質量,往往還需要做壓力/負載/性能測試。然而很多傳統企業在試水互聯網+的過程中,往往由於資源或產品迭代速度等原因忽視了這一塊工作,導致新產品上線之後頻繁出現卡頓等嚴重影響用戶體驗的問題。那麼互聯網產品為什麼要進行壓力/負載/性能測試,又有哪些工具幫我們實現呢,本文將為您細說端詳。
nn壓力/負載/性能測試之異同
nn
在產品研發過程中,常常會混淆壓力/負載/性能測試這三者之間的區別,這三種測試到底有什麼不同呢?
nn- 壓力測試(StressnTesting),也稱為強度測試,通過模擬實際應用的軟硬體環境及用戶使用過程的系統負荷,長時間或超大負荷地運行測試軟體,來測試被測系統的性能、可靠性、穩定性等。壓力測試需要確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大的服務級別。通俗地講,壓力測試是為了發現在什麼條件下您的應用程序的性能會變得不可接受。
- 負載測試(Load Testing)通常被定義為給被測系統加上它所能操作的最大任務數的過程,負載測試有時也會被稱為「容量測試」或者「耐久性測試/持久性測試」,其目標是確定並確保系統在超出最大預期工作量的情況下仍能正常運行。對於WEB應用來講,負載則是並發用戶或者HTTP連接的數量。負載測試通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。在這種測試中,將使測試對象承擔不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續正常運行的能力。
- 性能測試(PerformancenTesting)的目的不是去找系統Bugs,而是排除系統的性能瓶頸,並為回歸測試建立一個基準。而性能測試的操作,實際上就是一個非常小心受控的測量分析過程:「運行負載試驗->測度性能->調試系統」。在理想的情況下,被測應用在這個時候已經是足夠穩定,所以這個過程得以順利進行。性能測試還有另一個目標就是建立一組被測系統的基準數據。應用在網路上的性能測試重點是利用成熟先進的自動化技術進行網路應用性能監控、網路應用性能分析和網路預測。
雖然三種測試的目的截然不同,但其測試操作的環節都是基本一致的,因此一次測試過程中完全可以包含性能測試、負載測試、壓力測試三個方面的內容,所使用的測試工具往往大同小異。
nn10大主流壓力/負載/性能測試工具推薦
nn
市面上流行的壓力/負載/性能測試工具多是來自國外,同時由於開發的目的和側重點不同,其功能也有很大差異,下面就為您簡單介紹10款目前最常見的測試產品。
nn1. nLoadRunner
nnLoadRunner是一種預測系統行為和性能的負載測試工具,通過模擬實際用戶的操作行為進行實時性能監測,來幫助測試人員更快的查找和發現問題。LoadRunner適用於各種體系架構,能支持廣泛的協議和技術,為測試提供特殊的解決方案。企業通過LoadRunner能最大限度地縮短測試時間,優化性能並加速應用系統的發布周期。
LoadRunner提供了3大主要功能模塊:VirtualnUser Generator(用於錄製性能測試腳本),LoadRunner Controller(用於創建、運行和監控場景),LoadRunner Analysis(用於分析性能測試結果)既可以作為獨立的工具完成各自的功能,又可以作為LoadRunner的一部分彼此銜接,與其他模塊共同完成軟體性能的整體測試。
nn詳見:《性能測試入門——LoadRunner使用初探 (性能測試入門--LoadRunner使用初探 - A5創業網 )》
nnLoadRunner官網:https://saas.hpe.com/zh-cn/software/loadrunner
nnnn2. nApache JMeter
nn
JMeter作為一款廣為流傳的開源壓測產品,最初被設計用於Web應用測試,如今JMeter可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、資料庫、FTPn伺服器等等,還能對伺服器、網路或對象模擬巨大的負載,通過不同壓力類別測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。
nnJMeter的特點包括對HTTP、FTP伺服器、資料庫進行壓力/性能測試;完全的可移植性;完全 Swing和輕量組件支持包;完全多線程;緩存和離線分析/回放測試結果;可鏈接的取樣器;具有提供動態輸入到測試的功能;支持腳本編程的取樣器等。在設計階段,JMeter能夠充當HTTP PROXY(代理)來記錄瀏覽器的HTTP請求,也可以記錄Apache等WebServer的log文件來重現HTTP流量,並在測試運行時以此為依據設置重複次數和並發度(線程數)來進行壓測。
nn參考文章:《雲智慧壓測實戰分享之JMeter工具使用初探(雲智慧壓測實戰分享之JMeter工具使用初探 - CloudwiseAPM - SegmentFault )》
nn官網鏈接:Apache JMeter - Apache JMeter?
nn3. nNeoLoad
nnNeoLoad是Neotys出品的一種負載和性能測試工具,可真實地模擬用戶活動並監視基礎架構運行狀態,從而消除所有Web和移動應用程序中的瓶頸。NeoLoad通過使用無腳本GUI和一系列自動化功能,可讓測試設計速度提高5-10倍,並將維護的腳本維持在原始設計時間的10%,同時幫助用戶使用持續集成系統自動進行測試。
NeoLoad支持WebSocket、HTTP1n/ 2、GWT、HTML5、AngularJS、Oracle Forms等技術協議,能夠監控包括操作系統,應用伺服器,Web伺服器,資料庫和網路設備在內的各種IT基礎設施,同時可以通過Neotys雲平台發起外部壓力。
nn
官網鏈接:http://www.neotys.com/product/overview-neoload.html
nn4. nWebLOAD
nnWebLOAD是來自Radview公司的負載測試工具,它可被用以測試系統性能和彈性,也可被用於正確性驗證(驗證返回結果的正確性)。其測試腳本是用Javascript(和集成的COM/Java對象)編寫的,並支持多種協議,如Web(包括AJAX在內的REST/HTTP)、SOAP/XML及其他可從腳本調用的協議如FTP、SMTP等,因而可從所有層面對應用程序進行測試。
WebLOAD存在免費和專業兩個版本,免費版本支持50個虛擬用戶,專業版還提供更多的報告和協議供用戶選擇。WebLOAD通常用作QA團隊的獨立運行工具,在開發周期的驗證階段,被測系統(System Under Test,SUT)投入實用之前,在模擬環境中對被測系統進行測試。
nn官網鏈接:Load Testing & Website Performance Testing Tools
nnnn5. nLoadster
nnLoadster是一款商用負載測試軟體,用於測試高負載下網站、Web應用、Web服務的性能表現,支持Linux,Mac和Windows等運行環境。
Loadster能夠對Web應用/服務的Cookies、線程、頭文件、動態表格等元素髮起測試,獲得Web在壓力下的性能、彈性、穩定性和可擴展性等方面的表現。
nn官網鏈接:Load & Stress Testing Software for High-Performance Web Apps
nn6. nLoad impact
nnLoad impact是一款服務於DevOps的性能測試工具,支持各種平台的網站、Web應用、移動應用和API測試。Loadnimpact可以幫助用戶了解應用的最高在線用戶訪問量,通過模擬測試不同在線人數下網站的響應時間,估算出伺服器的最大負載。
Load impact的使用非常簡單,只需要輸入網址進行測試,便可統計出載入網站的一些詳細數據。包括整體載入和站內圖片,javascript, CSS等代碼載入。可以在右側列表選擇不同文件來同時對比最多三個對象的載入數據,並生成圖表顯示,方便網站設計者來分析。測試完成之後,網站還可以存儲測試過的統計數據。
nn官網鏈接:Performance testing for DevOps
nn7. nCloudTest
nn
CloudTest 是一個集性能和功能測試於一體的綜合壓力測試雲平台,專為現代網路和移動應用測試而設計開發,CloudTest可以圖形化實現判斷、循環,整體減輕了測試開發的工作量,縮短了開發時間。CloudTest基於內存的分析引擎,可以實時收集和展示數據,所有數據在3秒內匯聚顯示。
CloudTest採用虛擬化技術,完美的配合公有/私有雲計算技術,無需過多的硬體,帶寬資源的投入,人力維護成本幾乎為零,測試按需獲得,遠程接入,適合多團隊協作。各種規模的模擬成本均遠遠優於傳統工具,同時大大縮短了測試周期。
nn官網鏈接:Cloud Load Testing Tools & Software
nn8. nLoadstorm
nnLoadstorm是一款針對Web應用的雲端負載測試工具,通過模擬海量點擊來測試Web應用在大負載下的性能表現。由於採用了雲資源,所以Loadstorm的測試成本非常低,用戶可以在雲端選擇創建自己的測試計劃,測試標準和測試場景。n
Loadstorm最多可以生成多達50000個並發用戶,通過數以千計的雲伺服器發起訪問。使用Loadstorm不需要任何腳本知識,同時提供多樣化的測試圖表和報告模版,用於準確測量Web應用的各項性能指標,如錯誤率,平均響應時間和用戶數量等。Loadstorm可以申請免費試用,但更多壓力和功能需要開通高級帳戶。
nn官網鏈接:Load test your app with LoadStorm to measure scalability!
9. n阿里雲PTS
nn阿里雲性能測試(Performance Testing)是一個SaaS性能測試平台,具有強大的分散式壓測能力,可模擬海量用戶真實的業務場景,讓應用性能問題無所遁形。PTS平台特色包括提供壓測機,無需安裝軟體;腳本場景監控簡單化,省時、省力;分散式並發壓測,施壓能力無上限;快速大規模集群擴容、支持幾十萬用戶及百萬級TPS性能壓測;80%以上用戶基本不需要花費額外的成本。
PTS分為兩個版本,Lite版免費,企業版提供資源包月和按量付費兩種計費方式,按量付費採用階梯價計算,滿足企業客戶多種壓測需求。
nn官網鏈接:性能測試_性能測試工具_壓力測試_負載測試_阿里雲
nnnn10. 壓測寶
nn壓測寶是雲智慧推出的面向真實用戶行為與地域分布的全鏈路雲端壓力測試平台,通過雲端伺服器產生真實分散式用戶訪問壓力,模擬來自各地域用戶接入後台所帶來的真實流量,無限接近生產環境所面臨的各種複雜因素,測量真實的用戶體驗。通過集成雲智慧應用性能管理和監控產品,幫助實現基於真實用戶行為的壓測方案定製、壓測過程中實時定位各環節應用資源及代碼瓶頸,現場糾錯,分析應用性能肇因。
nn產品功能特色方面,壓測寶通過獨有的開放架構,支持各種主流網路協議;同時支持手機APP的腳本錄製方式,可以大大降低壓測腳本製作的時間和難度。依託壓測寶以及完善的產品線,雲智慧為用戶提供了一站式壓測服務,面向雲計算時代的複雜應用提供專業性能壓測服務,幫助企業客觀評估應用性能容量,發現全鏈路性能瓶頸,對應用架構的調優及架構容量規劃提供專業諮詢服務,滿足企業靈活多變的業務需求。目前壓測寶已提供高達10萬UV並發級別的壓測服務。
nn
官網鏈接:壓力測試必備工具_網站/APP性能壓力測試軟體【壓測寶】
以上是市面上比較常見的十款壓力/負載/性能測試工具,其中以Jmeter和Loadrunnern為代表的大部分產品屬於傳統防火牆內的壓測,適用於測試內網系統硬體資源以及服務、資料庫在並發條件下的性能表現。阿里雲PTS和CloudTest為代表的第二代壓測產品把壓測機遷移到雲端,通過雲資源在防火牆外部生成規模並發,有效降低了壓測的成本與準備周期,提高了效率。只是由於壓測點限制,國外或阿里的雲壓測產品,很難對國內應用,特別是非阿里環境部署的應用發起有效測試。
nn為滿足複雜的雲端分散式應用交付場景的壓力測試需求,第三代以雲智慧壓測寶為代表的壓測產品應運而生,從終端用戶行為與體驗的視角來審視應用性能問題,通過與APM整合深度追蹤系統,準確發現影響性能的問題瓶頸。
推薦閱讀:
※想要成為一個性能測試工程師需要掌握哪些知識?
※實驗:Robot Framework(四):HTTP協議級介面測試
※5天2億活躍用戶,2017QQ「LBS+AR」天降紅包活動後台揭密
※如何做一份精緻的性能測試報告?