一、什么是壓力測試
軟件測試中:壓力測試(Stress Test),也稱為強度測試、負載測試。壓力測試是模擬實際應用的軟硬件環境及用戶使用過程的系統負荷,長時間或超大負荷地運行測試軟件,來測試被測系統的性能、可靠性、穩定性等。
常用的壓力測試軟件有:LoadRunner、Apache JMeter、NeoLoad、WebLOAD、Loadster、Load impact、CloudTest、Loadstorm、阿里云PTS等等,本文介紹的是使用Apache JMeter來進行壓力測試。
同時,在這我也準備了一份軟件測試視頻教程(含接口、自動化、性能等),需要的可以直接在下方觀看就行,希望對你有所幫助!【公眾號:互聯網雜貨鋪】
軟件測試視頻教程觀看處:
軟件測試工程師大忌!盲目自學軟件測試真的會毀終生,能救一個是一個......
二、壓力測試關注點
1.壓力測試分為兩種測試場景:一種是單一接口進行壓測;第二種是多個接口同時壓測。壓測時間,一般控制在10-15分鐘。如果是疲勞測試,可以壓一天或一周,具體按照實際情況確定。
2.壓測設置參數:
1)線程數:用于設置并發數量,也就是多少個用戶同時訪問
2)Rame-Up Period(in seconds):控制每隔多少秒內發動并發
3)循環次數:用于設置線程組的循環次數
4)調度器:設置壓測的持續時間、延時時間
3.壓測結果查看
腳本運行完成后,可通過查看結果樹和聚合報告結果來顯示接口是否運行成功及壓測結果參數,主要關注的參數有:
1)Samples:表示一共發出的請求書
2)Average:平均響應時間,單位ms
3)Error%:測試出現的錯誤請求數量百分比
4)Throughput:吞吐量,簡稱tps,表示服務器每秒處理的請求數,tps越高說明服務器處理能力越好
4.最大tps及最大并發數的確定
1)最大tps:隨著并發數不斷增加,tps數值曲線會達到一定峰值后開始出現下降,那么這個峰值就是最大的tps。
2)最大的并發數:隨著并發數不斷增加,某個值之后,服務器開始出現請求超時,則這個值就是最大的并發數。
5.影響性能的主要參考因素主要包括:數據庫、應用程序、中間件、網絡和操作系統等方面。
三、壓力測試步驟
1.創建線程組
點擊選中測試計劃,右鍵點擊創建線程組
點擊線程組,這里可以設置名稱,添加注釋,設置線程數(每次有多少線程同時開啟)、線程響應時間(多少秒完成線程)、循環次數(每個線程數需要開啟幾次)等
2.創建取樣器(以HTTP為例)
點擊選中線程組,右鍵添加取樣器輸入協議
點擊剛設置的取樣器,這里可以設置名稱,設置http/https(不輸入默認為http),服務器IP,端口號(不輸入默認80端口),選擇HTTP請求類型,相關路徑(若無則不填),以下以百度為例
3.最后需要添加監聽器獲取監控結果
同樣選擇線程組,右鍵添加監聽器
常用的有匯總報告,察看結果樹,聚合報告
3.1匯總報告
這里可以看到每個請求以及總體的各項指標,我們要關注的是異常百分比和吞吐量,異常百分比越大,性能就越差,吞吐量越大效率越高
3.2察看結果樹
這里可以看到響應數據和請求內容,以及取樣器結果等
取樣器結果如下圖,請求欄有請求頭和請求數據,響應數據欄有響應頭和響應數據。
響應數據一般為HTML源碼,請求頭主要記錄的是時間,返回狀態等等數據,點擊Text右邊的三角形可以切換觀察的數據格式,如JSON等?
3.3聚合報告
這里能看的數據包含了匯總報告的內容,并且還能看到百分比響應時間等數據,相對于匯總報告,百分比響應是我們更需要關注的地方,如果不需要了解太深,就用匯總報告,需要了解更多的就需要用到聚合報告