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

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

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

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

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

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

 

  那麼,給出效能測試的定義:

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

  在定義裡,需要特別關注標紅的部分,在描述效能測試時,需要基於給定的環境和場景。給定的環境涉及: 硬體伺服器、作業系統、網路、資料庫、Web伺服器、應用伺服器。場景就是指使用者如何使用。

 

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

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

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

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

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

  • 併發測試
通過模擬多個使用者併發訪問同一個應用、同一儲存過程或資料記錄以及其他併發操作。

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

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

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