標籤:
Ab測試載入器是apache內建的測試載入器,具有簡單易上手的特性,下面我總結一下我的使用方法,首先去官方下載apache程式包,我下的最新版本apache2.4.23,http://httpd.apache.org/download.cgi
我下載的windows版本,解壓後放到某一目錄即可。
1、呼出控制台
可以使用系統內建cmd或者Xshell工具均可
2、進入apache下的bin目錄ab.exe就在此處
3、使用方法
直接在此目錄下輸入ab斷行符號就會羅列出使用協助
使用方式:ab [options] [http://]hostname[:port]/path
這裡我只介紹常用命令
-n:總請求次數(最小預設為1)
-c:並發次數(最小預設為1且不能大於總請求次數,如:10個請求,10個並發,實際就是1人請求1次)
-p:post參數文檔路徑(-p和-T參數要配合使用)
-T:header頭內容類型(此處切記是大寫英文字母T)
後面直接寫請求路徑即可:http://www.test.com/xxx/xxx.html
4、無參方式請求
輸入:ab -n 10 -c 10 http://paycenter.gotrip8.com/querypay.aspx
5、Get方式請求
輸入:ab -n 10 -c 10 "http://paycenter.gotrip8.com/querypay.aspx?Version=1.0&InputCharset=GBK&SignType=MD5&PlatFormCode=CPOTA&OrderNo=TEST0123456784&Sign=185FA68CA23AAE7B3A02A226ABD30297"
注意:請求URL要使用雙引號括起來,否則ab無法識別&符號
6、Post方式請求
參數文檔:參數文檔內容使用“key=value&key=value&key=value...”方式進行拼接,還有json的方式,但我實驗沒有成功,接收不到參數,具體原因未知
輸入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx
注意:-p是參數文檔路徑,-T是大寫英文字母,post表單格式為:application/x-www-form-urlencoded
7、測試結果
主要看三個資料
Requests per second:吞吐率
伺服器並發處理能力的量化描述,單位是reqs/s,指的是某個並發使用者數下單位時間內處理的請求數。某個並發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。
計算公式:總請求數 / 處理完成這些請求數所花費的時間,即
Request per second = Complete requests / Time taken for tests
Time per request:上面的是使用者平均請求等待時間
處理完成所有請求數所花費的時間/ (總請求數 / 並發使用者數),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
Time per request:下面的是伺服器平均請求處理時間
處理完成所有請求數所花費的時間 / 總請求數,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒數。
同時,它也=使用者平均請求等待時間/並發使用者數,即
Time per request / Concurrency Level
可以根據固定並發數,增加請求次數或者固定請求次數,調整並發數來查看上面三個值得變化來調優伺服器
8、未解決問題
在使用中我發現兩個問題
一是無法傳遞json的post參數,網上的方法都試過了,接不到參數
二是傳參時無法改變參數,或者說無法傳遞不同參數,比如下單介面測試,每次都應該傳遞不同的訂單號,或者註冊介面,每次都應該傳遞不同的帳號密碼,但在參數文檔中如何寫也實現不了,還望高手解答,謝謝
Apache ab測試載入器使用方法(無參、get傳參、post傳參)