天天看點

性能測試、負載測試和壓力測試性能測試負載測試壓力測試極限測試容量測試性能測試和壓力測試的差別

性能測試(或稱多使用者并發性能測試)、負載測試、強度測試、容量測試是性能測試領域裡的幾個方面,但是概念很容易混淆。

負載測試和壓力測試,都屬于性能測試的子集。

性能測試,表示在一個給定的基準下,能執行的最好情況。

負載測試,也是性能測試,但是他是在不同的負載下的。

壓力測試,是在較高強度情況下的性能測試。

性能測試是動力,負載測試是載重,壓力測試是強度

性能測試

性能測試(Performance Test):通常收集所有和測試有關的所有性能,被不同人在不同場合下進行使用。

負載測試

負載測試(Load Test):負載測試是一種性能測試,指資料在超負荷環境中運作,程式是否能夠承擔。 

負載測試Load test:在一定的『工作負荷』下,給系統造成的負荷及系統響應的時間。

        負載測試通常描述一種特定類型的壓力測試——逐漸增加使用者數量或使用者請求來對系統(程式)進行加壓。比如現實中有個系統提供線上查詢服務,那我們從比較小的負載開始,逐漸增加模拟查詢請求的數量或使用者量, 直到系統響應時間逾時,就是說的負載測試。這兒加壓的類型必須是應用提供的服務類型,也就是工作負荷。

  負載測試的目标是測試在一定負載情況下的系統性能(不關注穩定性,也就是說不關注長時間運作,隻是得到不同負載下相關性能名額即可);實際中我們常從比較小的負載開始,逐漸增加模拟使用者的數量(增加負載), 觀察不同負載下應用程式響應時間、所耗資源,直到逾時或關鍵資源耗盡,這就是所說的負載測試,它是測試系統的不同負載情況下的性能名額。

壓力測試

壓力測試(Stress Test): 壓力測試(又叫強度測試)也是一種性能測試,它在系統資源特别低的情況下軟體系統運作情況,目的是找到系統在哪裡失效以及如何失效的地方。

壓力測試stress test:是在一定的『負荷條件』下,長時間連續運作系統給系統性能造成的影響。

        壓力測試的目标是測試在一定的負載下系統長時間運作的穩定性,但是這個負載不一定是應用系統本身造成的。比如我們經常利用腳本或工具事先吃掉伺服器的一部分cpu、記憶體或帶寬等,創造出一定的負載環境并測試被測應用系統在此環境下的事物處理能力,響應時間等等。壓力測試尤其關注大業務量情況下長時間運作系統性能的變化(例如是否反應變慢、是否會記憶體洩漏導緻系統逐漸崩潰、是否能恢複);壓力測試是測試系統的限制和故障恢複能力,它包括兩種情況:

  1.穩定性壓力測試:在標明的壓力值下,長時間持續運作。通過這類壓力測試,可以考察各項性能名額是否在指定範圍内,有無記憶體洩漏、有無功能性故障等;

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

  

極限測試

極限測試 Extreme testing:在過量使用者下的負載測試 Hammer testing:連續執行所有能做的操作

容量測試

容量測試(Volume Test):确定系統可處理同時線上的最大使用者數。關注點是how much(而不是how fast)。容量測試,通常和資料庫有關,容量和負載的差別在于:容量關注的是大容量,而不需要關注使用中的實際表現。

性能測試和壓力測試的差別

        性能測試:在交替進行負荷和強迫測試時常用的術語。性能測試關注的是系統的整體。它和通常所說的強度、壓力/負載測試測試有密切關系。是以壓力和強度測試應該于性能測試一同進行。 

舉例說明:針對一個網站進行測試,模拟10到50個使用者就是在進行正常性能測試,使用者增加到1000乃至上萬就變成了壓力/負載測試。如果同時對系統進行大量的資料查詢操作,就包含了強度測試。 

        性能測試(Performance) 正常使用的時間内系統完成一個任務需要的時間,多人同時使用的時候響應時間,在可以接受範圍内.J2EE技術實作的系統在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了. 如果在測試過程中發現性能問題,修複起來是非常艱難的,因為這常常意味着程式的算法不好,結構不好,或者設計有問題。是以在産品開發的開始階段,就要考慮到軟體的性能問題。

        壓力測試:對系統不斷施加壓力的測試,是通過确定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級别的測試。例如測試一個 Web 站點在大量的負荷下,何時系統的響應會退化或失敗。

目的不同

        壓力測試是為了發現系統能支援的最大負載,他的前提是要求系統性能處在可以接受的範圍内,比如經正常定的頁面3秒鐘内響應; 是以一句話概括就是:在性能可以接受的前提下,測試系統可以支援的最大負載。 

        性能測試是為了檢查系統的反映,運作速度等性能名額,他的前提是要求在一定負載下,如檢查一個網站在100人同時線上的情況下的性能名額,每個使用者是否都還可以正常的完成操作等。 概括就是:在不同負載下(負載一定)時,通過一些系統參數(如反應時間等)檢查系統的運作情況;比如我們說某個網站的性能差,嚴格上應該說“在N人同時線上情況下,這個站點性能很差”。

總之,就像一個方程式:綜合性能=壓力數*性能指數, 綜合性能是固定的: 

        壓力測試是為了得到性能指數最小時候(可以接受的最小指數)最大的壓力數 。

        性能測試是為了得到壓力數确定下的性能指數。

繼續閱讀