當前位置:
首頁 > 科技 > 如何理解與區分軟體性能測試、負載測試、穩定性測試、壓力測試

如何理解與區分軟體性能測試、負載測試、穩定性測試、壓力測試

如何理解與區分軟體性能測試、負載測試、穩定性測試、壓力測試

性能測試、負載測試、穩定性測試、壓力測試之間有何區別?剛開始自己也不能很好的區分,隨著一些具體性能測試實踐的開展,大概有一個基本的認識,總結如下:


首先,大致了解下軟體產品的性能受哪些因素的影響

我們知道,軟體總是運行在一定的環境下 ,這種環境包括支撐軟體運行的軟硬體環境和影響軟體運行的外部條件。為了讓客戶使用軟體系統感到滿意,必須確保系統運行良好,達到高安全、高可靠和高性能。其中,系統是否具有高性能的運行特徵,不僅取決於系統本身的設計和程序演算法,而且取決於系統的運行環境(硬體環境)。系統的運行環境會依賴於哪些關鍵因素,例如:

  • 系統架構,如分散式伺服器集群還是集中式主機系統等。
  • 硬體配置,如伺服器的配置, CPU、內存等配置越高,系統的性能會越好。
  • 網路帶寬,隨著帶寬的提高,客戶端訪問伺服器的速度會有較大的改善。
  • 支撐軟體的選定 ,如選定不同的資料庫管理系統( Oracle. MySQL等 )和web應用伺服器( Tomcat Glassish. Jboss. WebLogic等 ),對應用系統的性能都有影響。
  • 外部負載,同時有多少個用戶連接、用戶上載文件大小、資料庫中的記錄數等都會對系統的性能有影響。一般來說 ,系統負載越大,系統的性能會降低。

從上面可以看出,使系統的性能達到一個最好的狀態,不僅通過對處在特定環境下的系統進行測試以完成相關的驗證,而且往往要根據測試的結果,對系統的設計、代碼和配置等進行調整,提高系統的性能。 許多時候,系統性能的改善是測試調整、再測試再調整、一個持續改進的過程,這就是我們經常說的性能調優。在了解了這樣一個背景之後 ,就比較容易理解為什麼在性能測試中常常要談負載測試。從測試的目的出發、從用戶的需求出發,就比較容易區分性能測試、負載測試、穩定性測試、壓力測試。

如何理解與區分軟體性能測試、負載測試、穩定性測試、壓力測試


其次,如何理解性能測試、負載測試、穩定性測試、壓力測試

性能測試、負載測試、穩定性測試、壓力測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所佔用資源的情況以及其它相應的性能指標,這也是造成我們容易產生概念混淆的主要原因。


性能測試類型

廣義上性能測試指的是以下幾種性能測試類型:

  • 性能測試
  • 負載測試
  • 壓力測試
  • 穩定性測試

一般系統的性能指標

  • 響應時間(系統為其服務所耗費的時間)。
  • 吞吐量(簡單講就是系統在每單位時間內能處理多少個事務/請求/單位數據等)。
  • 資源使用率(常見的資源有:CPU佔用率、內存使用率、磁碟I/O、網路I/O)。
  • 點擊數(單位時間內,系統響應客戶的請求,是系統處理能力的一個很有用的指標)。
  • 並發用戶數(並發用戶數用來度量伺服器並發容量和同步協調能力)。

我們取其中某幾個性能指標,舉個栗子。我們先假設一個場景:XX查詢系統,其中一項產品規格(性能指標)為300用戶並發查詢,頁面首屏結果請求響應時間不超過3秒。

如何理解與區分軟體性能測試、負載測試、穩定性測試、壓力測試

圖中 A/B/C/D四點表示:

  • A:產品規格(性能指標)
  • B :高於性能指標,接近系統資源臨界點
  • C :高於性能指標,達到最大,出現性能拐點(可理解為最大並發用戶數)
  • D :遠高於性能指標,系統崩潰

性能測試

測試A點的系統性能。

性能測試是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的性能指標數據。

負載測試

測試 A點以下到C點系統性能。

負載測試的目標是測試在一定負載情況下系統性能(不關注穩定性,也就是說不關注長時間運行),實際中我們常從比較小的負載開始,逐漸增加模擬用戶的數量(增加負載), 觀察不同負載下應用程序響應時間、數據吞吐量、系統資源使用率(如CPU、內存)等,直到到系統的某項或多項性能指標達到安全臨界值(如,系統內存已飽和),以發現系統可能存在的性能瓶預、內存泄漏、不能實時同步等問題(不關注穩定性,也就是說不關注長時間運行。它是測試系統的不同負載情況下的性能指標。


穩定性測試

測試 A點以下 到 B 點之間

穩定性測試是一般在低於性能值的前提下進行測試的,一般穩定性測試時間持續為 n*24 小時。測試時,我們需要結合用戶實際情況控制測試中的負載量 ,使測試結果更具準確性和可靠性。


壓力測試

測試B 點到D 點之間系統性能。

壓力測試是在高於性能指標負載的前提下(超負載)對系統持續施加壓力進行測試的,查看應用系統在峰值使用情況下操作行為,從而有效地發現系統的某項功能隱惠、系統是否具有良好的容錯能力和可恢復能力。壓力測試分為高負載下的長時間(如124小時以上)的穩定性壓力測試和極限負載情況下導致系統崩潰的破壞性壓力測試。

  • 穩定性壓力測試:在選定的壓力值下,長時間持續運行。通過這類壓力測試,可以考察各項性能指標是否在指定範圍內,有無內存泄漏、有無功能性故障。
  • 破壞性壓力測試:在穩定性壓力測試中可能會出現些問題 ,如系統性能明顯降低,但很難察露出其真實的原因。通過破壞性不斷加壓的手段(極限負載情況下導致系統崩潰),往往能快速造成系統的崩潰。

壓力測試的幾點注意

  • 測試時,我們需要注意並不是負載超過了系統的最大處理能力, 系統功能都會失效。例如,OA簽到最多支持500用戶井發登錄,但某時550用戶同時進行登錄時,系統應保證550個用戶中,500用戶是可以正常登錄,而不是所有用戶都無法登錄。
  • 用戶的業務負載並不是平均的,可能在極短時間內,出現超過負載的情況,如某寶雙十一。因此不建議用持續超過系統負載的測試方法進行壓力測試,只要負載足夠多,系統總會被搞掛,建議使用突發形態的負載模型。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |