如何理解性能測試、負載測試、穩定性測試、壓力測試?

廣義上性能測試指的是以下幾種性能測試類型:性能測試負載測試壓力測試穩定性測試一般系統的性能指標
響應時間(系統為其服務所耗費的時間) 。
【如何理解性能測試、負載測試、穩定性測試、壓力測試?】吞吐量(簡單講就是系統在每單位時間內能處理多少個事務/請求/單位數據等) 。
資源使用率(常見的資源有:CPU占用率、內存使用率、磁盤I/O、網絡I/O) 。
點擊數(單位時間內,系統響應客戶的請求,是系統處理能力的一個很有用的指標) 。
并發用戶數(并發用戶數用來度量服務器并發容量和同步協調能力) 。
我們取其中某幾個性能指標,舉個栗子 。我們先假設一個場景:XX查詢系統,其中一項產品規格(性能指標)為300用戶并發查詢,頁面首屏結果請求響應時間不超過3秒 。
隨著被測系統的負載不斷增大,系統TPS變化趨勢圖,如上圖中 A/B/C/D四點表示:
A:產品規格(性能指標)

B :高于性能指標,接近系統資源臨界點
C :高于性能指標,達到最大,出現性能拐點(可理解為最大并發用戶數)
D :遠高于性能指標,系統崩潰
性能測試測試A點的系統性能 。
性能測試是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的性能指標數據 。
負載測試測試 A點以下到C點系統性能 。
負載測試的目標是測試在一定負載情況下系統性能(不關注穩定性,也就是說不關注長時間運行),實際中我們常從比較小的負載開始,逐漸增加模擬用戶的數量(增加負載),觀察不同負載下應用程序響應時間、數據吞吐量、系統資源使用率(如CPU、內存)等,直到到系統的某項或多項性能指標達到安全臨界值(如,系統內存已飽和),以發現系統可能存在的性能瓶預、內存泄漏、不能實時同步等問題(不關注穩定性,也就是說不關注長時間運行 。它是測試系統的不同負載情況下的性能指標 。
穩定性測試測試 A點以下 到 B 點之間

穩定性測試是一般在低于性能值的前提下進行測試的,一般穩定性測試時間持續為 n*24 小時 。測試時,我們需要結合用戶實際情況控制測試中的負載量 ,使測試結果更具準確性和可靠性 。
壓力測試測試B 點到D 點之間系統性能 。
壓力測試是在高于性能指標負載的前提下(超負載)對系統持續施加壓力進行測試的,查看應用系統在峰值使用情況下操作行為,從而有效地發現系統的某項功能隱惠、系統是否具有良好的容錯能力和可恢復能力 。壓力測試分為高負載下的長時間(如124小時以上)的穩定性壓力測試和極限負載情況下導致系統崩潰的破壞性壓力測試 。
穩定性壓力測試:在選定的壓力值下,長時間持續運行 。通過這類壓力測試,可以考察各項性能指標是否在指定范圍內,有無內存泄漏、有無功能性故障 。破壞性壓力測試:在穩定性壓力測試中可能會出現些問題 ,如系統性能明顯降低,但很難察露出其真實的原因 。通過破壞性不斷加壓的手段(極限負載情況下導致系統崩潰),往往能快速造成系統的崩潰 。壓力測試的幾點注意
測試時,我們需要注意并不是負載超過了系統的最大處理能力,系統功能都會失效 。例如,OA簽到最多支持500用戶井發登錄,但某時550用戶同時進行登錄時,系統應保證550個用戶中,500用戶是可以正常登錄,而不是所有用戶都無法登錄 。用戶的業務負載并不是平均的,可能在極短時間內,出現超過負載的情況,如某寶雙十一 。因此不建議用持續超過系統負載的測試方法進行壓力測試,只要負載足夠多,系統總會被搞掛,建議使用突發形態的負載模型 。

    推薦閱讀