壓測工具筆記(一)之主流工具


@

壓測工具筆記(一)之主流工具:https://blog.csdn.net/weixin_42526326/article/details/121041125)

壓測工具筆記(二)之JMeter:https://blog.csdn.net/weixin_42526326/article/details/121040719

簡介

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

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

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

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

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

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

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

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

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

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/

Loadster

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

Loadster能夠對Web應用/服務的Cookies、線程、頭文件、動態表格等元素發起測試,獲得Web在壓力下的性能、彈性、穩定性和可擴展性等方面的表現。

官網鏈接:http://www.loadsterperformance.com/

CloudTest

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

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

官網鏈接:https://soasta.com/cloudtest

阿里雲PTS

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

img

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

官網鏈接:https://www.aliyun.com/product/pts

壓測寶

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

img

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

官網鏈接:http://www.yacebao.com/

img

kylinTOP測試與監控平台

kylinTOP測試與監控平台是一款B/S架構的跨平台的集性能測試、自動化測試、業務監控於一體的測試平台,它是深圳是奇林軟件有限公司旗下的一款產品,該工具開放10個免費虛擬用戶可供學習和使用。在易用性上較好,錄制腳本支持最新版本的瀏覽器,對谷歌和火狐都支持非常好。對一些https.的網站證書問題,都為用戶自動處理好了,可以輕松錄制。錄制過程高效便捷這是其它性能工具無法比擬的。仿真能力上是目前業界做的最好的性能工具,可以做到完全仿真瀏覽器行為,也就是單用戶的HTTP請求瀑布圖可以和瀏覽器器完全一樣。總之它是目前國內一款非常難得好用的性能測試工具,可以完全替代國外的同類產品。目前在軍工領域、測評檢測機構、國有企業、銀行體系、大型企業有着廣泛的應用。支持的協議較多,尤其在視頻領域支持的協議非常多,具有獨特的優勢。官網地址:http://www.70testing.com

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

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/

Loadstorm

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

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

官網鏈接:http://loadstorm.com/

Load impact(開源)

是一個在線可以免費測試網站負載能力,它就可以滿足你的基本要求, 當然成為他的付費用戶測試的項目將會更多。

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

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

官網鏈接:http://loadimpact.com/

特別提醒:

1.由於此測試數據發生在國外,一般反映出的是國外用戶訪問您要測試的網站的速度參數,具有一定的參考性;

2.對於國內主機,並且主要客戶來自於國內的用戶來說請慎重將此數據作為依據。

locust(開源)

Locust 完全基本 Python 編程語言,采用 Pure Python 描述測試腳本,並且 HTTP 請求完全基於 Requests 庫。除了 HTTP/HTTPS 協議,Locust 也可以測試其它協議的系統,只需要采用Python調用對應的庫進行請求描述即可。但是需要手工編寫腳本,有一定的難度

OpenSTA(開源)

OpenSTA是一個免費的、開放源代碼的web性能測試工具,能錄制功能非常強大的腳本過程,執行性能測試。例如虛擬多個不同的用戶同時登陸被測試網站。其還能對錄制的測試腳本進行,按指定的語法進行編輯。在錄制完測試腳本后,可以對測試腳本進行編輯,以便進行特定的性能指標分析。其較為豐富的圖形化測試結果大大提高了測試報告的可閱讀性。OpenSTA 基於CORBA 的結構體系,它通過虛擬一個proxy,使用其專用的腳本控制語言,記錄通過proxy 的一切HTTP/S traffic。通過分析OpenSTA的性能指標收集器收集的各項性能指標,以及HTTP 數據,對系統的性能進行分析。

總結

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

商用性能工具在易用性(腳本生成)、並發模型、統計指標上要比開源免費軟件要好很多,可以大大提高工作效率,降低使用難度,在統計指標上要豐富的多。

免費開源軟件的優點就是免費,不用花錢。但使用難度大,統計指標少,在仿真能力上比較弱。

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

持續更新中。。。

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM