繼續這個系列的學習,這一節重點介紹目前流行的性能測試工具以及如何選擇適合項目的工具。在此之前,我已經對性能測試工具的原理與架構做了分析。
http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html
性能測試工具的選擇與評估
在性能工具原理與架構一章中,我們了解到性能測試工具的原理通常是:通過錄制、回放腳本,模擬多用戶同時訪問被測試系統,模擬產生負載壓力,監控並記錄各種性能指標,生成性能分析結果和報告,從而完性能測試的基本任務。
對需要進行性能測試的組織來說,決定使用哪種性能測試工具也不是一個簡單的問題。我們有需要對性能需求進行分析,購買成本,人員學習使用成本進行綜合考慮,從而確定最適合的本次性能測試的工具。
注:這里所提到的性能測試工具為狹義上的性能測試工具,特指包含腳本生成、負載生成與測試數據搜集的性能測試工具,從廣義上來講,在性能測試過程中所用到一切工具,都可以稱為性能測試工具,其中包括,軟件協議分析工具,測試數據生成工具,測試監控工具等都屬於性能測試工具范疇。
我簡單的軟件性能測試工具分為三類,商業收費工具、開源免費工具、自主開發工具。下面是這三類工具的比較:
通過上面的比較分析,很難判別對某類工具的取舍,各自有其明顯的優勢,當然也有明顯的缺點,如何更好選擇工具,這里就要結合實際性能的需求了。
需要考慮以下幾個方面:
性能需求:
首先要考慮的是否滿足性能需求,例如系統的協議不支持,無法創建腳本,系統的模擬用戶數達不到,或都某此特殊功能無法測試,如流媒體性能測試等。一些有性能工具是無法滿足這些需求的,那當然要首先排除。
購買成本:
對於商業工具的購買成本也是我們需要考慮的問題,其實,這個問題也是老板需要考慮的問題,對性能測試成本的整體預算等。當然了,在滿足性能需求的前提下,當然一切從簡。如果只需要某商業軟件的部分功能,也可以只購買部分功能。有的是根據支持協議的多少、並發用戶上限來區分,如loadrunner 。
這里要多扯一點,loadrunner應該是性能測試領域的巨無霸,它的年服務費多百萬,這不是一般的小公司能承受的,可能許多網友用破解習慣了不以為然。而且loadrunner是可以定制的,一般商業軟件都是可以定制的,也就是說,你有特定的需求,只要你願意花錢,提供商都可以幫你定制開發。這樣算下來成本會很高。
那么開源軟件呢? 開源的性能測試工具其實非常的多,因為它們都分別適合在不同的需求場景下,所以,它們的體積相比商業軟件會小很大,當然功能也相對簡陋。但是他們在某些情況下可以完全滿足某些性能需求,或者可以通過幾款開源工具配合滿足,或者通過對開源工具進行擴展進行滿足。對開源工具進行擴展,對測試人員的要求較高。需要測試人員對工具的原理及源代碼有相當有研究。這里對測試人員自動能力的提升非常有幫助。
或者你的性能測試項目特殊,找遍市面上的所有性能工具無一款滿意,商業定制成本過高。或者你想構建自己有工具體系。處於公司需求的特殊性與長期性考慮,可以自主開發一個性能測試工具來用。一次開發,永久收益(當然也需要維護與升級、擴展等),而且更貼近自已的需求。目前很多知明的大公司都有自己的性能測試工具,用於內部使用。
人員學習成本:
最后要提到的就是人員對工具的學習成本,其實,測試人員在選擇性能測試工具時最先考慮的就是從自己會使用的工具入手,這樣可以最低的控制學習成生,如果整一個工具,測試人員單學測試腳本就學了半年,老板早讓你走人了。這也是對性能測試人員要求較高的地方。所以,對於性能測試人員,你最好熟悉一款流程的商業性能工具,一款開源免費性能具,還需要熟悉常見的性能腳本開發語言等,這是基本要求。
性能測試工具介紹
商業工具 :
QA Load:Compuware公司的QALoad是客戶/服務器系統、企業資源配置(ERP)和電子商務應用的自動化負載測試工具。QALoad是QACenter性能版的一部分,它通過可重復的、真實的測試能夠徹底地度量應用的可擴展性和性能。QACenter匯集完整的跨企業的自動測試產品,專為提高軟件質量而設計。QACenter可以在整個開發生命周期、跨越多種平台、自動執行測試任務。
SilkPerformer:一種在工業領域最高級的企業級負載測試工具。它可以模仿成千上萬的用戶在多協議和多計算的環境下工作。不管企業電子商務應用的規模大小及其復雜性,通過SilkPerformer,均可以在部署前預測它的性能。可視的用戶化界面、實時的性能監控和強大的管理報告可以幫助我們迅速的解決問題,例如加快產品投入市場的時間,通過最小的測試周期保證系統的可靠性,優化性能和確保應用的可擴充性。
LoadRunner:一種較高規模適應性的,自動負載測試工具,它能預測系統行為,優化性能。LoadRunner強調的是整個企業的系統,它通過模擬實際用戶的操作行為和實行實時性能監測,來幫助您更快的確認和查找問題。此外,LoadRunner 能支持最寬范的協議和技術,為您的特殊環境,量身定做地提供解決方案。
WebRunner:是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作,生成壓力負載來測試web的性能,用戶創建的是基於javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執行該腳本來衡量web應用程序在真實環境下的性能。
IBM Rational Performance Tester(簡稱 RPT)也是一款性能測試工具,適用於基於 Web 的應用程序的性能和可靠性測試。Rational Performance Tester 將易用性與深入分析功能相結合,從而簡化了測試創建、負載生成和數據收集,以幫助確保應用程序具有支持數以千計並發用戶並穩定運行的性能。
開源或免費工具:
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件做壓力測試,它最初被設計用於Web應用測試但后來擴展到其他測試領域。 它可以用於測試靜態和動態資源例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫, FTP 服務器, 等等。JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來在不同壓力類別下測試它們的強度和分析整體性能。
AutoBench 是一款基於httperf的Perl腳本。它會在一次測試中調用多次httperf來對web服務器進行測試,每次會按照給定的參數增加並發連接數,將 httperf的測試結果保存為CSV格式的文件,該文件可以被Excel直接讀取,方便生成測試報告。借助於autobench自帶的 bench2graph工具可以生成漂亮的測試結果對比圖。
ApacheBench 工具程式(ab)是 Apache 網站伺服器軟體的一個附帶的工具軟體,專門用來執行網站伺服器的運行效能,特別是針對 Apache 網站伺服器 的效能分析。這支程式原本是用來檢測 Apache 網站伺服器(Web Server) 所能夠提供的效能,特別是可以看出 Apache 網站伺服器能提供每秒能送出多少網頁,當然的,也可以用在任何其他的網站伺服器 Apache ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,可以同時模擬多個並發請求。
curl-loader(也被稱為“omes-NIK”和“davilka”)是一個開源的C語言編寫的工具,模擬應用負載和成千上萬的幾十萬人的HTTP / HTTPS和FTP/ FTPS的客戶端應用程序的行為,每個有其自己的源IP地址。相反,其他curl-loader使用真正的C編寫的客戶端協議棧,即libcurl和TLS/ openssl的SSL的HTTP和FTP協議棧,支持登錄和驗證口味和模擬用戶行為的工具。
Iago 是一個網站負載測試工具,Iago 針對一個給定的網站進行訪問錄制並合成流量數據。它不同於其他的負載生成工具,它試圖保持恆定的請求率。例如如果你想按每分鍾100K來請求您的服務,Iago 會試圖保持這個速度進行測試。
Pylot 是一款開源的用以測試 Web Service性能和擴展性的工具,它運行HTTP負載測試,這對於制定容量計划、確定基准點、分析系統瓶頸以及系統調優都非常有用。在使用過程 中,Pylot會發起並發請求(HTTP Requests),檢驗服務器響應,以及帶有相關指標的報表。它通過GUI或者Shell/Console來執行和監視對被測試網站的測試過程。
-----------------------------------------------
關於性能測試工具非常的多,如果你是個開源的粉絲可以去開源中國轉轉,那里有許多非常優秀的開源軟件。