1. 程式人生 > >利用apache ab命令完成性能測試

利用apache ab命令完成性能測試

apache 性能測試 ab 小強測試品牌

ab是什麽


ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,可以同時模擬多個並發請求。


ab的用法


ab 的用法是:ab [options] [http://]hostname[:port]/path


例如:

ab -n 1000 -c 200 http://xqtesting.blog.51cto.com/

上例表示總共訪問小強的博客這個腳本1000次,200並發同時執行。


ab -n 1000 -c 100 -w http://xqtesting.blog.51cto.com/ >>/root/xiaoqiang.html

上面的測試用例表示100並發的情況下,共測試訪問index.php腳本1000次,並將測試結果保存到xiaoqiang.html文件中。


ab常用參數的介紹:

-n :總共的請求執行數,缺省是1;

-c: 並發數,缺省是1;

-t:測試所進行的總時間,秒為單位,缺省50000s


ab結果分析


運行上面命令之後的結果太多了?看不懂?不知道看哪個?每個是什麽意思?你心中又有十萬個為什麽了!打住,我們只需關註如下幾個指標就好:

  • Requests per second (mean) 相當於 LR 中的 每秒事務數

  • Time per request (mean)相當於 LR 中的 平均事務響應時間

  • Percentage of the requests served within a certain time (ms)


如何傳遞參數?


ab -n 1 -c 1 "http://localhost/xiaoqiangshop/goods.php?id=20"

一定要有雙引號


ab可以完成post操作嗎?


ab -n 10 -c 10 -k -p "login.ab" -T "application/x-www-form-urlencoded" "http://localhost/xiaoqiangshop/user.php"


-p 文件中是post的內容(可以是json格式,可以是&格式)

-T 指定post文件的編碼方式使用urlencode

-k keepalive連接


login.ab中的內容為登錄所需要的信息組合,如下:

username=xiaoqiang&password=123123&act=act_login


註意事項


  • 可以利用ab完成不復雜的性能測試,或者造數據,比較適用於單一URL的測試

  • ab判斷成功與否只通過2xx的狀態碼作為依據,不接收服務器的返回值,但lr卻接收服務器完整的返回。所以在同樣的響應時間下,ab測試支持的並發數會大於lr,tps也會大於lr。

  • ab運行並發的時候和所在運行機器上的cpu顆數有關,越多則並發越大。所以在linux下支持的並發大於在Windows下

  • 大並發下數據不準,更多的是看ab本身的性能了而不是服務端的性能


擴展閱讀


使用Apache自帶的ab命令測試網站性能:http://xqtesting.blog.51cto.com/4626073/1845431

本文出自 “小強性能自動化測試品牌” 博客,請務必保留此出處http://xqtesting.blog.51cto.com/4626073/1962213

利用apache ab命令完成性能測試