性能測試也分好幾種類型,常見的類型有負載測試和壓力測試,當然,並發測試也是比較常見的類型,下面就一一列出來。
PS:文末附上一張性能測試類型的思維導圖
1、負載測試(可置性測試)
定義:在被測系統上不斷增加壓力,直到性能指標(如響應時間)超過預期指標或者某種資源使用已經達到飽和狀態。可以找到系統的處理極限,為系統調優提供數據
特點:
1):該方法主要目的是找到系統處理能力的極限
2):該方法在給定的測試環境下進行,通常需要考慮被測系統的業務壓力量和典型場景
3):該方法一般用來了解系統的性能容量,或者是配合性能調優來使用
性能容量:系統在保證一定響應時間的情況下能夠允許多少並發用戶的訪問
2、壓力測試
定義:系統在一定飽和狀態下,例如CPU、內存等飽和情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤
特點:
1)該方法的主要目的是檢查系統處於壓力情況下是應用的性能表現
該方法通過增加訪問壓力,使系統資源使用保持在一定水平,檢驗此時應用的表現,重點在於有誤出錯信息產生,系統對應用的響應時間等
2)該方法一般通過模擬負載等方法,使得系統的資源使用達到較高的水平
3、驗收性能測試
定義:特定條件下驗證系統的能力狀況
特點:
1)該方法主要目的是驗證系統是否具有系統宣稱的能力。
方法包括:確定用戶場景,給出需要關注的性能指標,測試執行,測試分析幾個步驟
2)該方法需要事先了解被測系統的典型場景,並具有確定的性能目標
3)這種方法要求在已確定的環境下進行
4、配置測試
定義:通過對被測系統軟硬體環境的調整,了解各種不同環境對系統性能影響的程度,從而找到系統各項資源的最優分配原則
特點:
1)該方法主要目的是了解各種不同因素對系統系能影響的程度,從而判斷出最值得進行的調優操作
2)該方法一般在對系統性能狀況有初步了解後進行
需要在確定的環境、操作步驟和壓力條件下進行
3)該方法一般用於性能調優和規劃能力
5、並發測試
定義:模擬多用戶並發訪問同一個應用、模塊或者數據記錄時是否存在死鎖或者其他性能問題
特點:
1)該方法主要目的是發現系統中可能存在的並發訪問時的問題
2)該方法主要關注系統中可能存在的並發問題。比如:內存泄漏、線程鎖和資源爭用等問題
3)該方法可以在開發的各個階段使用,需要相關的測試工具的配合和支持
常用工具:商業軟體loadrunner:功能完整強大,內存占用大,需要收費
開源工具Jmeter:開源免費,自由,操作較簡單,能輔助完成日常的一些測試工作
6、可靠性測試
定義:給系統施加一定的業務壓力,讓其持續運行一段時間,測試在這種條件下能否穩定運行
特點:
1)該方法的主要目的是驗證系統是否支持長期穩定的運行
2)該方法需要在壓力下持續一段時間的運行
3)測試過程中需要關注系統的運行情況
比如:內存使用或者其他資源的使用以及響應時間有無明顯變化
7、失效恢復測試
針對有多餘備份和負載均衡的系統設計
定義:檢測如果系統局部發生故障,系統能否繼續使用
特點:
1)該方法主要目的是驗證局部故障下系統能否繼續使用
2)該方法需要指出:問題發生時「能支持多少用戶訪問」和「採取何種應急措施」
一般只有對系統持續運行能力有明確指標的系統才需要該類型測試
上述幾種類型是針對書中的知識點的歸納,下面列出自己對並發,負載,壓力的理解。。。。。。
負載測試:通過不斷加壓使系統達到瓶頸,為調優提供參考數據
壓力測試:
1)穩定性壓力測試:在不同的給定的條件下(比如內存的使用,一定時間段內有多少請求等),系統表現出來的處理,反應能力(這裡會考慮系統的容錯能力,恢復能力)
2)破壞性壓力測試:不斷加壓,直至系統崩潰,掛掉,來得出系統的最大承受能力在哪兒
並發測試:簡單理解就是業務場景短時間內有大量的請求需要處理,一般出現在登陸或者某些比較重要的模塊,按鈕。
8、類型導圖
感謝每一個認真閱讀我文章的人!!!
如果下面這些資料用得到的話可以直接拿走:
1、自學開發或者測試必備的完整項目源碼與環境
2、測試工作中所有模板(測試計劃、測試用例、測試報告等)
3、軟體測試經典面試題
4、Python/Java自動化測試實戰.pdf
5、Jmeter/postman接口測試全套視頻獲取
我個人整理了我這幾年軟體測試生涯整理的一些技術資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學項目等。如果在學習或工作中遇到問題可以直接進群詢問,群里也會有大神幫忙解答,需要的可以找我謝謝。