性能測試方法詳解(驗收性能、負載、壓力、配置、併發、可靠性、失敗恢復)

一、性能測試

性能測試時通過自動化測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行,通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況,壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別測試。

 

二、性能測試包括的方法:

1、驗收性能測試

2、負載測試

3、壓力測試

4、配置測試

5、併發測試

6、可靠性測試

7、失敗恢復測試

 

 

驗收性能測試:通過模擬生產運行的業務壓力量和使用場景組合,測試系統的性能是否滿足生產性能要求。

特點:

1、這種方法主要目的驗證系統是否具有系統宣稱具有的能力。方法包括確定用戶場景、給出需要關注的性能指標、測試執行、測試分析幾個步驟,這是一種完全確定了系統運行環境和測試行爲的測試方法,目的只能是依據事先的性能規劃,驗證系統是否達到其宣稱的具有的能力。

2、這種方法需要事先了解被測試系統的典型場景,並具有確定的性能目標。

驗收性能測試方法需要首先了解被測系統的典型場景,所謂的典型場景,是指具有代表性的用戶業務操作,一個典型場景包括操作序列和併發用戶數量條件,這種方法需要有確定的性能目標,性能目標的描述方式一般爲“要求系統在100個併發用戶的條件下進行A業務操作,響應時間不超過5秒”。

3、這種方法要求在已確定的環境下運行。

驗收性能測試方法的運行環境必須是確定的。軟件系統的性能表現與很多因素相關,無法根據系統在一個環境上的表現去推斷其在另一個不同環境中的表現,因此對這種驗證性的測試,必須要求測試時的環境(硬件設備、軟件環境、網絡環境、基礎數據等)都已經確定

 

負載測試方法在被測系統上不斷增加壓力,直到性能指標(如響應時間)超過預定指標或者某種資源使用已經達到飽和狀態。負載測試方法可以找到系統的處理極限,爲系統調優提供數據,有時也被稱爲可置性測試。

1、這種性能測試方法的主要目的是找到系統處理能力的極限。

負載測試方法通過“檢測—加壓—性能指標超過預期”的手段,找到系統處理能力的極限,該極限一般會用“在給定條件下最多允許120個併發用戶訪問”或是“在給定條件下最多能夠在1小時內處理2100筆業務”這樣的描述來體現。而預期的性能指標一般會被定義爲“響應時間不超過10秒”、“服務器平均CPU利用率低於65%”等指標

2、這種性能測試方法需要在給定的測試環境下進行,通常也需要考慮被測系統的業務壓力量和典型場景,使得測試結果具有業務上的意義。

負載測試方法由於涉及預定的性能指標等需要進行比較的數據,也必須在給定的測試環境下進行,負載測試方法在“加壓”的時候,必須選擇典型場景,在增加壓力時保證這種壓力具有業務上的意義。

3、這種性能測試方法一般來了解系統的性能容量,或是配合性能調優來使用。

負載測試方法可以用來了解系統的性能容量(系統在保證一定響應時間的情況下能夠允許多少併發用戶的訪問),或是用來配合性能調優,比比較調優前後的性能差異

 

壓力測試:方法測試系統在一定飽和狀態下,例如CPU、內存等在飽和使用情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤。

特點:

1、這種性能測試方法主要目的檢查系統處於壓力情況下時應用的性能表現。

壓力測試方法通過增加訪問壓力(如增加併發的用戶數據等),使應用系統的資源使用保持在一定的水平,這種測試方法的主要目的是檢驗此時應用表現,重點在於有無出錯信息產生、系統對應用的響應時間等。

2、這種性能測試一般通過模擬負載等方法,使得系統的資源使用達到較高的水平。

一般情況下,會把壓力設定爲“CPU使用率達到75%以上、內存使用率達到70%以上”這樣的描述,在這種情況下測試系統響應時間、系統有無產生錯誤,除了CPU和內存使用率的設定外、JVM的可用內存、數據庫的連接數、數據庫服務器CPU利用率等都可以作爲壓力的依據。

3、這種性能測試方法一般用於測試系統的穩定性

用壓力測試的方法考察系統的穩定性是出於這樣的考慮:“如果一個系統能夠在壓力環境下穩定運行一段時間,那麼這個系統在通常的運行條件下應該可以達到令人滿意的穩定程度。”在壓力測試中,會考察系統在壓力下是否會出現錯誤,測試中是否有內存等方面的問題

 

配置測試通過對被測系統軟硬件環境的調整,瞭解各種不同環境對系統性能影響的程度,從而找到系統各項資源的最優分配原則。

特點:

1、配置測試性能方法的主要目的是瞭解各種不同因素對系統性能影響的程度,從而判斷出最值得進行的調優操作。

此配置測試方法不同於於功能測試並列的那個“配置測試”方法。對整個系統來說,配置測試時針對軟件而言,其主要目的是驗證軟件能夠在不同的軟硬件環境中正常運行,是功能上的驗證,而這裏提到配置測試方法,是在測試領域內的配置測試方法,其主要目的是瞭解各種因素對系統性能的影響程序,從而判斷出對性能影響最大的因素。

2、這種性能測試方法一般在對系統性能狀況有初步瞭解後進行

配置測試方法需要在確定的環境、操作步驟和壓力條件下進行。該方法在每次執行測試時更換、擴充硬件設備,調整網絡環境,調整應用服務器和數據庫服務器的參數設置,比較每次測試結果,從而確定各個因素對系統性能的影響,找出影響最大因素。

3、這種性能測試方法一般用於性能調優和規劃能力

配置測試方法主要用於性能調優領域,可以實現調優的持續進行,在規劃能力領域內,該方法也常被用來評估如何調整才能實現系統的擴展性。

 

併發測試通過模擬用戶的併發訪問,測試多用戶併發訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其他性能問題。

特點:

1、這種性能測試方法的主要目的是發現系統中可能隱藏的併發訪問時的問題

併發測試方法是通過併發的手段發現系統中存在問題的最常用方法

2、這種性能測試方法主要關注系統可能存在的併發問題,例如系統中的內存泄漏、線程鎖和資源爭用的問題;併發測試在測試過程中主要關注系統中的內存泄漏、死鎖等問題。

3、這種性能測試方法可以在開發的各個階段使用,需要相關的測試工具的配合和支持

併發測試可以針對整個系統進行,也可以僅僅爲了驗證某種架構或是設計的合理性進行,因此其可以在開發的各個階段使用。一般來說,併發測試除了需要性能測試工具進行併發負載的產生外,還需要一些其他工具進行代碼級別的檢查和定位,Compuware公司的DevPartner工具、ej-technologie公司的JProfile工具、Quest公司的JProbe工具等可以在這方面發揮作用

 

可靠性測試:通過給系統加載一定的業務壓力(例如資源在70%~90%的使用率),讓應用持續運行一段時間,測試系統在這種條件下能否穩定運行

特點:

1、這種性能測試方法的主要目的是驗證系統是否支持長期穩定的運行,

可靠性測試方法的目的是驗證系統是否能夠支持長期穩定的運行,直觀來說,在較大的壓力下進行一個較長時間的測試,如果系統在測試中不出現問題或是不好的徵兆,基本上可以說明系統具備長期穩定運行的條件。

2、這種性能測試方法需要在壓力下持續一段時間的運行。

既然是穩定性測試,至少需要讓系統在壓力下運行一段時間,這段時間的具體數值需要根據系統的穩定性要求確定,對一般的非關鍵的大型應用來說,一般讓系統處於可能的峯值壓力下,進行2~3天的穩定性測試即可。

3、測試過程中需要關注系統的運行狀況

在運行過程中,一般需要關注系統的內存使用狀態、系統的其他資源使用以及系統響應的時間有無明顯變化。如果測試過程中發現,隨着時間的推移,響應時間又明顯變化,或是系統資源使用率有明顯波動,都可能是系統不穩定的徵兆,重點關注

 

失效恢復測試:方法是針對有冗餘備份和負載均衡的系統設計的,這種測試方法可以用來檢驗如果系統局部發生故障,用戶是否能夠繼續使用系統,以及如果這種情況發生,用戶將受到多大程度的影響。

特點:

1、這種性能測試方法的主要目的是驗證在局部故障情況下,系統能夠繼續使用

一般關鍵業務系統都會採用熱備份或負載均衡的方式來實現,這種業務系統一般要求如果有一臺或幾臺服務器出現問題,應用系統仍然能夠正常執行業務。失效恢復測試方法可以在測試中模擬一臺或幾臺設備故障,驗證預期的恢復技術是否能夠發揮作用。

2、這種性能測試方法還需要指出,當問題發生時“能支持多少用戶訪問”的結論和“採取何種應急措施”的方案。

當一臺或多臺服務器出現問題後,系統一定會受到性能甚至是功能上的部分損失。必須在測試中明確得出“當問題發生時,系統還能支持多少用戶的併發訪問?是否要採取某些必要措施?”這種問題的明確答案

3、一般來說,只有對系統持續運行指標有明確要求的系統才需要進行這種類型的測試

不是所有的系統都需要進行失效恢復測試,尤其是並沒有明確給出系統持續運行指標的系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章