壓力測試就是一種破壞性極強的性能測試
性能測試(或稱多用戶並發性能測試)、負載測試、強度測試、容量測試是性能測試領域裡的幾個方面,但是概念很容易混淆。下面將幾個概念進行介紹。
性能測試(PerformanceTest):通常收集所有和測試有關的所有性能,通常被不同人在不同場合下進行使用。
關注點:howmuch和howfast
負載測試(LoadTest):負載測試是一種性能測試,指數據在超負荷環境中運行,程序是否能夠承擔。
關注點:howmuch
強度測試(StressTest):強度測試是一種性能測試,他在系統資源特別低的情況下軟體系統運行情況,目的是找到系統在哪裡失效以及如何失效的地方。包括
Spiketesting:短時間的極端負載測試
Extremetesting:在過量用戶下的負載測試
Hammertesting:連續執行所有能做的操作
容量測試(VolumeTest):確定系統可處理同時在線的最大用戶數
關注點:howmuch(而不是howfast)
容量測試,通常和資料庫有關,容量和負載的區別在於:容量關注的是大容量,而不需要表現實際的使用。
其中,容量測試、負載測試、強度測試的英文解釋為:
VolumeTesting=Largeamountsofdata
LoadTesting=Largeamountofusers
StressTesting=Toomanyusers,toomuchdata,toolittletimeandtoolittleroom
可能大家角色性能測試、負載測試和強度測試比較混淆。沒錯,這三個概念是比較容易使人糊塗。負載測試和強度測試,都屬於性能測試的子集。下面舉個跑步的例子進行解釋。
性能測試,表示在一個給定的基準下,能執行的最好情況。例如,在沒有負重的情況下,你跑100米需要花多少時間(這邊,沒有負重是基準)?
負載測試,也是性能測試,但是他是在不同的負載下的。對於剛才那個例子,如果擴展為:在50公斤、100公斤……等情況下,你跑100米需要花多少時間?
強度測試,是在強度情況下的性能測試。對於剛才那個例子,如果改為:在一陣強風的情況下,你在負重或沒有負重的情況下,跑100米需要花多少時間?
性能測試是動力,負載測試載重,壓力測試強度
壓力測試stresstest是在一定的負荷條件下,長時間連續運行系統給系統性能造成的影響。
負載測試Loadtest:在一定的工作負荷下,給系統造成的負荷及系統響應的時間。
壓力測試主要是為了發現在一(任意)定條件下軟體系統的性能的變化情況,通過改變應用程序的輸入以對應用程序施加越來越大的負載(並發,循環操作,多用戶)並測量在這些不同的輸入時性能的改變,也就是通常說的概念:壓力測試考察當前軟硬體環境下系統所能承受的最大負荷並幫助找出系統瓶頸所在。其實這種測試也可以稱為負載測試,但是負載測試通常描述一種特定類型的壓力測試——增加用戶數量以對應用程序進行壓力測試。比如實際中我們說從比較小的負載開始,逐漸增加模擬用戶的數量,直到應用程序響應時間超時,就是說的負載測試。
壓力測試的目標是測試在一定的負載下系統長時間運行的穩定性,尤其關注大業務量情況下長時間運行系統性能的變化(例如是否反應變慢、是否會內存泄漏導致系統逐漸崩潰、是否能恢復);壓力測試是測試系統的限制和故障恢復能力,它包括兩種情況:
穩定性壓力測試:在選定的壓力值下,長時間持續運行。通過這類壓力測試,可以考察各項性能指標是否在指定範圍內,有無內存泄漏、有無功能性故障等;
破壞性壓力測試:在穩定性壓力測試中可能會出現一些問題,如系統性能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來;
負載測試的目標是測試在一定負載情況下系統性能(不關注穩定性,也就是說不關注長時間運行,只是得到不同負載下相關性能指標即可);實際中我們常從比較小的負載開始,逐漸增加模擬用戶的數量(增加負載),觀察不同負載下應用程序響應時間、所耗資源,直到超時或關鍵資源耗盡,這就是所說的負載測試,它是測試系統的不同負載情況下的性能指標。
最簡單來說:
負載測試是測試軟體本身最大所能承受的性能測試;壓力測試就是一種破壞性的性能測試,當然咱們壓力測試目的也不是為了把伺服器壓崩;只要理解這兩點區別,就非常好理解性能測試了推薦閱讀:
※高能預警--公開課成績彙報
※白盒測試相關的一些知識
※性能測試方案設計的方法和思路
※LoadRunner中影響"響應時間"的設置
※通用介面測試用例設計