背景
最近看了一些資料,對性能的分類又重新進行了整理,在這里做好筆記和記錄
性能測試的目標和類型
性能測試
通過模擬生產運行的業務壓力量和使用場景組合,量化的評估被測系統的響應時間和容量等維度的指標。
目標,要點
- 這種方法是對系統性能已經有了解的前提,並對需求有明確的目標,並在已經確定的環境下進行的。
- 這種方法的主要目的是驗證系統是否有系統宣稱具有的能力。
- 這種方法要事先了解被測試系統經典場景,並具有確定的性能目標。
- 這種方法要求在已經確定的環境下運行。
負載測試
通過改變系統負載方式、增加負載在被測系統上不斷加壓,直到性能指標達到極限等來發現系統中所存在的性能問題。這種方法是對一個系統持續不段的加壓,看你在什么時候已經超出“我的要求”或系統崩潰。
目標,要點:
- 這種性能測試方法的主要目的是找到系統處理能力的極限。
- 這種性能測試方法需要在給定的測試環境下進行,通常也需要考慮被測試系統的業務壓力量和典型場景、使得測試結果具有業務上的意義。
- 了解系統性能的極限,拐點
- 當超過極限的時候,系統的行為是什么
- 幫助我們遭到系統的瓶頸
壓力測試
在高負載情況下來對系統的穩定性進行測試,例如cpu、內存在飽和使用情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤。讓系統處在很大強度的壓力之下,看系統是否穩定,哪里會出問題。
目標,要點:
- 這種性能測試方法的主要目的是檢查系統處於壓力性能下時,應用的表現。
- 這種性能測試一般通過模擬負載等方法,使得系統的資源使用達到較高的水平。
- 這種性能測試方法一般用於測試系統的穩定性。
耐久性測試
在給系統加載一定業務壓力的情況下,使系統運行一段時間,以此檢測系統是否穩定。
目標,要點:
- 這種性能測試方法的主要目的是驗證是否支持長期穩定的運行。
- 這種性能測試方法需要在壓力下持續一段時間的運行。(2~3天)
- 測試過程中需要關注系統的運行狀況。
可擴展性/配置測試
配置測試方法通過對被測系統的軟\硬件環境的調整,了解各種不同對系統的性能影響的程度,從而找到系統各項資源的最優分配原則。這種測試關注點是“微調”,通過對軟硬件的不段調整,找出這他們的最佳狀態,使系統達到一個最強的狀態。
目標,要點:
- 這種性能測試方法的主要目的是了解各種不同因素對系統性能影響的程度,從而判斷出最值得進行的調優操作。
- 這種性能測試方法一般在對系統性能狀況有初步了解后進行。
- 這種性能測試方法一般用於性能調優和規划能力。
並發測試
並發測試方法通過模擬用戶並發訪問,測試多用戶並發訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或其者他性能問題。
目標,要點:
- 這種性能測試方法的主要目的是發現系統中可能隱藏的並發訪問時的問題。
- 這種性能測試方法主要關注系統可能存在的並發問題,例如系統中的內存泄漏、線程鎖和資源爭用方面的問題。
- 這種性能測試方法可以在開發的各個階段使用需要相關的測試工具的配合和支持。
負載測試(Load testing)、壓力測試(Stress Test,應稱為強度測試)和性能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。
性能測試是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的性能指標數據,而負載測試、壓力測試是為了發現軟件系統中所存在的問題,包括性能瓶頸、內存泄漏等。通過負載測試,也是為了獲得系統正常工作時所能承受的最大負載,這時負載測試就成為容量測試。通過壓力測試,可以知道在什么極限情況下系統會崩潰、系統是否具有自我恢復性等,但更多的是為了確定系統的穩定性。
負載測試
通過改變系統負載方式、增加負載等來發現系統中所存在的性能問題。負載測試是一種測試方法,可以為性能測試、壓力測試所采用。負載測試的加載方式也有很多種,可以根據測試需要來選擇。
實際操作以模擬實際軟件系統所承受的負載條件的系統負荷,通過不斷加載(如逐漸增加模擬用戶的數量)或其它加載方式來觀察不同負載下系統的響應時間和數據吞吐量、系統占用的資源(如CPU、內存)等,以檢驗系統的行為和特性,以發現系統可能存在的性能瓶頸、內存泄漏、不能實時同步等問題。負載測試更多地體現了一種方法或一種技術。
性能測試
為獲取或驗證系統性能指標而進行測試。多數情況下,性能測試會在不同負載情況下進行。
壓力測試
在高負載情況下來對系統的穩定性進行測試,更有效地發現系統穩定性的隱患和系統在負載峰值的條件下功能隱患等。
實際操作是在強負載(大數據量、大量並發用戶等)下的測試,查看應用系統在峰值使用情況下操作行為,從而有效地發現系統的某項功能隱患、系統是否具有良好的容錯能力和可恢復能力。壓力測試分為高負載下的長時間(如24小時以上)的穩定性壓力測試和極限負載情況下導致系統崩潰的破壞性壓力測試。