ApacheBench 是 Apache 服務器自帶的一個web壓力測試工具,簡稱ab。ab又是一個命令行工具,對發起負載的本機要求很低,根據ab命令能夠建立不少的併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問,所以能夠用來測試目標服務器的負載壓力。總的來講ab工具小巧簡單,上手學習較快,能夠提供須要的基本性能指標,可是沒有圖形化結果,不能監控。
下載地址:https://www.apachelounge.com/...web
以管理員身份運行cmd,命令行進入到Apache的bin目錄,輸入 httpd -k install 完成安裝。在apache的bin目錄下測試。apache
#### 修改Apache 端口windows
若是是windows部署,多數狀況下80端口已經被iis佔用了,這時候須要修改conf/httpd.conf 找到listen 80 改成你要設置的端口,如: 8090api
sudo apt-get install apache2-utils
格式:ab [options] [http://]hostname[:port]/path 參數不少,通常咱們用 -c 和 -n 參數就能夠了 ab -n 1000 -c 100 https://www.baidu.com/ #注意這裏最後的斜槓必定要加 -n 表示測試請求數目 -c 表示併發度 -t timelimit 測試時間限制,單位秒 -s timeout 每一個請求時間限制,單位秒 -v verbosity 日誌輸出級別,能夠選擇1, 2等,調試使用 -T content-type POST/PUT接口的content-type -p postfile POST請求發送的數據文件
Concurrency Level: 1000 | 併發度 |
---|---|
Time taken for tests: 1.190 seconds | 總時間, 處理1000個併發請求總共花了1.19秒, |
Complete requests: 1000 | 完成的請求數量 |
Failed requests: 0 | 失敗次數 |
Write errors: 0 Non-2xx | |
responses: 1000 | 響應了1000次 |
Total transferred: 164000 bytes | 總共傳輸了多少流量 HTML |
transferred: 0 bytes | 傳遞了多少字節 |
Requests per second: 840.58 [#/sec] (mean) | QPS, 每秒完成的請求數目 , 是系統最重要的指標 |
Time per request: 1189.651 [ms] (mean) | 每組請求用時 |
Time per request: 1.190 [ms] (mean, across all concurrent requests) | 每一個請求實際運行時間的平均值 ms是毫秒 |
Transfer rate: 134.62 [Kbytes/sec] received | 傳輸速率 能夠幫助排除是否存在網絡流量過大致使響應時間延長的問題 |
以x-www-form-urlencoded形式發送服務器
ab -n 1000 -c 100 -p post.txt -T 'application/x-www-form-urlencoded' http://www.test.com/test/api
注: post.txt文件內容: name=hello,world網絡
以multipart/form-data形式發送併發
ab -n 1000 -c 100 -p post.txt -T 'multipart/form-data; boundary=--WebKitFormBoundaryE19zNvXGzXaLvS5C' http://www.test.com/test/api
吞吐率(Requests per second),縮寫RPS,是服務器併發處理能力的量化描述,單位是reqs/s,指的是某個併發用戶數下單位時間內處理的請求數。某個併發用戶數下單位時間內能處理的最大的請求數,稱之爲最大吞吐率。app
性能測試獲得的最重要的指標就是QPS(Query per second),每秒查詢率,qps至關於最大吞吐率。反映了接口的併發承受能力,也就是系統的峯值性能。若是對接口的調用超過了這一限制,就要考慮提高硬件或者作一些優化了。工具