在移動應用和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/ 二、GWT、HTML五、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
壓測寶
壓測寶是雲智慧推出的面向真實用戶行爲與地域分佈的全鏈路雲端壓力測試平臺,經過雲端服務器產生真實分佈式用戶訪問壓力,模擬來自各地域用戶接入後臺所帶來的真實流量,無限接近生產環境所面臨的各類複雜因素,測量真實的用戶體驗。經過集成雲智慧應用性能管理和監控產品,幫助實現基於真實用戶行爲的壓測方案定製、壓測過程當中實時定位各環節應用資源及代碼瓶頸,現場糾錯,分析應用性能肇因。