壓力測試與負載測試的區別
阿新 • • 發佈:2018-06-27
ali 變慢 故障 and 用戶 無法 基準 連續 暴露 性能測試中負載測試,壓力測試有什麽區別
對於性能測試,負載測試,壓力測試的區別,之前總自認為是清楚的,後來被人問住了,才發現還差的遠。這兒網上摘了一些內容,加上自己的理解,算是弄清楚了吧。特此記下,避免忘了。如有錯誤之處,還望指正。
性能測試(或稱多用戶並發性能測試)、負載測試、強度測試、容量測試是性能測試領域裏的幾個方面,但是概念很容易混淆。
下面將幾個概念進行介紹。
性能測試(Performance Test):通常收集所有和測試有關的所有性能,被不同人在不同場合下進行使用。 關註點:how much和how fast
其中,容量測試、負載測試、壓力測試的英文解釋為:
Volume Testing = Large amounts of data
Load Testing = Large amount of users
Stress Testing = Too many users, too much data, too little time and too little room
可能大家角色性能測試、負載測試和強度測試比較混淆。沒錯,這三個概念是比較容易使人糊塗。負載測試和壓力測試,都屬於性能測試的子集。 性能測試,表示在一個給定的基準下,能執行的最好情況。負載測試,也是性能測試,但是他是在不同的負載下的。壓力測試,是在較高強度情況下的性能測試。
性能測試是動力,負載測試載重,壓力測試強度
這兒我加了括號強調一下壓力測試與負載測試的區別。
負載測試通常描述一種特定類型的壓力測試——逐步增加用戶數量或用戶請求來對系統(程序)進行加壓。比如現實中有個系統提供在線查詢服務,那我們從比較小的負載開始,逐漸增加模擬查詢請求的數量或用戶量, 直到系統響應時間超時,就是說的負載測試。這兒加壓的類型必須是應用提供的服務類型,也就是工作負荷。
負載測試的目標是測試在一定負載情況下的系統性能(不關註穩定性,也就是說不關註長時間運行,只是得到不同負載下相關性能指標即可);實際中我們常從比較小的負載開始,逐漸增加模擬用戶的數量(增加負載), 觀察不同負載下應用程序響應時間、所耗資源,直到超時或關鍵資源耗盡,這就是所說的負載測試,它是測試系統的不同負載情況下的性能指標。
壓力測試的目標是測試在一定的負載下系統長時間運行的穩定性,但是這個負載不一定是應用系統本身造成的。比如我們經常利用腳本或工具事先吃掉服務器的一部分cpu、內存或帶寬等,創造出一定的負載環境並測試被測應用系統在此環境下的事物處理能力,響應時間等等。壓力測試尤其關註大業務量情況下長時間運行系統性能的變化(例如是否反應變慢、是否會內存泄漏導致系統逐漸崩潰、是否能恢復);壓力測試是測試系統的限制和故障恢復能力,它包括兩種情況:
1.穩定性壓力測試:在選定的壓力值下,長時間持續運行。通過這類壓力測試,可以考察各項性能指標是否在指定範圍內,有無內存泄漏、有無功能性故障等;
2.破壞性壓力測試:在穩定性壓力測試中可能會出現一些問題,如系統性能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來;
如果還不理解的話,打個比喻:
這兒有個服務員,對應咱們的應用系統吧。
壓力測試就是給這位服務器外部壓力,比如長時間不讓他休息,不給開工資等,看看服務員會不會開小差(無法及時響應請求),或者罷工(宕機)之類的。
負載測試就是在單位時間內逐步加大這位服務員的工作量,看看此服務員在不同的工作量下完成服務的速度和質量,從而了解到該服務員的工作能力。
壓力測試和負載測試能夠幫組我們了解到一個服務器的抗壓能力和工作能力,當然也能幫我們評估一個系統或軟件的性能瓶頸與質量。
1、負載測試(Load Test):負載測試是一種性能測試,指數據在超負荷環境中運行,程序是否能夠承擔。 關註點:how much
2、壓力測試(Stress Test): 壓力測試(又叫強度測試)也是一種性能測試,它在系統資源特別低的情況下軟件系統運行情況,目的是找到系統在哪裏失效以及如何失效的地方。
3、極限測試 Extreme testing:在過量用戶下的負載測試 Hammer testing:連續執行所有能做的操作
4、容量測試(Volume Test):確定系統可處理同時在線的最大用戶數 關註點:how much(而不是how fast) 容量測試,通常和數據庫 |
壓力測試stress test:是在一定的『負荷條件』下,長時間連續運行系統給系統性能造成的影響。 負載測試Load test:在一定的『工作負荷』下,給系統造成的負荷及系統響應的時間。 |
壓力測試與負載測試的區別