負載測試 壓力測試和效能測試的異同

2021-06-01 10:30:09 字數 1293 閱讀 3178

負載測試(load testing)、壓力測試(stress test,應稱為強度測試)和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。之前,也有不少討論,比較有名的,應歸為grig gheorghiu's的兩篇部落格:

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

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

從上面可以看出,使系統的效能達到乙個最好的狀態,不僅通過對處在特定環境下的系統進行測試以完成相關的驗證,而且往往要根據測試的結果,對系統的設計、**和配置等進行調整,提高系統的效能。許多時候,系統效能的改善是測試、調整、再測試、再調整、……乙個持續改進的過程,這就是我們經常說的效能調優(perormance tuning)。

在了解了這樣乙個背景之後,就比較容易理解為什麼在效能測試中常常要談負載測試。從測試的目的出發、從使用者的需求出發,就比較容易區分效能測試、負載測試和壓力測試。效能測試是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的效能指標資料,而負載測試、壓力測試是為了發現軟體系統中所存在的問題,包括效能瓶頸、記憶體洩漏等。通過負載測試,也是為了獲得系統正常工作時所能承受的最大負載,這時負載測試就成為容量測試。通過壓力測試,可以知道在什麼極限情況下系統會崩潰、系統是否具有自我恢復性等,但更多的是為了確定系統的穩定性。

那麼,如何給負載測試、壓力測試下個定義呢?根據上述討論,我們可以給出如下的定義:

壓力測試可以被看作是負載測試的一種,即高負載下的負載測試,或者說壓力測試採用負載測試技術。通過壓力測試,可以更快地發現記憶體洩漏問題,還可以更快地發現影響系統穩定性的問題。例如,在正常負載情況下,某些功能不能正常使用或系統出錯的概率比較低,可能乙個月只出現一次,但在高負載(壓力測試)下,可能一天就出現,從而發現有缺陷的功能或其它系統問題。通過負載測試,可以證明這一點,某個電子商務**的訂單提交功能,在10個併發使用者時錯誤率是零,在50個併發使用者時錯誤率是1%,而在200個併發使用者時錯誤率是20%。

通過負載測試和壓力測試都可以獲得系統正常工作時的極限負載或最大容量。容量測試,自然也是採用負載測試技術來實現,而在破壞性的壓力測試中,容量的確定可以看作是一種副產品——間接結果。

綜合所述,負載測試、壓力測試和效能測試的概念可以概括如下:

效能測試 壓力測試 負載測試

負載測試 load testing 壓力測試 stress test,應稱為強度測試 和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。負載測試 壓力測試和效能測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所...

負載測試 壓力測試和效能測試的異同

負載測試 load testing 壓力測試 stress test,應稱為強度測試 和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。之前,也有不少討論,比較有名的,應歸為grig gheorghiu s的兩篇部落格 負載測試 壓力測試和效能測試的測試目的不同,但其手...

負載測試 壓力測試和效能測試的異同

負載測試 load testing 壓力測試 stress test,應稱為強度測試 和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。之前,也有不少討論,比較有名的,應歸為grig gheorghiu s的兩篇部落格 負載測試 壓力測試和效能測試的測試目的不同,但其手...