性能測試,負載測試,壓力測試,容量測試的區別


性能測試(Performance Test):以系統設計初期規划的性能指標為預期目標,對系統不斷施加壓力,驗證系統在資源可接受范圍內,是否能達到性能預期。
關注點:
how much和how fast

負載測試:對系統不斷地增加並發請求以增加系統壓力,直到系統的某項或多項性能指標達到安全臨界值,如某種資源已經呈飽和狀態,這時繼續對系統施加壓力,系統的處理能力不但不能提高,反而會下降。
關注點:how much

壓力測試:超過安全負載的情況下,對系統繼續施加壓力,知道系統崩潰或不能再處理任何請求,以此獲得系統最大壓力承受能力。

強度測試:強度測試是一種性能測試,他在系統資源特別低的情況下軟件系統運行情況,目的是找到系統在哪里失效以及如何失效的地方。包括

  • Spike testing:短時間的極端負載測試
  • Extreme testing:在過量用戶下的負載測試
  • Hammer testing:連續執行所有能做的操作
  • 壓力測試:通過逐步增加系統負載,確定在什么負載條件下系統處於失效狀態,以此來獲得系統能提供的最大服務級別。

容量測試:確定系統可處理同時在線的最大用戶數。,使系統承受超額的數據容量來發現它是否能夠正確處理。
關注點:how much(而不是how fast)

其中,容量測試、負載測試、強度測試的英文解釋為:
Volume Testing = Large amounts of data
Load Testing = Large amount of users
Stress Testing = Too many users, too much data, too little time and too little room

 

性能測試的曲線如上圖,測試目標是評估系統性能是否符合需要及設計目標;隨着壓力的持續增加,系統處理能力增加變緩,直到達到一個最大值(c點),這是系統的最大負載點,這一段被稱作負載測試。測試目標是評估當系統因為突發事件超出日常訪問壓力的情況下,保證系統正常運行情況下能夠承受的最大訪問負載壓力;超過這個點后,再增加壓力,系統的處理能力反而下降,而資源消耗缺更多,知道資源消耗達到極限(d點),這個點可以看做是系統的崩潰點,超過這個點極限加大並發請求數目,系統不能再處理任何請求,這一段被稱作壓力測試,測試目標是評估可能導致系統崩潰的最大訪問負載壓力。性能測試反應的是系統在實際生產環境中使用時,隨着用戶並發訪問數量的增加,系統的處理能力與性能曲線相對應的是用戶訪問的等待實際(系統響應時間),如下圖:

 

 

1.強度測試或壓力測試:強度或壓力測試是在一種需要異常數量、頻率或資源的方式下,執行可重復的負載測試,以檢查程序對異常情況的抵抗能力,找出性能瓶頸。異常情況,主要指那些峰值、極限值、大量數據的長時間處理等,包括:連接或模擬了最大(實際或實際允許)數量的客戶機; 所有客戶機在長時間內執行相同的、性能可能最不穩定的重要業務功能;已達到最大的數據庫大小,而且同時執行多個查詢或報表事務當中斷的正常頻率為每秒一至兩個時,運行每秒產生十個中斷的測試用例;運行可能導致虛存操作系統崩潰或大量數據對磁盤進行存取操作的測試用例等。

壓力測試可以分為穩定性測試破壞性測試
穩定性壓力測試:在選定的壓力值下,持續運行24小時以上的測試。通過壓力測試,可以考察各項性能指標是否在指定范圍內,有無內存泄漏、有無功能性故障等。

破壞性壓力測試:在壓力穩定性測試中可能會出現一些問題,如系統性能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來。 
在壓力測試中,會給程序加上一些跟蹤機制(如log、日志等),然后查看監視系統、服務器等性能的日志文件是必要的,找出問題出現的關鍵時間或檢查測試運行參數,通過分析問題或參數從而有目的地調整測試策略或測試環境,使壓力測試結果真實地反映出軟件的性能。

2.性能測試系統的性能指標:一般會在產品需求文檔中有明確定義,

有三種形式描述軟件系統的性能指標:

  • 給出產品性能的主要指標(如響應時間):如在100000記錄中查詢一個特定數據的時間為0.5秒。
  • 與上個基線對比:以某個已發布的版本為基線,如比上一個版本的性能提高30-50%。
  • 與競爭對手的同類產品比較:也叫對標。 

性能測試,根據其目的分為:產品性能質量測試,通過測試,決定產品是否達到產品規格書所要求的性能指標(非功能性需求)基准值測試,通過對當前產品的性能測試,確定產品具體的性能指標,建立性能指標基准。基准值,作為后繼產品發布的性能參考(在新版本中,性能指標要求只升不降)或和競爭對手產品比較的參考。 
性能規划測試,通過不斷的測試,確定所需要的硬件配置(內存、CPU、網絡等)、軟件配置,以滿足實現定義的性能指標要求。這種測試,對於軟件系統的部署是非常有意義的。同時,也可以進一步了解硬件參數、軟件參數對系統性能的影響程度,從而保證系統具有很好的擴充性或事先制定較好的系統增容的計划。 
性能測試的方法,主要有:穩定壓力加載,一次性將負載加到某個水平,持續一段時間,也稱為flat測試。 逐漸加載或交替加載到某個負載水平,也稱為“ramp-up”測試。 峰谷測試,確定從系統高峰時間的負載轉為幾乎空閑、再攀升到高負載這樣峰值交替情況下的系統性能狀態/指標。這種測試兼有容量測試的特點或屬於容量測試的一部分。 
性能測試,一般都通過測試工具來模擬人為的操作而進行。性能測試的重點在於測試環境的建立、前期數據的設計與后期數據的分析。因為性能測試需要獲得一定特定條件下(如100、200、500、1000個實時的連接)的系統占用資源(CPU、內存等)數據或系統行為表現,而且還要依靠測試工具或軟件系統記錄下這些指標變化的數據結果。例如,如果對一個Browser/Server結構的網絡實時在線的培訓系統軟件進行測試,系統性能焦點是在不同數量的並發連接下,服務器的CPU、內存的占用率、客戶端的響應時間等。測試過程中,並發連接的不斷增加(負載的增加)在系統性能上的表現越來越明顯。在系統性能測試時,加載過程中,每到一個測試點時須讓系統平穩運行一段時間后再獲取數據,以消除不同測試點的相互影響。從表中可以看出,同樣是300個用戶,1?00與60?的性能表現差別很大,加載的方式對系統性能影響也較大,所以,盡量模擬不同的加載方式來進行系統的性能測試。除此之外,還可以測試TCP、HTTPS等不同連接方式下的數據,進行比較。通過比較和分析,可以清楚知道系統的性能狀況,以及什么樣的條件下系統性能達到最佳狀況、什么地方是性能的瓶頸。性能測試要求測試環境應盡量與產品運行環境保持一致,應單獨運行,盡量避免與其他軟件同時使用。

3.容量測試
通過性能測試,如果找到了系統的極限或苛刻的環境中系統的性能表現,在一定的程度上,我們完成了負載測試和容量測試。容量可以看作系統性能指標中一個特定環境下的一個特定性能指標,即設定的界限或極限值。容量測試目的是通過測試預先分析出反映軟件系統應用特征的某項指標的極限值(如最大並發用戶數、數據庫記錄數等),系統在其極限值狀態下沒有出現任何軟件故障或還能保持主要功能正常運行。容量測試還將確定測試對象在給定時間內能夠持續處理的最大負載或工作量。對軟件容量的測試,能讓軟件開發商或用戶了解該軟件系統的承載能力或提供服務的能力,如某個電子商務網站所能承受的、同時進行交易或結算的在線用戶數。知道了系統的實際容量,如果不能滿足設計要求,就應該尋求新的技術解決方案,以提高系統的容量。有了對軟件負載的准確預測,不僅能對軟件系統在實際使用中的性能狀況充滿信心,同時也可以幫助用戶經濟地規划應用系統,優化系統的部署。

阿里的容量測試:

壓力測試、容量測試和性能測試的關系:壓力測試可以看作是容量測試、性能測試和可靠性測試的一種手段,不是直接的測試目標。壓力測試的重點在於發現功能性測試所不易發現的系統方面的缺陷。而容量測試和性能測試是系統測試的主要目標內容,也就是確定軟件產品或系統的非功能性方面的質量特征,包括具體的特征值。容量測試和性能測試更着力於提供性能與容量方面的數據,為軟件系統部署、維護、質量改進服務,並可以幫助市場定位、銷售人員對客戶的解釋、廣告宣傳等服務。壓力測試、容量測試、性能測試,測試的方法相似、相通,在實際測試工作中,往往結合起來進行,以提高測試效率。一般會設置專門的性能測試實驗室,完成這些工作。即使用虛擬的手段模擬實際操作,所需要的客戶端有時還是很大的,所以性能測試實驗室的投資較大。

 

性能分析

排查手法基本相同:檢查請求處理的各個環節的日志,分析哪個環節響應時間不合理,超過預期;然后檢查監控數據,分析影響性能的主要因素是內存、磁盤、網絡、還是CPU,是代碼問題還是架構設計不合理,或者系統資源確實不足。

 

 

 

 

 

 

 

如:硬盤容量的最大值,文件系統容量的最大值,最大文件長度,緩沖區長度等

15.找出臨時存儲媒介的限定范圍

如:郵箱,CD的最大長度

16.查找通信的限制

如:消息文件的超時或最大長度。查出快超時前有多少數據可以傳輸

17.尋找數據臨時存放的地方,找出存儲數據、讀和取出這些數據的功能。

制作存儲和刪除兩個過程的測試場景,找出該地方是否會填滿或溢出。

18.長時間不停的多個用戶同時進行系統的各項操作(一般用腳本或工具實現),觀察系統資源占用情況,直到系統無反應或死機為止,獲取系統可以承受的最大業務處理量,或最多訪問用戶數,提交給開發,讓其設置系統容量檢查指標

19.網絡容量測試,檢查系統中是否存在網絡數據傳輸功能,如果存在,通過壓力測試,獲得網絡最大傳輸量,提交給開發,讓其設置網絡容量檢查指標

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM