性能測試分為兩種維度:訪問時間和并發量;
負載測試是從并發量維度出發,不斷增加并發量的情況下,系統的性能指標;
壓力測試是從訪問時間維度出發,在并發量一定的情況下,不斷增加連續訪問的時間,系統的性能指標;
負載測試的目標是測試在一定負載情況下,系統的性能;(這里不關注穩定性,也就是說不關注長時間運行,只是得到不同負載下相關性能指標即可;)實際中,我們常從較小的負載開始,逐漸增加模擬用戶用戶的數量,觀察不同負載下,系統的響應時間,所耗資源,直到超時或關系資源耗盡,這就是所說的負載測試;
壓力測試的目標是測試在一定負載的情況下,系統長時間運行時的穩定性。比如我們經常利用腳本或工具事先吃掉服務器的一部分CPU、內存或帶寬等,創造出一定的負載環境并測試此時系統的事務處理能力,響應時間等等。壓力測試尤其關注大業務量情況下長時間運行系統時,系統性能的變化(例如是否反應變慢,是否會內存泄漏導致系統逐漸崩潰);
打個比喻:
一位服務員,就相當于咱們的應用系統;
負載測試就是在單位時間內逐步加大這位服務器的工作量,看看此服務員在不同的工作量下完成工作的速度和質量,從而了解該服務員的工作能力;
壓力測試就是給這位服務員外部壓力,比如長時間不讓他休息,不給開工資等,看看服務員會不會好好工作(能否及時響應請求),或者罷工之類的;