天天看點

性能測試、負載測試、壓力測試 差別

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

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

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

比喻:

性能測試,一個秘書對一個老闆。秘書是否能有條不紊地安排好老闆的日常工作、行程。
負載測試,一個秘書對一個部門。除了老闆的工作行程,還要幫部門裡的其他同僚幹很多雜活。沒有閑着的時候。
壓力測試。一個秘書對多個部門。幾個部門的老闆、同僚的所有等辦事情都交給秘書來做,同時不斷的有新的部門的老闆和同僚加入到這個行列。就看秘書到什麼程度崩潰......      
負載測試和強度測試,都屬于性能測試的子集。 
壓力測試:壓力測試考察目前軟硬體環境下系統所能承受的最大負荷并幫助找出系統瓶頸所在。

負載測試:通常描述一種特定類型的壓力測試——增加使用者數量以對應用程式進行壓力測試。比如實際中我們說從比較小的負載開始,逐漸增加模拟使用者的數量, 直到應用程式響應時間逾時,就是說的負載測試。


 

壓力測試是測試系統的限制和故障恢複能力,它包括兩種情況:
穩定性壓力測試:在標明的壓力值下,長時間持續運作。  可以考察各項性能名額是否在指定範圍内,有無記憶體洩漏、有無功能性故障等;
破壞性壓力測試:在穩定性壓力測試中可能會出現一些問題,如系統性能明顯降低,但很難暴露出其真實的原因。通過破壞性不斷加壓的手段,往往能快速造成系統的崩潰或讓問題明顯的暴露出來;



負載測試的目标是測試在一定負載情況下系統性能(得到不同負載下相關性能名額)

 

最簡單來說:

負載測試是測試軟體本身最大所能承受的性能測試;

壓力測試就是一種破壞性的性能測試;

 

下面舉幾個例子進行解釋:
1、針對一款網絡遊戲:
壓力測試:要驗證當有多少人同時連接配接同一台伺服器,會發生異常,比如卡、掉線、遊戲出現不穩定等等。然後調查是在哪裡出現了問題,進行調優。反複進行,最終達到一個既定目标;
負載測試:要驗證有多少人同時連接配接同一台伺服器時,持續一定的時間,不會發生異常。不斷增加負載,達到一個臨界值,為這台伺服器的最大負載;
性能測試:驗證在怎樣的硬體環境(cpu、記憶體、顯示卡、網絡帶寬)下,遊戲可以順暢的運作,這是一種性能測試。我曾經玩的一款網絡遊戲:熱血江湖,它在一次更新後,我原本可以順暢運作的一台機器卡的不得了,後來一起玩進行了緊急對應才平息此事,這就是性能測試沒有做好。
2、針對一款福田小卡:
壓力測試:要驗證福田小卡在負重多少噸的時候,會出現機械故障如車胎爆破、車輪變形等等;
負載測試:要驗證能夠載重10噸的福田小卡,在載重15噸、20噸、30噸的情況下是否能夠超長距離的安全運輸行駛
性能測試:測試這款小卡在加滿油、載重5噸,以70公裡每小時的速度勻速行駛的情況下,能夠行駛多少公裡能夠耗光所加滿的油,這也是一種性能測試;
3、針對一個網站:
性能測試:要驗證打開首頁到與伺服器的互動完成後所耗費的時間是否在預定的時間内,如2秒;或者比如新浪網首頁改版,要驗證改版後的首頁通路時間是否小于等于改版前的通路時間;
負載測試:要驗證有多少人同時通路新浪網首頁,不會發生異常(網頁無法顯示的情況);
壓力測試:要驗證當有多少人同時通路新浪網首頁,會發生異常,比如網頁無法顯示的情況等等。然後調查是在哪裡出現了問題,進行調優。反複進行,最終達到一個既定目标;