和服務器有一次完整交互纔會對系統產生壓力,web性能測試應該分層來看:
1.客戶端
2.接口層
3.數據庫層
通常,對服務器端應用程序開展性能測試,是爲了驗證軟件系統是否能夠達到預期的性能指標,同時發現軟件系統中存在的性能瓶頸,從而實現優化系統的目的。
根據不同的測試目的,性能測試可以分爲多種類型,常見的有如下幾類:
- 基準測試(Standard Testing)
- 負載測試(Load Testing)
- 壓力測試(Stress Testing)
- 穩定性測試
1.基準測試
在單一用戶的場景下,對系統的功能進行驗證,並且觀察系統指標,將基準測試時採集得到的系統性能指標,作爲基準測試結果,爲後續併發壓力測試的性能分析提供參考依據。
2.負載測試
在用戶期望的最大負載量場景下進行測試,觀察系統性能指標是否正常,通過負載測試,目的是驗證系統是否能滿足預期的業務壓力場景。
3.壓力測試
對系統進行逐步加壓,觀察系統的性能指標,查找系統性能拐點以及瓶頸,壓力測試是爲了發現在多大併發壓力下系統的性能會變得不可接受,或者出現性能拐點(崩潰)的情況。在加壓策略上,壓力測試會對被測系統逐步加壓,在加壓的過程中考察系統性能指標的走勢情況,最終找出系統在出現性能拐點時的併發用戶數,也就是系統支持的最大併發用戶數。
4.穩定性測試
在用戶期望的負載量場景下進行長時間的測試,觀察系統的性能指標,其更關注系統在長時間運行情況下系統性能指標的變化情況,例如,系統在運行一段時間後,是否會出現事務處理失敗、響應時間增長、業務吞吐量降低、CPU/內存資源增長等問題。
性能指標主要包括業務性能指標和系統資源性能指標:
1.業務性能指標
併發用戶數、事務吞吐率、事務平均響應時間、事務成功率
2.系統資源性能指標
- 服務器:CPU利用率、處理器隊列長度、內存利用率、內存交換頁面數、磁盤IO狀態、網卡帶寬使用情況等;
- 數據庫:數據庫連接數、數據庫讀寫響應時長、數據庫讀寫吞吐量等;
- 網絡:網絡吞吐量、網絡帶寬、網絡緩衝池大小;
- 緩存(Redis):靜態資源緩存命中率、動態數據緩存命中率、緩存吞吐量等;
- 測試設備(壓力發生器):CPU利用率、處理器隊列長度、內存利用率、內存交換頁面數、磁盤IO狀態、網卡帶寬使用情況等。
性能測試工具的基本組成:
1.壓力生成器
2.資源監控器
3.負載控制器
4.結果採集器
5.結果分析器