如何使用ab做介面壓力測試

2021-08-30 11:14:59 字數 2424 閱讀 8814

壓力測試是通過不斷向被測系統施加「壓力」,測試系統在壓力情況下的效能表現,考察當前軟硬體環境下系統所能承受的最大負荷並幫助找出系統瓶頸所在,也就是我們可以模擬巨大的工作負荷以檢視應用程式在峰值使用情況下如何執行操作。

壓力/負載/效能測試之間的區別壓力測試(stresstesting),也稱為強度測試,通過模擬實際應用的軟硬體環境及使用者使用過程的系統負荷,長時間或超大負荷地執行測試軟體,來測試被測系統的效能、可靠性、穩定性等。壓力測試需要確定乙個系統的瓶頸或者不能接收的效能點,來獲得系統能提供的最大的服務級別。通俗地講,壓力測試是為了發現在什麼條件下您的應用程式的效能會變得不可接受。

負載測試(load testing)通常被定義為給被測系統加上它所能操作的最大任務數的過程,負載測試有時也會被稱為「容量測試」或者「耐久性測試/永續性測試」,其目標是確定並確保系統在超出最大預期工作量的情況下仍能正常執行。對於web應用來講,負載則是併發使用者或者http連線的數量。負載測試通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。在這種測試中,將使測試物件承擔不同的工作量,以評測和評估測試物件在不同工作量條件下的效能行為,以及持續正常執行的能力。

效能測試(performancetesting)的目的不是去找系統bugs,而是排除系統的效能瓶頸,並為回歸測試建立乙個基準。而效能測試的操作,實際上就是乙個非常小心受控的測量分析過程:「執行負載試驗->測度效能->除錯系統」。在理想的情況下,被測應用在這個時候已經是足夠穩定,所以這個過程得以順利進行。效能測試還有另乙個目標就是建立一組被測系統的基準資料。應用在網路上的效能測試重點是利用成熟先進的自動化技術進行網路應用效能監控、網路應用效能分析和網路**。

雖然三種測試的目的截然不同,但其測試操作的環節都是基本一致的,因此一次測試過程中完全可以包含效能測試、負載測試、壓力測試三個方面的內容,所使用的測試工具往往大同小異。

壓力測試需要對應的工具支援,測試工具有很多,詳見鏈結。

壓力測試工具

今天, 我們的主題是用ab工具來完成壓力測試。

2.1 安裝 ab

(1) windows 環境安裝ab

(2) linux 環境安裝ab

(3) 安裝成功後,檢查版本號

ab -v

2.2 使用ab

-n 表示請求總數, -c 表示併發數, 後面跟上需要測試的介面

更多詳細引數,請參考:

實際專案中使用ab,根據場景不同,使用方法有差別,也會碰到各種錯誤資訊。

接下來我們選取了get, post分別做壓力測試,介紹了如何攜帶cookie, 如何傳送請求體等。

(1)測試get 介面,需要cookie

ab -n 5000 -c 500 -c uin=7000000;session=99999999 url

其中 -c代表請求攜帶的cookie資訊;若有多個cookie, windows上用分號分割, linux用逗號分割。

測試結果

分析

(2)測試post介面,需要json格式請求體

測試結果

(1) windows 報錯,初步判斷ab在windows上不支援post 介面。 錯誤內容如下:

ab:counld not stat post data file (post.txt): partial results are valid but processing is incomplete

(2)linux 上執行成功

分析

windows 環境測試post介面報錯

錯誤訊息:counld not stat post data file (post.txt): partial results are valid but processing is incompletelinux 環境併發數1500以上,執行報錯

錯誤訊息:socket:too many open files (24)

linux 環境併發數3000,執行報錯

錯誤訊息:connection timed out (110)

錯誤原因: 連線超時

解決方法: 介面服務系統支援有限,不支援這麼多併發,優化系統

ab 壓力測試介面效能

測試post 請求的介面 1,cmd至ab.exe 所在目錄 get 壓測 ab c 10 n 100 引數 c 表示多少個客戶端同時請求,即併發量 t 表示總共請求多長時間 n 表示總共發起多少請求 4,檢視結果 concurrency level 併發級別 time taken for test...

ab 壓力測試使用

安裝ab工具 引數說明 n 執行的請求個數,預設時執行乙個請求 c 一次產生的請求個數,即併發個數 p 模擬post請求,檔案格式為gid 2 status 1,配合 t使用 1.模擬get請求 直接在url後面帶引數即可 ab c 10 n 10 2.模擬post請求 在當前目錄下建立乙個檔案po...

ab介面壓力測試工具

ab是apache超文字傳輸協議 http 的效能測試工具。其設計意圖是描繪當前所安裝的apache的執行效能,主要是顯示你安裝的apache每秒可以處理多少個請求。n 總的請求數 c 併發數 1 引數選項 2 內容解釋 server software nginx 1.10.2 伺服器軟體名稱及版本...