負載測試 壓力測試 效能測試 併發測試異同

2021-10-03 16:42:44 字數 2890 閱讀 8867

負載測試(loading test)、壓力測試(stress test)、效能測試(performance test)異同

一、測試目的不同

二、測試手段和方法相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所占用資源的情況以及其它相應的效能指標。這也是造**們容易產生概念混淆的主要原因。

效能測試又稱多使用者併發效能測試。

我們知道,軟體總是執行在一定的環境下,這種環境包括:支撐軟體執行的軟硬體環境和影響軟體執行的外部條件。

為了讓客戶使用軟體系統感到滿意,必須確保系統執行良好,達到高安全、高可靠和高效能。其中,系統是否具有高效能的執行特徵,取決決於系統本身的設計和程式演算法,以及系統的執行環境。系統的執行環境會依賴於一些關鍵因素,例如:

(1)系統架構,如分布式伺服器集群還是集中式主機系統等。

(2)硬體配置,如伺服器的配置,cpu、記憶體等配置越高,系統的效能會越好。

(3)網路頻寬,隨著頻寬的提高,客戶端訪問伺服器的速度會有較大的改善。

(4)支撐軟體的選定,如選定不同的資料庫管理系統(oracle、mysql等)和web應用伺服器(tomcat、glassfish、jboss、weblogic等),對應用系統的效能都有影響。

(5)外部負載,同時有多少個使用者連線、使用者上載檔案大小、資料庫中的記錄數等都會對系統的效能有影響。一般來說,系統負載越大,系統的效能會降低。

從上面可以看出,使系統的效能達到乙個最好的狀態,不僅通過對處在特定環境下的系統進行測試以完成相關的驗證,而且往往要根據測試的結果,對系統的設計、**和配置等進行調整,提高系統的效能。許多時候,系統效能的改善是測試、調整、再測試、再調整、……乙個持續改進的過程,這就是我們經常說的效能調優(perormance tuning)。

在了解了這樣乙個背景之後,就比較容易理解為什麼在效能測試中常常要談負載測試。從測試的目的出發、從使用者的需求出發,就比較容易區分效能測試、負載測試和壓力測試:

**效能測試**是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的效能指標資料;

**負載測試、壓力測試**是為了發現軟體系統中所存在的問題,包括效能瓶頸、記憶體洩漏等。通過負載測試,也是為了獲得系統正常工作時所能承受的最大負載,這時負載測試就成為容量測試。通過壓力測試,可以知道在什麼極限情況下系統會崩潰、系統是否具有自我恢復性等,但更多的是為了確定系統的穩定性。

那麼,如何給負載測試、壓力測試下個定義呢?根據上述討論,我們可以給出如下的定義:

**負載測試(測試載重)**是模擬實際軟體系統在一定負載條件的系統效能(不關注穩定性,也就是說不關注長時間執行,只是得到不同負載下相關效能指標即可),通過不斷載入(如逐漸增加模擬使用者的數量)或其它載入方式來觀察不同負載下系統的響應時間和資料吞吐量、系統占用的資源(如cpu、記憶體)等,以檢驗系統的行為和特性,以發現系統可能存在的效能瓶頸、記憶體洩漏、不能實時同步等問題。負載測試更多地體現了一種方法或一種技術。

**壓力測試(測試強度)**是在強負載(大資料量、大量併發使用者等)下的測試,檢視應用系統在峰值使用情況下操作行為,從而有效地發現系統的某項功能隱患、系統是否具有良好的容錯能力和可恢復能力。(例如是否反應變慢、是否會記憶體洩漏導致系統逐漸崩潰、是否能恢復)

壓力測試的目標是測試在一定的負載下系統長時間執行的穩定性。

壓力測試分為:

(1)穩定性壓力測試:在選定的壓力值下,長時間(24小時)持續執行。通過這類壓力測試,可以考察各項效能指標是否在指定範圍內,有無記憶體洩漏、有無功能性故障等;

(2)破壞性壓力測試:在穩定性壓力測試中可能會出現一些問題,如系統效能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來。

壓力測試可以被看作是負載測試的一種,即高負載下的負載測試,或者說壓力測試採用負載測試技術。通過壓力測試,可以更快地發現記憶體洩漏問題,還可以更快地發現影響系統穩定性的問題。例如,在正常負載情況下,某些功能不能正常使用或系統出錯的概率比較低,可能乙個月只出現一次,但在高負載(壓力測試)下,可能一天就出現,從而發現有缺陷的功能或其它系統問題。通過負載測試,可以證明這一點,某個電子商務**的訂單提交功能,在10個併發使用者時錯誤率是零,在50個併發使用者時錯誤率是1%,而在200個併發使用者時錯誤率是20%。

通過負載測試和壓力測試都可以獲得系統正常工作時的極限負載或最大容量。容量測試,自然也是採用負載測試技術來實現,而在破壞性的壓力測試中,容量的確定可以看作是一種副產品。

併發測試:主要指當測試多使用者併發訪問同乙個應用、模組、資料時是否產生隱藏的併發問題,如記憶體洩漏、執行緒鎖、資源爭用問題,幾乎所有的效能測試都會涉及併發測試。

強度測試:強度測試檢查程式對異常情況的抵抗能力;是檢查系統在極限狀態下執行的時候效能下降的幅度是否在允許的範圍內。強度測試總是迫使系統在異常的資源配置下執行。

例如,①當中斷的正常頻率為每秒一至兩個時,執行每秒產生十個中斷的測試用例;②定量地增長資料輸入率,檢查輸入子功能的反映能力;③執行需要最大儲存空間(或其他資源)的測試用例;④執行可能導致虛存作業系統崩潰或磁碟資料劇烈抖動的測試用例,等等。

容量測試:容量測試的目的是通過測試預先分析出反映軟體系統應用特徵的某項指標的極限值(如最大併發使用者數、資料庫記錄數等),系統在其極限狀態下沒有出現任何軟體故障或還能保持主要功能正常執行。容量測試還將確定測試物件在給定時間內能夠持續處理的最大負載或工作量。容量還可以看作系統效能指標中乙個特定環境下的乙個特定效能指標,即設定的界限或極限值。

對於效能測試,我們必須要清晰地理解這些概念,這是我這段時間回顧起卻又有些模糊,所以總結了一處,執行效能測試,效能瓶頸分析路徑: 伺服器硬體瓶頸-〉網路瓶頸(對區域網,可以不考慮)-〉伺服器作業系統瓶頸(引數配置)-〉中介軟體瓶頸(引數配置,資料庫,web伺服器等)-〉應用瓶頸(sql語句、資料庫設計、業務邏輯、演算法等)

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

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

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

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

效能測試(併發負載壓力)測試分析 簡要篇

分析例項 1 error failed to connect to server 10.10.10.30 8080 10060 connection error timed out error server 10.10.10.30 has shut down the connection prema...