apache性能測試工具
性能測試工具目前最常見的有以下幾種:ab、http_load、webbench、siege。
ab的原理:
ab命令會創建多個並發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。
ab命令對發出負載的計算機要求很低,它既不會佔用很高CPU,也不會佔用很多內存。但卻會給目標伺服器造成巨大的負載,其原理類似CC攻擊。自己測試使用也需要注意,否則一次上太多的負載。可能造成目標伺服器資源耗完,嚴重時甚至導致死機。
壓力測試概念
1.吞吐率(Requests per second)
概念:伺服器並發處理能力的量化描述,單位是reqs/s,指的是某個並發用戶數下單位時間內處理的請求數。某個並發用戶數下單位時間內能處理的最大請求數,稱之為最大吞吐率。
計算公式:總請求數 / /,,即
Request per second = Complete requests / Time taken for tests
2.並發連接數(The number of concurrent connections)
概念:某個時刻伺服器所接受的請求數目,簡單的講,就是一個會話。
3.並發用戶數(The number of concurrent users,Concurrency Level)
概念:要注意區分這個概念和並發連接數之間的區別,一個用戶可能同時會產生多個會話,也即連接數。
4.用戶平均請求等待時間(Time per request)
計算公式:處理完成所有請求數所花費的時間/ (總請求數 / 並發用戶數),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
5.伺服器平均請求等待時間(Time per request: across all concurrent requests)
計算公式:處理完成所有請求數所花費的時間 / 總請求數,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒數。
同時,它也=用戶平均請求等待時間/並發用戶數,即
Time per request / Concurrency Level
ab參數
-n在測試會話中所執行的請求個數。默認時,僅執行一個請求(總請求數)。
-c一次產生的請求個數。默認是一次一個(並發數)。
-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。
-p包含了需要POST的數據的文件。
-P對一個中轉代理提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。無論伺服器是否需要(即, 是否發送了401認證需求代碼),此字元串都會被發送。
-T POST數據所使用的Content-type頭信息(header頭)。
-v設置顯示信息的詳細程度-4或更大值會顯示頭信息,3或更大值可以顯示響應代碼(404,200等),2或更大值可以顯示警告和其他信息。
-V顯示版本號並退出。
-w以HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表。
-i執行HEAD請求,而不是GET。
-x設置屬性的字元串。
-X對請求使用代理伺服器。
-y設置屬性的字元串。
-z設置屬性的字元串。
-C對請求附加一個Cookie:行。其典型形式是name=value的一個參數對,此參數可以重複。
-H對請求附加額外的頭信息。此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的欄位和值的對(如,"Accept-Encoding:zip/zop;8bit")。
-A對伺服器提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。無論伺服器是否需要(即,是否發送了401認證需求代碼),此字元串都會被發送。
-h顯示使用方法。
-d不顯示"percentage served within XX [ms] table"的消息(為以前的版本提供支持)。
-e產生一個以逗號分隔的(CSV)文件,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由於這種格式已經「二進位化」,所以比 gnuplot 格式更有用。
-g把所有測試結果寫入一個"gnuplot 或者TSV(以Tab分隔的)文件。此文件可以方便地導入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行為標題。
-i執行HEAD請求,而不是GET。
-k啟用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。默認時,不啟用KeepAlive功能。
-q如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此-q標記可以抑制這些信息。
軟體測試免費視頻觀看鏈接:https://ke.qq.com/course/159919#tuin=ba4122
微信公眾號:松勤軟體學院
打開微信掃一掃 關注松勤軟體學院
TAG:松勤軟體學院 |