apache 自帶壓力測試工具 windows下使用

ab 的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,能夠同時模擬多個併發請求。前段時間看到公司的開發人員也在用它做一些測試,看起來也不錯,很簡單,也很容易使用,因此今天花一點時間看 了一下。html

經過下面的一個簡單的例子和註釋,相信你們能夠更容易理解這個工具的使用。 一個簡單的例子 /* 在這個例子的一開始,我執行了這樣一個命令 ab -n 10 -c 10 http://www.google.com/(不要忘了最後一個'/')。這個命令的意思是啓動 ab ,向 www.google.com 發送10個請求(-n 10) ,並每次發送10個請求(-c 10)——也就是說一次都發過去了。跟着下面的是 ab 輸出的測試報告。*/ C:\wamp\bin\apache\Apache2.2.11\bin>ab -n 10 -c 10 http://www.google.com This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.google.com (be patient).....done Server Software:        GWS/2.1 Server Hostname:        www.google.com Server Port:            80 Document Path:          / Document Length:        230 bytes Concurrency Level:      10 /*整個測試持續的時間*/ Time taken for tests:   3.234651 seconds /*完成的請求數量*/ Complete requests:      10 /*失敗的請求數量*/ Failed requests:        0 Write errors:           0 Non-2xx responses:      10 Keep-Alive requests:    10 /*整個場景中的網絡傳輸量*/ Total transferred:      6020 bytes /*整個場景中的HTML內容傳輸量*/ HTML transferred:       2300 bytes /*你們最關心的指標之一,至關於 LR 中的 每秒事務數 ,後面括號中的 mean 表示這是一個平均值*/ Requests per second:    3.09 [#/sec] (mean) /*你們最 關心的指標之二,至關於 LR 中的 平均事務響應時間 ,後面括號中的 mean 表示這是一個平均值*/ Time per request:       3234.651 [ms] (mean) /*這個還不知道是什麼意思,有知道的朋友請留言,謝謝 ^_^ */ Time per request:       323.465 [ms] (mean, across all concurrent requests) /* 平均每秒網絡上的流量,能夠幫助排除是否存在網絡流量過大致使響應時間延長的問題*/ Transfer rate:          1.55 [Kbytes/sec] received /*網絡上消耗的時間的分解,各項數據的具體算法還不是很清楚*/ Connection Times (ms) min  mean[+/-sd] median   max Connect:       20  318 926.1     30    2954 Processing:    40 2160 1462.0   3034    3154 Waiting:       40 2160 1462.0   3034    3154 Total:         60 2479 1276.4   3064    3184 /*下面的內容爲整個場景中全部請求的響應狀況。在場景中每一個請求都有一個 響應時間,其中 50% 的用戶響應時間小於 3064 毫秒,60 % 的用戶響應時間小於 3094 毫秒,最大的響應時間小於 3184 毫秒*/ Percentage of the requests served within a certain time (ms) 50%   3064 66%   3094 75%   3124 80%   3154 90%   3184 95%   3184 98%   3184 99%   3184 100%   3184 (longest request) 更 多信息 ab 不像 LR 那麼強大,可是它足夠輕便,若是隻是在開發過程當中想檢查一下某個模塊的響應狀況,或者作一些場景比較簡單的測試,ab 仍是一個不錯的選擇——至少不用花費不少時間去學習 LR 那些複雜的功能,就更別說那 License 的價格了。 ab是Apache 超文本傳輸協議(HTTP)的性能測試工具。 其設計意圖是描繪當前所安裝的Apache的執行性能, 主要是顯示你安裝的Apache每秒能夠處理多少個請求。 選項 -A auth-username:password 對 服務器提供BASIC認證信任。 用戶名和密碼由一個:隔開,並以base64編碼形式發送。 不管服務器是否須要(即, 是否發送了401認證需求代碼),此字符串都會被髮送。 -c concurrency 一次產生的請求個數。默認是一次一個。 -C cookie-name=value 對請求附加一個Cookie:行。 其典型形式是name=value的一個參數對。 此參數能夠重複。 -d 不 顯示"percentage served within XX [ms] table"的消息(爲之前的版本提供支持)。 -e csv-file 產生一個以逗號分隔的(CSV)文件, 其中包含了處理每一個相應百分比的請求所須要(從1%到100%)的相應百分比的(以微妙爲單位)時間。 因爲這種格式已經「二進制化」,因此比'gnuplot'格式更有用。 -g gnuplot-file 把全部測試結果寫入一個 'gnuplot'或者TSV (以Tab分隔的)文件。 此文件能夠方便地導入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行爲標題。 -h 顯示使用方法。 -H custom-header 對請求附加額外 的頭信息。 此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值的對 (如, "Accept-Encoding: zip/zop;8bit"). -i 執行HEAD請求,而不是GET。 -k 啓用HTTP KeepAlive功能,即, 在一個HTTP會話中執行多個請求。 默認時,不啓用KeepAlive功能. -n requests 在測試會話中所執行的請求個數。 默認時,僅執行一個請求,但一般其結果不具備表明意義。 -p POST-file 包含了須要POST的數據的文件. -P proxy-auth-username:password 對一箇中轉代理提供BASIC認證信任。 用戶名和密碼由一個:隔開,並以base64編碼形式發送。 不管服務器是否須要(即, 是否發送了401認證需求代碼),此字符串都會被髮送。 -q 如 果處理的請求數大於150, ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。 此-q標記能夠抑制這些信息。 -s 用 於編譯中(ab -h會顯示相關信息)使用了SSL的受保護的https, 而不是http協議的時候。此功能是實驗性的,也是很簡陋的。最好不要用。 -S 不 顯示中值和標準背離值, 並且在均值和中值爲標準背離值的1到2倍時,也不顯示警告或出錯信息。 默認時,會顯示 最小值/均值/最大值等數值。(爲之前的版本提供支持). -t timelimit 測試所進行的最大秒數。其內部隱含值是-n 50000。 它可使對服務器的測試限制在一個固定的總時間之內。默認時,沒有時間限制。 -T content-type POST數據 所使用的Content-type頭信息。 -v verbosity 設置顯示信息的詳細程度 - 4或更大值會顯示頭信息, 3或更大值能夠顯示響應代碼(404, 200等), 2或更大值能夠顯示警告和其餘信息。 -V 顯示版本號並退出。 -w 以 HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表。 -x <table>-attributes 設 置<table>屬性的字符串。 此屬性被填入<table 這裏 >. -X proxy[:port] 對請求 使用代理服務器。 -y <tr>-attributes 設置<tr>屬性的字符串. -z <td>-attributes 設置<td>屬性的字符串. 缺陷 程序中有各類靜態聲明的固定長 度的緩衝區。 另外,對命令行參數、服務器的響應頭和其餘外部輸入的解析也很簡單,這可能會有不良後果。 它沒有完整地實現 HTTP/1.x; 僅接受某些'預想'的響應格式。 strstr(3)的頻繁使用可能會帶來性能問題,即, 你多是在測試ab而不是服務器的性能。 相 關連接 ab 是 Apache 的一個安裝組件,因此須要下載 Apache 安裝後才能使用,能夠訪問 Apache 的項目主頁來下載 http://httpd.apache.org/download.cgi ab 的更多信息能夠參加 Apache 主頁上的描述 http://httpd.apache.org/docs/2.0/programs/ab.html 如下是ab的使用幫助: Usage: ab [options] [http://]hostname[:port]/path Options are: -n requests     Number of requests to perform -c concurrency  Number of multiple requests to make -t timelimit    Seconds to max. wait for responses -b windowsize   Size of TCP send/receive buffer, in bytes -p postfile     File containing data to POST. Remember also to set -T -T content-type Content-type header for POSTing, eg. 'application/x-www-form-urlencoded' Default is 'text/plain' -v verbosity    How much troubleshooting info to print -w              Print out results in HTML tables -i              Use HEAD instead of GET -x attributes   String to insert as table attributes -y attributes   String to insert as tr attributes -z attributes   String to insert as td or th attributes -C attribute    Add cookie, eg. 'Apache=1234. (repeatable) -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip' Inserted after all normal header lines. (repeatable) -A attribute    Add Basic WWW Authentication, the attributes are a colon separated username and password. -P attribute    Add Basic Proxy Authentication, the attributes are a colon separated username and password. -X proxy:port   Proxyserver and port number to use -V              Print version number and exit -k              Use HTTP KeepAlive feature -d              Do not show percentiles served table. -S              Do not show confidence estimators and warnings. -g filename     Output collected data to gnuplot format file. -e filename     Output CSV file with percentages served -r              Don't exit on socket receive errors. -h              Display usage information (this message)
相關文章
相關標籤/搜索