ab簡潔:
ab是apache自帶的壓力測試工具,ab是apachebench命令的縮寫。
ab不僅可以對apache服務器進行網站訪問壓力測試,也可以對或其它類型的服務器進行壓力測試。
ab是一個httpd自帶的很好用的壓力測試工具,ab命令會創建多個並發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。
可以用來測試apache的負載壓力,也可以 用來測試nginx、lighthttp、tomcat、IIS等其它Web服務器的壓力負載性能。
ab安裝:
如果使用rpm安裝包,直接使用yum --install rpm包名
如果不想安裝apache但是又想使用ab命令,可以直接安裝apache的工具包httpd-tools。
先cd到httpd-tools的所在目錄,使用如下命令安裝:
查看ab是否安裝:
yum -y install httpd-tools
查看幫助文檔
壓測實例:
壓測如下接口:
執行腳本后,cpu已經開始跑起來
正確的寫法:
可以通過tomcat下的日志查看請求結果
注意:
在進行示例時使用的連接一般都是http://*.com,這種寫法是沒有帶參數,如果你想測試一個寫入的Case,那需要傳遞參數給后台,如何傳遞參數呢?
這里有一個登錄的請求,需要登錄名和密碼,路徑是這樣的:
http://*/login.action?userName=admin&userPassWord=admin
使用該連接進行測試:ab -n 1 http://*/login.action?userName=admin&userPassWord=admin
發現由於存在特殊字符& ,雖然命令執行成功,但是並不能處理 & 后的參
他有兩個參數:p(小寫),T(大寫),注意區分大小寫,一個是用於指定POST請求時的參數文件,一個用於指定請求的類型Content-type,關於Content-type的類型,大家可以百度。
在AB命同級目錄建立一個文件:para.txt,在里面寫入要傳遞的參數:userName=admin&userPassWord=admin
指定請求類型為:application/x-www-form-urlencoded
完整的命令為:ab -n 1 -p para.txt -T application/x-www-form-urlencoded http://*/login.action
如此就可以將需要的兩個參數傳遞到后台
主要參數:
-n:在測試會話中所執行的請求個數。默認時,僅執行一個請求。
-c:一次產生的請求個數。默認是一次一個。
-t:測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對服務器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。
-p:包含了需要POST的數據的文件。
-P:對一個中轉代理提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。無論服務器是否需要(即, 是否發送了401認證需求代碼),此字符串都會被發送。
-T:POST數據所使用的Content-type頭信息。