性能测试的分类
性能測試中最常見的要屬于負載測試、壓力測試了。此外,并發測試在經常被提及到。
根據大多數人總結的通用法則,可將性能測試主要分為以下幾種方法:
1、驗收性能測試
2、負載測試
3、壓力測試
4、配置測試
5、并發測試
6、可靠性測試
7、失敗回復測試
針對以上幾種類型,分別闡述以下對應的認知:
?
一、驗收性能測試
定義:通過模擬產生運行時的業務壓力量和不同的使用場景進行組合。進而測試系統的性能能不能滿足生產的性能要求。
目的:驗證系統是否具有系統最初定下的性能能力。
過程:確定用戶場景、確定需要關注的性能指標、測試執行、測試分析結果。
開展時機:確定了測試場景、系統運行環境,包括不限于硬件設備、軟件環境、網絡條件、基礎數據等時開展。
前提條件:了解了被測系統的典型場景(可以理解為參與測試的業務場景)、確定了性能測試目標(多描述為:系統在XX個并發的條件下進行A業務操作(單個或者多個),響應時間不超過X秒)。
?
二、負載測試
定義:在被測系統上不斷增加壓力,知道性能指標超過預定指標或某種資源使用已經達到飽和狀態這種請款下的測試。
用途:找到系統的處理極限時的瓶頸,為系統調優提供數據支撐,了解系統的性能容量,或者比較調優前后的性能差異。
過程:檢測--加壓--性能指標超過預期
結果描述:如在給定條件下最多允許120個并發用戶訪問;在改定條件下最多能夠在一個小時內處理2100比業務。
目標描述:在給定條件下響應時間不超過10秒,CPU平均使用率不超過70%等
前提條件:已知且確定的系統環境,測試典型場景,預期目標。
注意事項:因為預期目標是建立在一定系統環境基礎上提出的,所以在測試開始之前,一定要確定被測系統的系統環境,目標測試場景,且是對目標測試場景進行加壓。這樣得出的結果才與實際預期目標具有可比性。
?
三、壓力測試
定義:當系統某一項或者多項指標在飽和狀態下進行的性能測試方法
目的:檢查系統在某種壓力情況下時應用的性能表現,重點在于有無出錯信息產生,系統的綜合處理能力。
用途:多用于測試系統的穩定性。
現實方式:通過不斷增加訪問壓力(如增加并發的用戶數量等)使系統的資源保持在一個較高的使用水平。
目標描述:如CPU使用率達75%以上;內存使用率達70%以上;JVM的客用內存;數據庫的連接數等
?
四、配置測試
定義:通過對被測系統軟件硬件環境的調整,了解各種不同環境對系統的性能的影響。
目的:通過測試獲得不同因素對系統性能的影響情況,然后對比獲得最佳的性能表現,進而采取對應的最佳配置方案。
用途:多用于性能調優和規劃能力,如何調整才能獲取最佳的擴展性。
前提條件:需要了解系統環境、操作步驟、壓力條件下進行。
實行過程:在每次執行測試時更換、擴充硬件設備,調整網絡環境,調整應用服務器、中間件和數據庫服務器的參數配置等,比較每次的測試結果,從而確定各個因素對系統性能的影響,最后找出影響系統的最大因素,確定最佳的配置方案。
注意:此處的配置測試與功能中所說的配置測試不一樣。區別在于:功能中的配置測試是為了驗證軟件在不同的軟硬件環境中能否正常運行。
?
五、并發測試
定義:通過模擬多用戶實現并發訪問的,測試多用戶訪問同一應用、同一模塊或者數據記錄時是否存在死鎖或者其他性能問題。
目的:發現系統中隱藏的因并發而會觸發的問題,主要有以下但不限于:
| 問題類別 | 問題描述 |
| 內存問題 | 是否有內存泄漏 |
| 是否會產生太多的臨時對象 | |
| 是否有太多的超過設計生命周期的的對象 | |
| 數據庫問題 | 是否有數據庫死鎖 |
| 數據不一致問題 | |
| 是否出現長事務 | |
| 線程/進程問題 | 是否出現慢SQL長時間阻死 |
| 是否出現線程/進程同步失敗 | |
| 其他問題 | 是否出現資源競爭導致的死鎖 |
| 是否沒正常處理的異常導致系統鎖死 |
?
實現條件:需要相關的測試工具的支持和配合,不僅僅只針對一個系統而言,同時頁可以對某種架構或者設計的合理性進行。
開展時機:可以在開發的各個階段進行。
?
六、可靠性測試
定義:通過給系統加載一定的業務壓力,達到某一個預定指標后,讓其應用持續運行一段時間,看在這種情況下系統能否穩定運行。多用平均無故障時間或失效率來衡量。
目的:驗證系統在某種特定的處境下是否可以長期穩定的運行。
時長:正常情況下,對于大型應用而言需要在峰值壓力下持續2~3天。
衡量條件:讓系統處于較大壓力下進行長時間的測試,如果系統不出現問題或不出現不好的征兆,基本上可以說明系統在當前條件下具備長時間穩定運行的要求。
?
七、失效恢復測試
定義:當系統某一部分出現故障時,是否還能支持所有用戶的業務執行,已經在某種情況下預期的恢復技術是否可以發揮其作用 ,對是對有冗余備份或負載均衡的系統設計的。
目的:1、驗證系統局部故障時,系統是否還能繼續使用。
2、得出在某種情況下系統還能支持多大的用戶訪問并發數,采取何種有效的保護措施等
限制條件:對數只對有明確要求的系統才會進行此類測試。對于沒有給出明確的需要持續運行指標的系統基本上都不需要做此類的測試。
?
大概就這么多吧,說的不對的麻煩大神及時指出,期待跟著大神的腳步一起起飛。
轉載于:https://www.cnblogs.com/Zhan-W/p/10091172.html
總結
- 上一篇: Python面向对象(类的成员之属性)
- 下一篇: 【转】JMeter学习(二十七)Jmet