Apache ab測試工具使用方法(無參、get傳參、post傳參)

Ab測試工具是apache自帶的測試工具,具備簡單易上手的特性,下面我總結一下個人使用方法,首先去官方下載apache程序包,我下的最新版本apache2.4.23,下載地址http://httpd.apache.org/download.cgihtml

我下載的windows版本,解壓後放到某一目錄便可。shell

一、呼出控制檯apache

可使用系統自帶cmd或者Xshell工具都可json

 

二、進入apache下的bin目錄ab.exe就在此處windows

 

三、使用方法服務器

直接在此目錄下輸入ab回車就會羅列出使用幫助併發

使用方式:ab [options] [http://]hostname[:port]/pathapp

這裏我只介紹經常使用命令工具

-n:總請求次數(最小默認爲1)post

-c:併發次數(最小默認爲1且不能大於總請求次數,如:10個請求,10個併發,實際就是1人請求1次)

-p:post參數文檔路徑(-p和-T參數要配合使用)

-T:header頭內容類型(此處切記是大寫英文字母T)

後面直接寫請求路徑便可:http://www.test.com/xxx/xxx.html

 

四、無參方式請求

輸入:ab -n 10 -c 10 http://paycenter.gotrip8.com/querypay.aspx

 

五、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沒法識別&符號

 

六、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

 

七、測試結果

主要看三個數據

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

能夠根據固定併發數,增長請求次數或者固定請求次數,調整併發數來查看上面三個值得變化來調優服務器

 

八、未解決問題

在使用中我發現兩個問題

一是沒法傳遞json的post參數,網上的方法都試過了,接不到參數

二是傳參時沒法改變參數,或者說沒法傳遞不一樣參數,好比下單接口測試,每次都應該傳遞不一樣的訂單號,或者註冊接口,每次都應該傳遞不一樣的帳號密碼,但在參數文檔中如何寫也實現不了,還望高手解答,謝謝

相關文章
相關標籤/搜索