捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載六)
在5.1節中,我們學習了9種Web性能測試的方法,在本節中通過總結的形式,指出它們的不同,并從操作步驟等方面指出它們的共性,供讀者參考。
5.2.1 各種Web性能測試方法的比較
性能測試包 含的這9種具體測試方法,實際上是從不同的角度和出發點來考察Web應用的性能表現。在這些方法中,有的關注"點",比如負載測試所關注的性能極限;有的 關注"面",比如性能測試所關注的一般性能情況;還有的關注"變化",比如尖峰沖擊測試所關注的用戶數量突然增加。具體來說:
性能測試是整個廣義的性能測試中最基本的、也是必備的方法,它獲得網站總體性能的評估,使網站的各個參與者對情況有基本了解。它是偏向總體、宏觀的。
負載測試通過不斷給Web應用增加負荷的過程來獲得系統能夠承受的最大壓力數值。它確定了性能的最大限度和范圍。
尖峰沖擊測試、并發測試都是從在線用戶數量這個因素來考察Web應用是否健壯,不同的是尖峰沖擊測試注重在線用戶的變化率,并發測試注重在線用戶的絕對值。
壓力測試考察了Web應用在服務器較大負荷條件下的表現,與并發測試、耐久度測試(或可靠性測試)分別側重在線用戶數量與運行時間兩個具體因素不同。
配置測試為現有Web應用發揮最大效能提供了一種途徑。它更面向網站性能優化,而不是發現網站性能上的Bug。
失敗恢復測試則為網站把好最后一道關口,驗證一旦網站出現問題后能夠快速恢復的能力。
【各性能測試方法執行的時機】
正如了解一個人需要從多方面去獲得信息一樣,了解網站的真實性能情況也需要以上各種性能測試方法的配合。在實際工作中,各項測試的開始時間不一定是一成不變的,可以因公司規定、制定測試計劃的工程師個人理解與習慣不同而靈活設置。筆者個人采取的性能測試順序如圖5-13所示。
圖5-13 筆者采用的各性能測試方法開始時間順序示意
雖然各種Web性能測試在測試理念上有一些區別,但它們具有更多的相同點,這些相同點導致各種性能測試方法在實際工作中往往界限并不非常清楚,"你中有我,我中有你":
(1)它們同屬于性能測試的范疇,都遵循性能測試的3個目的。
獲得Web應用的性能表現情況。
發現并驗證、修改Web應用中影響性能的Bug。
為網站性能優化提供數據參考。
(2)它們的測試步驟均類似,都具有如下階段。
測試計劃階段:約定測試所采用的具體方法、時間、資源。
測試準備階段:確定測試采用的Web應用版本號、準備測試環境。自動測試還需要準備、錄制模擬場景等的腳本等工作。
測試實施階段:進行測試,獲得測試結果。
測試分析階段:對結果進行分析,發現Bug或性能優化關鍵點。
測試報告發送:將分析結果進行總結,發送給網站相關人員。
測試總結階段:綜合各種測試結果,積累經驗,為下一次測試打下堅實基礎。
測試步驟在后面的章節還要具體涉及,比如測試計劃的編寫,測試結果的分析,測試報告的發送等,這里就不展開討論了。
5.3 本章小結
本章主要介紹了Web性能測試的目的和具體測試的分類/方法,這9種方法分別是:
性能測試(Performance Testing);
壓力測試(Stress Testing);
負載測試(Load Testing);
并發測試(Concurrency Testing);
配置測試(Configuration Testing);
耐久度測試(Endurance Testing);
可靠性測試(Reliability Testing);
尖峰沖擊測試(Spike Testing);
失敗恢復測試(Failover Testing)。
其中,性能測試是整個廣義性能測試中最基本、也是必備的一個方法,能夠獲得被測試網站的一般性能。負載測試、尖峰沖擊測試主要是查看Web應用 在極端情況下的表現,壓力測試、并發測試和耐久度測試(可靠性測試)分別考察Web應用在較大負荷、多用戶和長時間運行3種條件下的表現,驗證了網站受到 具體重要因素影響的程度。配置測試則是為現有Web應用的優化提供了一種途徑。失敗恢復測試則為提高網站的可用性、預防和補救網站出現的問題提供了驗證的 方法。
總之,合理、靈活地利用以上這些測試方法,可以使網站在開發階段、測試階段、部署階段、運行階段有關性能方面都有全方位的質量報告與質量保證,從而給予網站更優化的性能、用戶更快速的響應,以及公司其他相關部門更多的信息、更大的信心。
(未完待續)
相關鏈接:
捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載一)
捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載二)
捉蟲記--大容量Web應用性能測試與LoadRunner實戰(連載三)
posted on 2013-05-30 10:24 順其自然EVO 閱讀(431) 評論(0) 編輯 收藏 所屬分類: loadrunner 、web 前端性能測試