效能測試vs負載測試vs壓力測試 概念普及

2022-01-19 03:48:52 字數 3025 閱讀 8213

下面我們主要介紹效能測試負載測試壓力測試

效率作為iso 9126內部和外部質量的重要質量屬性之一,其含義是在規定條件下,相對於所用的資源的數量,軟體產品可提供適當效能的能力。資源可能包括其他軟體產品或系統的軟體和硬體配置,以及其他相關的資源(例如:列印紙、磁碟等)。

效率測試主要關注產品的時間和資源相關的特性。時間相關的特性是指在規定條件下,軟體產品執行其功能時,提供適當的響應和處理時間以及吞吐量的能力,例如:使用者開啟某個網頁需要等待的時間;資源相關的特性是指,在規定條件下,軟體產品執行其功能時,使用合適數量和類別的資源的能力,例如:使用者在進行相關操作時,系統的記憶體和cpu的變化情況。

根據產品的時間特性和資源特性,效率測試可以包括不同的測試型別,例如:效能測試(performance test)、負載測試(load test)和壓力測試(stress test)。這三種效率測試型別,不僅在具體定義上面有不同的側重點,同時相互之間又是密切關聯的。

1)效能測試

效能測試主要評價系統或元件的效能是否和具體的效能需求一致,例如:對訪問速度的效能需求或對記憶體使用情況的需求。特定效能測試的關注點在於元件或系統在規定的時間內和特定的條件下響應使用者或系統輸入的能力。

不同的效能的度量方法取決於不同的被測物件。對於乙個單獨軟體元件,其效能可以根據cpu主頻來判定。而帶客戶端的系統,其效能則要根據系統處理特定使用者請求的響應時間來判定。對於那些由多種元件(如客戶端、伺服器、資料庫)構成的系統,則要進行各元件之間的效能測試。

產品的效能對使用者是否會持續使用該產品影響很大。表1所示是乙個使用者對訪問乙個獨立頁面時等待不同時間的態度分布。可以看到,當頁面載入時間在10秒的時候,有84%的使用者願意等待;但是當頁面載入時間達到30秒的時候,只有5%的使用者願意等待。

表1 使用者願意等待時間分布

表1中的資料考慮了網路的延遲。而如果在測試環境中,整個網路是被測試系統所獨佔的時候,對系統效能的要求要高的多。對於願意等待的時間,每個使用者的承受範圍是不同,而且使用者對不同的應用程式願意接受的等待時間也是不一樣的。下面是一組關於響應時間的效能需求描述:

效能測試關注的是系統效能是否和具體的效能需求相一致,而當系統效能超過效能需求的時候,系統的表現並不是測試人員關心的重點。

2)負載測試

負載測試是一種通過增加負載來評估元件或系統的效能的測試方法。例如:通過增加併發使用者數和(或)事務數量來測量元件或系統能夠承受的負載。負載測試和效能測試的主要區別在於負載測試時,系統負載是逐漸增加的,而不是一步到位,負載測試需要觀察系統在各種不同的負載情況下是否都能夠正常工作。

下圖是某**隨著使用者數量的增加,對應的響應時間也在增加的趨勢圖。具體趨勢如圖1所示。

圖1 某**負載測試中使用者數量和響應時間關係圖

3)壓力測試

壓力測試是評估系統處於或超過預期負載時系統的運**況。壓力測試的關注點在於系統在峰值負載或超出最大載荷情況下的處理能力。在壓力級別逐漸增加時,系統效能應該按照預期緩慢下降,但是不應該崩潰。壓力測試還可以發現系統崩潰的臨界點,從而發現系統中的薄弱環節。

前面分別介紹了效能測試、負載測試和壓力測試三種效率測試型別。目前在軟體測試領域,對這三種測試型別的定義並不統一。在實際的測試工作中,效能測試這個詞被廣泛的使用。在很多場合,效能測試是上述三種測試型別的通稱;在有的書籍或者參考資料中,效能測試的範圍甚至更加廣泛。

吞吐量,是指單位時間內流經被測系統的資料流量,一般單位為b/s,即每秒鐘流經的位元組數。吞吐量是大型門戶**以及各種電子商務**衡量自身負載能力的乙個很重要的指標,一般吞吐量越大,系統單位時間內處理的資料越多,系統的負載能力也越強。

併發,是指多個同時發生的操作。併發和並行不是乙個概念,併發是同時發生,並行是同步執行。

穩定性測試,也叫可靠性測試(reliability testing),是指連續執行被測系統,檢查系統執行時的穩定程度。我們通常用mtbf(mean time between failure,即錯誤發生的平均時間間隔)來衡量系統的穩定性,mtbf越大,系統的穩定性越強。穩定性測試的方法也很簡單,即採用24*7(24小時*7天)的方式讓系統不間斷執行,至於具體執行多少天,是一周還是乙個月,視專案的實際情況而定。

負載測試,是效能測試的一種,通常是指讓被測系統在其能忍受的壓力的極限範圍之內連續執行,來測試系統的穩定性。 

可以看出負載測試和穩定性測試比較相似,都是讓被測系統連續執行,區別就在於負載測試需要給被測系統施加其剛好能承受的壓力,比如我們還是測試163郵箱系統的登入模組,我們先用1個使用者登入,再用兩個使用者併發登入,再用5個,10個…在這個過程中,我們每次都需要觀察並記錄伺服器的資源消耗情況(可以通過任務管理器中的效能監視器或者控制面板中的效能監視器),當發現伺服器的資源消耗快要達到臨界值時(比如cpu的利用率90%以上,記憶體的占有率達到80%以上),停止增加使用者,假如現在的併發使用者數為20,我們就用這20個使用者同時多次重複登入,直到系統出現故障為止。 

負載測試為我們測試系統在臨界狀態下執行是否穩定提供了一種辦法。

壓力測試,是效能測試的一種,通常是指持續不斷的給被測系統增加壓力,直到將被測系統壓垮為止,用來測試系統所能承受的最大壓力。 

比如我們不斷增加併發的登入使用者數,20,30,50…比如,當增加到70個使用者併發登入時,系統崩潰了,我們就可以知道163郵箱所能承載的最大登入併發數為70個左右。

關於效能測試的分類,可以舉乙個比較通俗的例子方便大家理解: 

假設乙個人很輕鬆就能背1袋公尺,背2袋公尺很吃力,最多就能背3袋公尺 

穩定性測試-我讓他背1袋公尺,但是讓他去操場上跑圈,看多久累倒。 

負載測試-我讓他背2袋公尺去操場上跑圈,看多久累倒。 

壓力測試-我讓他背2袋公尺,3袋公尺,4袋公尺…發現他最多就能背3袋

效能測試VS負載測試VS壓力測試

效能測試的目的不是去找bugs,而是排除系統的瓶頸,以及為以後的回歸測試建立乙個基準。而效能測試的操作,實際上就是乙個非常小心受控的測量分析過程。在理想的情況下,被測軟體在這個時候已經是足夠穩定了,所以這個過程得以順利的進行。一組清晰已定義好的預期值是讓一次有意義的效能測試的基本要素。如果連你自己都...

效能測試 壓力測試 負載測試

負載測試 load testing 壓力測試 stress test,應稱為強度測試 和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。負載測試 壓力測試和效能測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所...

(一)效能測試(壓力測試 負載測試)

一 專案經理經常安排測試工程師進行下面的工作 二 效能測試概念 三 負載測試 四 壓力測試 五 壓力測試與負載測試兩者區別 相同點 都是效能測試 負載測試強調系統正常工作情況下的效能指標 壓力測試的目的是發現在什麼條件下系統的效能變得不可接受,發現應用程式效能下降的拐點。舉例 工人建橋,橋身上表明,...