Apache Benchmark簡稱爲ab,是apache自帶的用於HTTP Server測試的工具。它能夠接受單一的URL,而後重複地按照指定的多個獨立線程的方式加載,並使用不一樣的命令行參數控制訪問的次數、最大的併發訪問數等。ab工具的使用也很是簡單,當安裝完Apache的時候,就能夠在bin目錄下面找到它。
在學習ab工具以前,咱們需瞭解幾個關於壓力測試的概念
一、吞吐率(Requests per second)
概念:服務器併發處理能力的量化描述,單位是reqs/s,指的是某個併發用戶數下單位時間內處理的請求數。某個併發用戶數下單位時間內能處理的最大請求數,稱之爲最大吞吐率。
計算公式:總請求數 / 處理完成這些請求數所花費的時間,即
Request per second = Complete requests / Time taken for tests
二、併發鏈接數(The number of concurrent connections)
概念:某個時刻服務器所接受的請求數目,簡單的講,就是一個會話。
三、併發用戶數(The number of concurrent users,Concurrency Level)
概念:要注意區分這個概念和併發鏈接數之間的區別,一個用戶可能同時會產生多個會話,也即鏈接數。
四、用戶平均請求等待時間(Time per request)
計算公式:處理完成全部請求數所花費的時間/ (總請求數 / 併發用戶數),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
五、服務器平均請求等待時間(Time per request: across all concurrent requests)
計算公式:處理完成全部請求數所花費的時間 / 總請求數,即
Time taken for / testsComplete requests
能夠看到,它是吞吐率的倒數。
同時,它也=用戶平均請求等待時間/併發用戶數,即
Time per request / Concurrency Level
ab工具的使用
ab -c 10 -n 100 http://www.baidu.com/ -n 表示請求數 -c 表示併發數
運行上面的命令後就出來測試報告了
經過上面的報告能夠看到服務器採用的是BWS/1.1,域名是www.baidu.com,端口是80php 壓力測試的幾個重要指標html Concurrency Level: 10 //併發請求數 Time taken for tests: 4.205 seconds //整個測試持續的時間 Complete requests: 100 //完成的請求數 Failed requests: 0 //失敗的請求數 Total transferred: 10410224 bytes //整個場景中的網絡傳輸量 HTML transferred: 10314295 bytes //整個場景中的HTML內容傳輸量 Requests per second: 23.78 [#/sec] (mean) //吞吐率,你們最關心的指標之一,至關於 LR 中的每秒事務數,後面括號中的 mean 表示這是一個平均值 Time per request: 420.468 [ms] (mean) //用戶平均請求等待時間,你們最關心的指標之二,至關於 LR 中的平均事務響應時間,後面括號中的 mean 表示這是一個平均值 Time per request: 42.047 [ms] (mean, across all concurrent requests) //服務器平均請求處理時間,你們最關心的指標之三 Transfer rate: 2417.84 [Kbytes/sec] received //平均每秒網絡上的流量,能夠幫助排除是否存在網絡流量過大致使響應時間延長的問題
關於登陸壓力測試的問題shell
有時候進行壓力測試須要用戶登陸,怎麼辦?apache 請參考如下步驟:服務器
一、先用帳戶和密碼登陸後,用開發者工具找到標識這個會話的Cookie值(Session ID)記下來網絡 若是隻用到一個Cookie,那麼只需鍵入命令:併發 ab -n 100 -C key=value http://www.test.com/
二、若是須要多個Cookie,就直接設Header:工具 ab -n 100 -H "Cookie: Key1=Value1; Key2=Value2" http://www.test.com/
文章來源
CODETC,歡迎分享,轉載請註明地址:
http://www.codetc.com/article-310-1.html
|