qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

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

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

          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來執行和監視對被測試網站的測試過程。

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

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

           

           目前市場上的性能測試的工具種類很多,可以簡單的劃分為以下幾種:負載壓力測試工具、資源監控工具、故障定位工具以及調優工具。

              1. 主流負載性能測試工具

              負載性能測試工具的原理通常是通過錄制、回放腳本、模擬多用戶同時訪問被測試系統,制造負載,產生并記錄各種性能指標,生成分析結果,從而完成性能測試的任務。

              主流的負載性能測試工具有:

              QA Load:Compuware公司的QALoad是客戶/服務器系統、企業資源配置(ERP)和電子商務應用的自動化負載測試工具。QALoad是QACenter性能版的一部分,它通過可重復的、真實的測試能夠徹底地度量應用的可擴展性和性能。QACenter匯集完整的跨企業的自動測試產品,專為提高軟件質量而設計。QACenter可以在整個開發生命周期、跨越多種平臺、自動執行測試任務。

              SilkPerformer:一種在工業領域最高級的企業級負載測試工具。它可以模仿成千上萬的用戶在多協議和多計算的環境下工作。不管企業電子商務應用的規模大小及其復雜性,通過SilkPerformer,均可以在部署前預測它的性能。可視的用戶化界面、實時的性能監控和強大的管理報告可以幫助我們迅速的解決問題,例如加快產品投入市場的時間,通過最小的測試周期保證系統的可靠性,優化性能和確保應用的可擴充性。

              LoadRunner:一種較高規模適應性的,自動負載測試工具,它能預測系統行為,優化性能。LoadRunner強調的是整個企業的系統,它通過模擬實際用戶的操作行為和實行實時性能監測,來幫助您更快的確認和查找問題。此外,LoadRunner 能支持最寬范的協議和技術,為您的特殊環境,量身定做地提供解決方案。

              WebRunner:是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作,生成壓力負載來測試web的性能,用戶創建的是基于javascript的測試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執行該腳本來衡量web應用程序在真實環境下的性能。

              免費測試工具:

              OpenSTA:開源項目,功能強大,自定義功能設置完備,但設置通過Script來完成。必須學習Script編寫

              WAS(Web Application Stress Tool):微軟的工具,輸出結果是純文本的。

              主流商用負載性能工具的比較圖如下:

              

          性能測試工具的介紹

           
              

          性能測試工具的介紹

           

              2.資源監控工具

              資源監控作為系統壓力測試過程中的一個重要環節,在相關的測試工具中基本上都有很多的集成。只是不同的工具之間,監控的中間件、數據庫、主機平臺的能力以及方式各有差異。而這些監控工具更大程度上都依賴于被監控平臺自身的數據采集能力,目前的絕大多數的監控工具基本上是直接從中間件、數據庫以及主機自身提供的性能數據采集接口獲取性能指標。

              首先,不同的應用平臺有自身的監控命令以及控制界面。比如UNIX主機用戶可以直接使用topas,vmstat,iostat了解系統自身的健康工作狀況。另外,weblogic以及websphere平臺都有自身的監控臺,在上面可以了解到目前的JVM的大小、數據庫連接池的使用情況以及目前連接的客戶端數量以及請求狀況等等。只是這些監控方式的使用對測試人員有一定的技術儲備要求,需要自己熟練掌握以上監控方式的使用。

              第三方的監控工具相應的對一些系統平臺的監控進行了集成。比如Loadrunner對目前常用的一些業務系統平臺環境都提供了相應的監控入口,從而可以在并發測試的同時,對業務系統所處的測試環境進行監控,更好的分析測試數據。

              但Loadrunner工具其提供的監控方式還不是很直觀,一些更直觀的測試工具能在監控的同時提供相關的報警信息,類似的監控產品如QUEST公司提供的一整套監控解決方案包括了主機的監控、中間件平臺的監控以及數據庫平臺的監控。QUEST系列監控產品提供了直觀的圖形化界面,能讓測試者盡快進入監控的角色。

              3. 故障定位工具以及調優工具

              技術的不斷發展以及測試需求的不斷提升,故障定位工具應運而生,它能更精細的對負載壓力測試中暴露的問題進行故障根源分析。在目前的主流測試工具廠商中,都相應地提供了對應的產品支持。尤其是目前.NET以及J2EE架構的流行,測試工具廠商紛紛在這些領域提供了相關的技術產品,比如Loadrunner模塊中添加的診斷以及調優模塊、Quest公司的PerformaSure、Compuware的Vantage套件以及CA公司收購的Wily的Introscope工具等等,都在更深層次上對業務流的調用進行追蹤。這些工具在中間件平臺上引入探針技術,能捕獲后臺業務內部的調用關系,發現問題所在,為應用系統的調優提供直接的參考指南。

              在數據庫產品的故障定位分析上,Oracle自身提供了強大的診斷模塊,同時,Quest公司的數據庫產品也在數據庫設計、開發以及上線運行維護都提供了全套的產品支持。

          posted on 2014-02-18 11:41 順其自然EVO 閱讀(530) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 黎城县| 晋宁县| 定南县| 忻城县| 临泽县| 家居| 华安县| 四子王旗| 巴马| 寿光市| 稷山县| 龙岩市| 湘阴县| 鹰潭市| 儋州市| 平利县| 巴彦淖尔市| 萨迦县| 扎鲁特旗| 涟水县| 涿州市| 柏乡县| 张家口市| 平陆县| 新源县| 汉阴县| 和平县| 莲花县| 荥经县| 鹤壁市| 吕梁市| 贵南县| 吉隆县| 秦皇岛市| 胶州市| 鄂托克旗| 嘉鱼县| 营口市| 蒙城县| 宝丰县| 淅川县|