1. 程式人生 > >性能測試學習(一)--基礎知識點

性能測試學習(一)--基礎知識點

知識 web服務器 穩定 性能 str 檢測 存在 測試的 長時間

最近在學習性能測試,整理了下一些知識點。

  首先從ISO9216質量模型切入,這個模型展示了去完整測評一個軟件的時候,需要從哪些維度去考慮。如下圖所示,一般需要從功能性、可靠性、易用性、效率、維護性、可移植性這6個維度去測評。軟件的性能測試就是從效率這一維度去測評軟件。

  簡單的對效率這一維度裏的內容進行解讀:

  • 時間特性:就是軟件的快慢,能否達到用戶的需求?
  • 資源利用率:在達到時間特性以後,對資源的利用率是否在用戶的期望之下?

技術分享圖片

  那麽,給出性能測試的定義:

觀察系統在一個給定的環境和場景中的性能表現是否與預期目標一致,評判系統是否存在性能缺陷,並根據測試結果識別性能瓶頸,改善系統性能的完整的過程。

  在定義裏,需要特別關註標紅的部分,在描述性能測試時,需要基於給定的環境和場景。給定的環境涉及: 硬件服務器、操作系統、網絡、數據庫、Web服務器、應用服務器。場景就是指用戶如何使用。

技術分享圖片

  在做性能測試時,目標是很多的,針對不同的目標就會采用不同的測試策略。

  • 負載測試
在一定的軟件、硬件及網絡環境下,通過改變負載方式、增加負載等來發現系統中所存在的性能問題。

  這種測試主要用於確定系統所能承載的最大用戶數(系統不崩潰),最佳用戶數(用戶體驗最好,系統能支撐的最大的數量)。和在不同用戶數(常見用戶數)下的系統響應時間及服務器的資源利用率。

  • 壓力測試
在一定的軟硬件及網絡環境下,通過模擬大量的虛擬用戶向服務器產生負載,使服務器的資源處於極限狀態(超出能力範圍)下長時間連續運行。

  目的測試服務器在高負載情況下是否能夠穩定工作,找出系統最薄弱環節。然後可以進行正對性優化。

  • 並發測試
通過模擬多個用戶並發訪問同一個應用、同一存儲過程或數據記錄以及其他並發操作。

  測試是否存在死鎖、數據錯誤等故障。並發搶資源很容易發生問題。

  • 穩定性測試
在一定的軟件、硬件及網絡環境下,模擬一定數量虛擬用戶運行一種或者多種業務,長時間的運行(7*24)系統。

  目的是檢測系統在長時間運行下的穩定性和性能指標是否符合預期。可以發現資源泄露這類問題。

性能測試學習(一)--基礎知識點