「html
本文列出了 14 種針對應用程序性能監控與負載測試的工具,以幫助您構建和維護具備高性能和高可靠性的系統。前端
衆所周知,性能測試能夠揭示一個系統在各類狀況下的行爲與響應方式。某個系統在 1,000 個併發用戶下可以運行穩健,並不等於它在面對 100,000 個併發用戶時,仍能運行正常。數據庫
所以咱們在系統性能方面,主要着眼於三個主要目標:apache
速度編程
可擴展性後端
穩定性瀏覽器
在此,咱們列出了 14 種針對應用程序性能監控與負載測試的工具,以幫助您構建和維護具備高性能和高可靠性的系統。ruby
注意,雖然它們中的一些是開源的,可是絕大多數會在提供免費試用的基礎上,有着對應的付費版本。服務器
AgileLoad網絡
http://www.agileload.com/
AgileLoad 是一個企業級的性能測試解決方案,可用於優化 Web 應用的性能。
AgileLoad 號稱可以提升您的投資回報率和生產力,使您可以更快地執行測試,而且可以提供對於測試結果的深刻分析,以及對於全部新技術的全面支持。
目前,從使用了最新 Web 2.0 技術的應用程序、到經典的客戶端/服務器(C/S)模式、以及重客戶端的應用,它都可以成功地提供深刻的性能診斷。
主要特色:
直觀的圖形界面使您能夠捕獲和設計複雜的業務場景。
能自動檢測和分析性能問題。
提供高度定製化的腳本和報告引擎。
支持對整個應用程序生命週期的性能測試。
可以針對普遍的應用程序和協議開展測試。
可使用各類 Web 2.0 技術,來記錄和重放 RIA(Rich Internet Application,富網絡應用)。
經過對系統和最終用戶的監控,生成可測量且可重複的負載。
可以自動記錄測試場景。
可以使用 Agileload 的負載注入引擎,來模擬真實的用戶負載。
可以在 Windows(2003 及更高版本)下運行,並與全部的 Web 瀏覽器兼容。
售價:
免費版:經過 10 個虛擬用戶,來構建全部的測試場景。
按需付費版:經過租用 50 到 10000 個虛擬用戶,來給 Agileload「賦能」。
不同凡響之處:
其免費版或「入門級套件」容許用戶快速上手該工具。
經過自動建模,來大幅減小針對同一應用的後續測試用例的腳本編寫時間。
提供端到端的診斷功能:該工具不只可以監控前端,還能監控後端,並檢測其性能降低的緣由。
其異常檢測和建議功能,有助於快速識別並解決性能瓶頸。
具有可配置的報告選項,可適用於不一樣的受衆羣體。
Apache JMeter
https://jmeter.apache.org/
做爲負載測試工具界的實際標準與「王者」,Apache JMeter 是一款開源且全面基於 Java 的應用。
經過自帶的圖形界面,它可以分析並衡量 Web 應用及各類服務的性能與負載行爲。
JMeter 可以讓您開展諸如:性能、負載、壓力、迴歸和功能性測試等活動,以便針對 Web 服務器得到準確的性能指標。
該工具支持變量參數化、各類斷言(響應驗證)、基於線程的 Cookie、配置變量、以及各類報告。
不過,JMeter 的用戶會嚴重依賴於各類插件,畢竟它的大多數「開箱即用」的功能都是經過插件來實現的。
主要特色:
提供友好的 GUI:JMeter 帶有一個簡單的交互式 GUI。
獨立於平臺:JMeter 是使用 Java 編寫和開發的,所以它能夠在諸如:Windows、Linux、Mac 等任何支持 Java 虛擬機的環境內或工做站上運行。
支持多種服務器類型,包括:Web(HTTP、HTTPS、SOAP),數據庫(JDBC、LDAP、JMS)和電子郵件(POP3)。
支持多種協議,包括:HTTP、JDBC、LDAP、SOAP、JMS 和 FTP。
經過虛擬用戶或模擬多個用戶,來對正在測試的 Web 應用產生大量的負載。
其多線程框架容許一到多個線程組,同時對不一樣函數進行採樣。
支持遠程分佈式測試:JMeter 使用主/從的概念進行分佈式測試,其中主服務器會在全部從服務器之間分配測試任務,而從服務器會針對目標服務器執行各類測試腳本。
可使用諸如:圖形、表格、樹和報告等格式,來查看測試結果。
售價:
免費/開源。
不同凡響之處:
JMeter 擁有一個很是龐大的社區和無窮的資源,可以與市場上幾乎全部的性能測試工具相集成。
易於安裝:能夠安裝在 Windows、Mac 或 Linux 等任何桌面系統上。
其 IDE 容許用戶從瀏覽器或本機應用上記錄測試數據。
擁有隨時可用的插件,例如:用於數據分析的可視化插件。
Appdynamics
https://www.appdynamics.com/
做爲一款領先的測試工具,AppDynamics 能夠幫助用戶分析、優化和預測複雜系統中的瓶頸。用戶能夠將其用在本地、測試環境、產品部署期間、以及雲端。
它擁有針對 .Net、Node JS、PHP、Java、C ++、Python、Apache Web Server 和 GoLang 的代理。用戶能夠用它來實時監控各類應用程序、業務、以及最終用戶。
AppDynamics 號稱其平臺可幫助您經過更加智能的績效管理方法,將應用性能、客戶體驗與業務成果聯繫起來。
主要特色:
具備代碼級的可視性。
提供動態基線和強大的警報服務。
提供應用性能管理的代理。
可以保存數據。
能夠監控多個平臺。
可以解決生產環境中的性能問題。
提供隨時間推移的數據庫性能趨勢。
可在大容量的環境中提供持續監控。
即裝即用。
提供數據庫代理。
具備服務器可視性。
提供綜合監控。
能對移動端的真實用戶提供監控。
能對瀏覽器的真實用戶監控。
售價:
分爲三個層次:APM Pro、APM Advanced 和 APM Peak,供應商提供不一樣售價。
不同凡響之處:
經過統一的分析功能,確保企業得到實用的信息。
AppDynamics 採用稱爲統一監控的創新方法,將各類 AppDynamics 應用程序整合到一個強大的解決方案中,以幫助用戶肯定致使性能問題的確切來源。
BlazeMeter
https://www.blazemeter.com/
BlazeMeter 是一家提供「性能和負載測試即服務」的供應商。它提供了一個全新且完整的持續測試平臺,能夠幫助企業實現向左移動(shift-left)。
BlazeMeter 的 Web 界面,可用於建立靜態負載測試,以及經過運行 JMeter 腳原本進行的動態負載測試。
BlazeMeter 的主要優點之一是它的「企業」功能(即,頂級的開源負載測試應用),其中包括:分佈式測試、實時報告、與開發人員工具的集成、對持續集成(CI)和應用性能的監控(APM)。
主要特色:
能與 Apache JMeter 徹底兼容。
可建立多可達 100 萬併發用戶的測試。
能在數分鐘內完成測試。
可運行無腳本的測試、或上傳 URL 列表。
可在雲端或本地運行。
可在多個地理位置運行測試。
可在真實設備上模擬移動端測試。
可經過腳本和報告共享的方式,來促進團隊協做。
提供多種工具支持。
能與領先的 CI 和 APM 工具相集成。
支持專業的服務。
提供負載測試結果的實時詳細報告。
可爲已測試的應用行爲設置 KPI。
提供桌面和移動端的用戶體驗監控。
售價:
免費版:50 個併發用戶
基本版:99 美圓每個月(1000 個併發用戶)*
專業版:499美圓每個月(5000 個併發用戶)*
無限版:需向供應商索取售價*(*爲年度訂價)
不同凡響之處:
BlazeMeter 經過簡單易用的界面和直觀的圖表,讓用戶實時查看到測試的結果,並能輕鬆地比較多種測試。
它具備靈活的訂價,可適應以小時、月或年爲單位的使用量。無需支付設置或維護的費用。
BlazeMeter 的專業服務團隊能夠幫助用戶設置、甚至運行性能測試。
Dynatrace
https://www.dynatrace.com/
Dynatrace 是一種被普遍使用的應用程序性能管理工具。它具備可用於監控 Java 和 .net 應用程序的高級功能,可協助用戶輕鬆地識別出應用程序中的瓶頸與錯誤。
經過使用 PurePath 技術,Dynatrace 可以在瀏覽器中,提供橫跨全部層次、以及數據庫端到端事務級的詳細信息。
特別是在代碼級別、以及調用外部服務的事務中,它可以經過詳細信息,來協助發現性能問題。
該工具能夠檢測響應時間、事務速率、吞吐量、以及在系統使用中出現的異常狀況。
主要特色:
支持全棧發現。
具備全棧性能管理功能。
具備可視化的應用架構。
提供人工智能分析。
具備大規模的自我修復能力。
可以檢測 vMotion 事件。
提供數字體驗管理。
提供容器、雲和基礎架構的管理。
售價:
Dynatrace 提供免費試用,具體售價需聯繫供應商。
不同凡響之處:
Dynatrace 可以提供大數據分析。
DevOps 團隊能夠優化人工智能相關技術,以尋找可操做性的分析與答案。
可對多達 100,000 臺主機進行自動監控。
Flood
https://flood.io/load-performance-testing-tool/
由 Tricentis 推出的負載測試平臺 Flood,可以讓您使用本身喜歡的開源工具(包括 JMeter、Gatling 和 Selenium),來進行全局化分佈式性能測試。
經過擴展 Flood 的負載,用戶能夠在任何給定時間得到最大數量的併發性和吞吐量,進而得到彙總的實時報告。
主要特色:
可以以自主的方式模擬數千個用戶,並按需向數十萬的用戶級別進行擴展。
在與 JMeter 或 Gatling 徹底兼容的前提下,可執行簡單的 URL 測試或更高級的測試計劃。
可以提供功能強大且簡單的 ruby-JMeter DSL(特定域的語言)。
可自建網格:用戶可按需使用 Dynatrace 網格節點、或託管本身的網格節點。
能使用 JSON 或 CSV 格式的原始數據,準確地報告單事務級別的描述性統計信息。
僅爲使用的測試負載架構付費,無需按照測試或模擬的用戶數付費
可以使用自定義的顏色和圖標進行標記,用戶能夠在本身的域中共享測試結果。
可將測試結果與 New Relic、以及 Flowdock 等其餘雲服務集成。
售價:
團隊版:50 個節點小時,299 美圓每個月。
企業版:需向供應商獲取訂價信息。
不同凡響之處:
因爲獨立於工具平臺,所以可與新的工具相集成。
無羣集、無共享架構,可擴展爲大型測試。突破了傳統設置中的典型瓶頸。
實時的報告和交互式的儀表板,更直觀、更易於共享。
能長期存儲測試結果,以便用戶不斷地評估性能。
Gatling Frontline
https://gatling.io/
Gatling 是一個基於 Scala、Akka 和 Netty 的開源負載和性能測試框架。該工具可用於分析和測量各類服務的性能,並能重點關注 Web 應用。
爲了促進連續性測試,它能夠經過與其餘構建工具的集成,以提供更多的網絡記錄器和報告類型。其付費企業版 Gatling Front Line,可以提供更高級的分析與集成。
主要特色:
具備獨立的 HTTP 代理記錄器。
提供基於 Scala 的腳本。
可用於測試開發用戶友好的自解釋性 DSL。
其異步非阻塞引擎(Asynchronous non-blocking engine),可實現優良性能。
支持 HTTP(S)協議,也可用於對 JDBC 和 JMS 的負載測試。
提供驗證和斷言。
可以提供全面的 HTML 報告。
售價:
其開源版本是免費的。
Frontline On-premises:不限制測試,起價 400€ 每個月。
Frontline Cloud/based:不限制測試,起價爲 3 歐元每小時。
不同凡響之處:
因爲是用 Scala 編寫的,所以 Gatling 能夠在任何系統上運行,它既能夠在本地計算機上,也能夠在雲服務器上運行和建立各類測試。
其自帶的儀表板可直觀地反映測試結果,而無需添加任何插件。同時,它產生的報告採用易於過後分析的 HTML 文件格式。
它經過一個集成的斷言 API,提供執行功能性斷言的完整工具庫。該 API 容許用戶運行不一樣類型的功能性檢查、以及性能測試。
因爲 Gatling 定義了一種特定域的語言,所以用戶能夠編寫很是清晰且易讀的測試用例。
Load Impact
https://loadimpact.com/
Load Impact 是一種雲服務。它可以經過本地測試、迴歸測試、雲端測試和 A/B 測試等方式,來測試網站、應用程序和 API 的性能。
您只須要在 ES6 JavaScript 中編寫測試代碼,或使用 Load Impact GUI 生成測試所需的 JavaScript,即可轉換爲現有的 Postman 集合、並進行 JMeter 測試。
固然,您也可使用 CLI 在本地計算機、或雲端測試分佈在多個地理位置的應用。
主要特色:
可觸發多達 120 萬個併發用戶的大規模負載測試。
無需安裝許可證或其餘軟件,即可實現按需訪問。
支持任何基於 HTTP 的應用程序或服務。
經過客戶端和網絡仿真,來實現移動測試。
支持多地域的分佈式負載測試。
提供 API 測試。
附帶自動化的高級腳本。
提供服務器監控。
提供易用的場景記錄器。
可以模擬瀏覽器。
可添加額外的 IP。
提供 Jenkins 和 TeamCity 插件。
支持測試檔案。
提供 REST API。
提供 Java 和 Python SDK。
具備實時的數據和儀表板。
提供專業的服務和支持。
可以按照每日、每週、每個月來安排測試。
具備交互式圖表。
可以加載腳本 API(例如 JSON 和 XML 解析等)。
售價:
免費試用。
可根據雲端或本地的執行方式來改變計劃。
不同凡響之處:
真實負載測試:Load Impact 可以運行反映現實狀況的負載測試。
全局負載:在單個測試中,Load Impact 能夠同時從世界上多達 10 個不一樣的地理位置生成負載。
重度測量:Load Impact 在計算每一個傳輸資源的響應率方面作足了「功課」。客戶能夠籍此得到高質量的分析,進而定位並解決問題。此外,Load Impact 還能夠檢測 CPU 與內存的使用率、磁盤與網絡的 I/O。
LoadUI Pro
https://www.soapui.org/professional/loadui-pro.html
LoadUI 是一款主要針對在 Windows、Linux 和 Mac OS 上運行的 Web 服務,進行負載測試的軟件。
爲了測試 API 的速度和可擴展性,它容許用戶在發佈到生產環境以前,預覽 API 的性能行爲,並將性能分析進行「左移」(shift left)。
由 SoapUI 提供的 LoadUI Pro 只需單擊,即可將 SoapUI 的測試重用爲負載測試。
主要特色:
提供基於雲端 API 的負載測試。
可重用現有的功能性測試:在不一樣的負載測試場景下,可以使用現有的 SoapUI Pro 測試。
對於全面的 API 負載測試,LoadUI Pro 提供了預構建的加載策略,您能夠按需進行配置。
提供並行的 API 負載測試:經過同時運行多個負載測試場景,以瞭解在各類條件下,目標 API 的性能。
提供隔離負載測試:經過 ServiceV Pro 或 VirtServerto,LoadUI Pro 能夠針對虛擬化資產採起復雜的加載方案,以便最終測試結果不會受到第三方 API 的影響。
其服務器監控服務能夠幫助用戶,診斷出那些致使延遲和瓶頸的資源。
售價:
LoadUI Pro Small,固定式許可證:每一年 4,999 美圓。
LoadUI Pro Medium,固定式許可證:每一年 9,999 美圓。
ReadyAPI,固定式或靈活式許可證:需聯繫供應商詢價。
不同凡響之處:
使用 6 種內置的策略,來模擬各類類型的負載。
支持自動生成數據,和從數據庫或 CSV 中捕獲數據,並將這些數據連接到用戶的測試中。
可以兼容 SoapUI 測試。
NeoLoad
https://www.neotys.com/neoload/overview
專爲 Web 和移動應用程序而設計的 NeoLoad,是一款功能強大的負載與性能測試軟件解決方案,它能夠模擬大量用戶,並分析目標服務器的行爲。
NeoLoad 經過監控模塊來識別性能的瓶頸,進而在生產環境出現嚴重問題以前予以糾正。
它能夠協助用戶部署各類使用到 Flex、Silverlight、GWT、Ajax Push、WebSocket 和 GoogleSPDY 等最新技術的外網、內網、以及移動應用。
主要特色:
可以支持普遍的技術。
提供無腳本的設計和可視化的編程。
支持實時調試和監控。
支持高負載。
支持網絡虛擬化。
帶有設備與瀏覽器的模擬器。
支持雲平臺。
普遍地支持對於基礎設施的監控。
提供詳細的報告和深刻的結果分析。
用戶能夠共享測試結果、設計和虛擬用戶池,以實現輕鬆的協做。
提供多種集成和 API。
售價:
免費版:適用於運行少許負載、以及性能測試的開發與測試人員。
標準版:一個測試人員單次只能測試一個應用程序。*
專業版:適用於一次僅測試一個應用程序的團隊。*
企業版:適用於同時測試多個應用程序的組織。*
VUH 版:適用於須要測試具備靈活許可證的大規模組織。*(*請聯繫供應商瞭解具體價格信息)
不同凡響之處:
支持桌面和移動設備的全部標準,提供針對 RIA 的性能測試。
可以監控市面上的全部主流服務器。
企業級提供高效、且可無擴展限制的基礎架構監控功能,能與 APM 工具集成。
做爲一款易用的負載測試工具,它支持:無腳本測試的建立、GUI 驅動的設計、以及自動化的參數。
提供靈活、且低成本許可證與維護選項。
New Relic
https://newrelic.com/
New Relic 是一種 Web 應用性能服務,它旨在與用戶的 Web 應用開展實時協做。
不管是物理數據中心,仍是數千個 Amazon Elastic Compute Cloud(Amazon EC2)或 Microsoft Azure 的實例,New Relic Infrastructure 都可以經過靈活、動態的服務器監控,讓運營團隊針對複雜系統作出明智的決策。
您能夠在 New Relic 中查看應用程序的重要性能數據,例如:按照地理位置和瀏覽器類型,來獲悉響應時間和實時的 Web 事務。
主要特色:
易於設置實時的指標和分析。
具備靈活的儀表板。
可以將應用程序的性能與最終用戶的體驗相關聯。
可以鏈接應用程序與基礎架構。
可提供豐富、詳細的交易數據。
經過按需診斷的工具,來進行實時的錯誤分析。
可以與 DevOps 工具相集成。
提供各類雲服務工具。
可以按需擴容。
售價:
價格取決於實例的大小、數量和運行的總時間。
不同凡響之處:
適用於全部不一樣的 Web 開發語言,無兼容性問題
做爲一種雲服務,您能夠隨時隨地訪問到。
經過直觀的性能指標儀表板,您能夠基於「瀏覽器頁面加載時間」,來深刻了解各類實例在執行 Web 應用、網絡、處理 DOM、呈現頁面時所需的時間。
OctoPerf
https://octoperf.com/
做爲負載測試工具,OctoPerf 可以帶來完整的 Web 用戶體驗。它的 SaaS 負載測試解決方案、和本地部署的企業版都帶有 Web UI。
您能夠經過設置加載策略,執行負載測試,來獲取 Web 瀏覽器的相應分析。OctoPerf 擁有一個硬核的敏捷開發團隊。
他們提供了各類文檔、視頻教程、方法培訓、以及實時聊天式的用戶支持。
主要特色:
全面支持 Apache JMeter。
可以自動關聯框架。
帶有無代碼的腳本引擎。
提供雲端和本地的部署負載的注入。
提供免費且無限制的服務器監控引擎。
可以實時且自定義地導出分析報告。
提供結果趨勢與比較。
經過工做臺來支持協做。
提供細粒度的服務水平協議(SLA)。
提供與 APM 的集成。
提供 Jenkins 集成和 REST API。
售價:
免費版:50 個併發用戶,無限測試,提供 2 個負載生成器。
基本版:1,000 個併發用戶,每一年 200 個測試,無限負載生成器,99€ 每個月。*
專業版:3,000 個併發用戶,每一年 250 個測試,無限負載發生器,499€ 每個月。*
按需版:支持儘量多的併發用戶與測試(可聯繫供應商瞭解價格信息)。(*爲年度訂價)
不同凡響之處:
經過 OctoPerf 的監控和由 APM 集成監控的特定網絡接口、數據庫、甚至是操做系統的流程,讓用戶深刻了解服務器端發生的狀況。
與其餘 SaaS 負載測試解決方案相比,OctoPerf 爲用戶提供了全面集成的解決方案。從設計到分析,用戶能夠在其 Web 界面中執行全部的操做。
容許用戶經過圖形腳本引擎,輕鬆地建立真實的測試。用戶只需點擊幾下,即可處理各類動態參數,進而導入任何 JMeter JMX 文件或 Http Archive。
Redline 13
https://www.redline13.com/blog/
RedLine 13 專一於將連續的負載測試帶入雲端。它提供了一種命令和控制式的架構,可經過使用 Amazon Web Services(AWS)雲技術,來大規模地存儲、規劃、啓動、監控和報告各類性能測試。
主要特色:
可構建打包,自定義與重複測試,輕鬆地交付 QA,來簡化測試流程。
經過雲端和本地配置的相關控制,來徹底管控 AWS 環境中各項測試。
爲方便起見,全部 RedLine 13 用戶的負載測試都會獲得備份與保存。當您須要再次運行相同的測試時,只需點擊「克隆測試」按鈕便可。
只要您願意,徹底能夠在無限量的服務器上運行無限量的測試。
能夠從 1,000 個用戶擴展到 1,000,000 個用戶。
用戶能夠訪問本身的開源負載測試插件、本身製做插件、以及經過UBIK中的插件來簡化測試過程。
經過與 Jenkins 集成,來完成負載測試的持續集成過程。
從實時圖表到生成可下載的報告,它可以持續監控負載測試的全程。
售價:
自帶免費計劃。
單個用戶的基本計劃:每個月 75 美圓,每一年 500 美圓。
測試團隊的高級計劃:每個月 299 美圓,每一年 2,500 美圓。
自定義企業計劃:請與供應商聯繫以獲取訂價信息。
不同凡響之處:
開放式架構可用於構建和運行負載測試。
容許用戶構建打包、自定義與重複測試。
經過雲端和本地配置的相關控制,來徹底管控 AWS 環境中各項測試。
Taurus
https://gettaurus.org/
由 BlazeMeter 建立的開源框架 Taurus,提供了一種建立和運行性能測試的簡單方法。
它可以與 Selenium、Gatling 或 JMeter 等其餘開源功能及性能測試軟件輕鬆地集成。同時,Taurus 使用到了易於理解的 YAML 文件。
主要特色:
易於閱讀、且具備友好的版本控制,經過統一的 DSL,來定義不一樣的負載測試場景。
可執行現有的 JMeter(或是 Grinder、Gatling、Selenium)測試。
可根據 DSL 建立新的測試。
可以將多個現有的測試腳本、或是 DSL 驅動的測試,合併到同一場景中。
提供實時的報告。
提供與 JUnit 兼容的測試結果。
可靈活地自定義測試成功與失敗的標準。若是測試結果超過了某個閾值,可自動將其標記爲失敗。
獨立於平臺,可運行在任何支持 Python 和 Java 的環境中。
售價:
免費/開源。
不同凡響之處:
易於設置與升級。
可以與 BlazeMeter 報告服務相集成。
在執行測試期間,可以在控制檯上顯示統計信息和圖表。