天天看點

性能測試知多少---測試工具介紹

 繼續這個系列的學習,這一節重點介紹目前流行的性能測試工具以及如何選擇适合項目的工具。在此之前,我已經對性能測試工具的原理與架構做了分析。

性能測試工具的選擇與評估                                              

  在性能工具原理與架構一章中,我們了解到性能測試工具的原理通常是:通過錄制、回放腳本,模拟多使用者同時通路被測試系統,模拟産生負載壓力,監控并記錄各種性能名額,生成性能分析結果和報告,進而完性能測試的基本任務。

  對需要進行性能測試的組織來說,決定使用哪種性能測試工具也不是一個簡單的問題。我們有需要對性能需求進行分析,購買成本,人員學習使用成本進行綜合考慮,進而确定最适合的本次性能測試的工具。

注:

這裡所提到的性能測試工具為狹義上的性能測試工具,特指包含腳本生成、負載生成與測試資料搜集的性能測試工具,從廣義上來講,在性能測試過程中所用到一切

工具,都可以稱為性能測試工具,其中包括,軟體協定分析工具,測試資料生成工具,測試監控工具等都屬于性能測試工具範疇。

  我簡單的軟體性能測試工具分為三類,商業收費工具、開源免費工具、自主開發工具。下面是這三類工具的比較:

性能測試知多少---測試工具介紹

通過上面的比較分析,很難判别對某類工具的取舍,各自有其明顯的優勢,當然也有明顯的缺點,如何更好選擇工具,這裡就要結合實際性能的需求了。

性能需求:

  首先要考慮的是否滿足性能需求,例如系統的協定不支援,無法建立腳本,系統的模拟使用者數達不到,或都某此特殊功能無法測試,如流媒體性能測試等。一些有性能工具是無法滿足這些需求的,那當然要首先排除。

購買成本:

  對于商業工具的購買成本也是我們需要考慮的問題,其實,這個問題也是老闆需要考慮的問題,對性能測試成本的整體預算等。

當然了,在滿足性能需求的前提下,當然一切從簡。如果隻需要某商業軟體的部分功能,也可以隻購買部分功能。有的是根據支援協定的多少、并發使用者上限來區

分,如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來執行和監視對被測試網站的測試

過程。

-----------------------------------------------

 關于性能測試工具非常的多,如果你是個開源的粉絲可以去開源中國轉轉,那裡有許多非常優秀的開源軟體。

繼續閱讀