一、驗收效能測試
通過模擬生產執行的業務壓力量和使用場景組合,測試系統的效能是否滿足生產效能要求,具有以下特點:
1、主要目的是驗證系統是否具有系統宣稱的能力,包括確定使用者場景、給出需要關注的效能指標、測試執行、測試分析幾個步驟;
2、事先了解被測試系統的典型業務場景,並具有確定的效能目標;
3、已確定執行環境(硬體裝置、軟體裝置、網路條件、基礎資料等)。
二、負載測試(可置性測試)
在被測系統上不斷增加壓力,直到效能指標超過預定指標或者某種資源使用已經達到飽和狀態,可以找到系統的處理極限,為系統調優提供資料,具有以下特點:
1、主要目的是找到系統處理能力的極限,描述為“在某條件下最多允許100個使用者併發訪問”,“在某條件下一小時內最多處理2000條資料”;
2、測試環境確定,也需要考慮被測系統的業務壓力量和典型場景,使得測試結果具有業務上的意義;
3、一般用來了解系統的效能容量,或是配合效能調優來使用。
三、壓力測試
測試系統在一定飽和狀態下(CPU/記憶體等飽和),系統能夠處理的會話能力以及系統是否出現錯誤,具有以下特點:
1、主要目的是檢查系統處於壓力情況下時應用的效能表現;
2、一般通過模擬負載等方法,使得系統的資源使用達到較高的水平。除CPU和記憶體使用率外,JVM可用記憶體、資料庫連線數、資料庫伺服器CPU使用率等都可以作為壓力的依據;
3、可用於測試系統的穩定性,基於這種原理:如果一個系統能夠在壓力環境下穩定執行一段時間,那麼這個系統在平時的執行條件下也是冇問題的。
四、配置測試
通過對被測系統軟硬體環境的調整,瞭解各種不同環境對系統效能影響的程度,從而找到系統各項資源的最優分配原則,具有以下特點:
1、主要目的是瞭解各種不同因素對系統效能影響的程度,從而判斷出最值得進行的調優操作;
2、一般在對系統效能狀況有初步瞭解後進行,在確定的環境、操作步驟和壓力條件下進行,比較每次的測試結果找出影響最大的因素;
3、一般用於效能調優和規劃能力。
五、併發測試
通過模擬使用者的併發訪問,測試多使用者併發操作時是否存在死鎖等效能問題,具有以下特點:
1、主要目的是發現系統中可能隱藏的併發訪問時的問題;
2、主要關注系統可能存在的併發問題,例記憶體洩露、執行緒鎖和資源競爭方面的問題
3、可在開發的各個階段使用,需要相關的測試工具配合和支援。
併發測試主要關注的問題
問題型別 | 問題描述 |
記憶體問題 | 是否有記憶體洩露(C/C++) |
是否有太多的臨時物件(Java) | |
是否有太多的超過設計生命週期的物件(Java) | |
資料庫問題 | 是否有資料庫死鎖(Dead Lock) |
是否經常出現長事務(Long Transaction) | |
執行緒/程式問題 | 是否出現執行緒/程式同步失敗 |
其他問題 | 是否出現資源競爭導致的死鎖 |
是否沒有正確處理異常(例如超時)導致系統死鎖 |
六、可靠性測試
通過給系統載入一定的業務壓力(例資源在70%-90%的使用率),讓應用持續執行一段時間,測試系統在這種條件下能否穩定執行,具有以下特點:
(PS:這裡的可靠性測試並不等同於“獲得軟體的可靠性”,軟體的可靠性是個很大的話題,其一般用平均無故障時間或者失效率來衡量。)
1、主要目的是驗證系統是否支援長期穩定的執行;
2、需要在壓力下持續一段時間的執行(非關鍵應用,一般進行3*24的穩定性測試即可);
3、測試過程中需要關注系統的執行狀況,如果發現隨著時間的推移,RT或者資源使用率有明顯波動,則可能是不穩定的前奏。
七、失效恢復測試
針對有冗餘備份和負載均衡的系統設計的,可以用來檢驗如果系統區域性發生故障,使用者是否能夠繼續使用系統,以及會受到多大的影響,具有以下特點:
1、主要目的是驗證在區域性故障情況下,系統能否繼續使用;
2、需要給出當問題發生時,能支援多少使用者訪問和採取何種應急措施的方案;
3、一般來說,只有對系統持續執行指標有明確要求的系統才需要進行這種型別的測試。
------------------------------------------------------------------分割線----------------------------------------------------------------------
下圖是效能測試應用領域與測試方法的關聯
能力驗證 | 規劃能力 | 效能調優 | 缺陷發現 | 效能基準比較 | |
效能測試 | ★ | ||||
負載測試 | ★ | ★ | |||
壓力測試 | ★ | ★ | ★ | ★ | ★ |
配置測試 | ★ | ★ | |||
併發測試 | ★ | ★ | |||
可靠性測試 | ★ | ||||
失效恢復測試 | ★ | ★ | ★ |
____春風送君千萬裡,且飲長亭念故人