在學習使用ab命令之前平斩,首先要了解壓力測試的幾個概念:
吞吐率(Requests per second)
概念:服務器并發(fā)處理能力的量化描述力喷,單位是reqs/s幻捏,指的是某個并發(fā)用戶數(shù)下單位時間內(nèi)處理的請求數(shù)前普。某個并發(fā)用戶數(shù)下單位時間內(nèi)能處理的最大請求數(shù)宏所,稱之為最大吞吐率酥艳。
計算公式:總請求數(shù) / 處理完成這些請求數(shù)所花費的時間,即
Request per second = Complete requests / Time taken for tests
并發(fā)連接數(shù)(The number of concurrent connections)
概念:某個時刻服務器所接受的請求數(shù)目爬骤,簡單的講充石,就是一個會話。
并發(fā)用戶數(shù)(The number of concurrent users霞玄,Concurrency Level)
概念:要注意區(qū)分這個概念和并發(fā)連接數(shù)之間的區(qū)別骤铃,一個用戶可能同時會產(chǎn)生多個會話拉岁,也即連接數(shù)。
用戶平均請求等待時間(Time per request)
計算公式:處理完成所有請求數(shù)所花費的時間/ (總請求數(shù) / 并發(fā)用戶數(shù))惰爬,即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)
服務器平均請求等待時間(Time per request: across all concurrent requests)
計算公式:處理完成所有請求數(shù)所花費的時間 / 總請求數(shù)喊暖,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒數(shù)撕瞧。
同時陵叽,它也=用戶平均請求等待時間/并發(fā)用戶數(shù),即
Time per request / Concurrency Level
3.ab工具的介紹
ab是apache自帶的壓力測試工具丛版。ab非常實用巩掺,它不僅可以對apache服務器進行網(wǎng)站訪問壓力測試,也可以對或其它類型的服務器進行壓力測試页畦。比如nginx胖替、tomcat、IIS等豫缨。
安裝:
1.公司應該有程序員吧独令,可以安裝一個wamp或者phpstudy,這樣apache服務器和mysql數(shù)據(jù)庫都有了好芭,一舉多得:
文件位置:打開你安裝的apache的位置:找到 bin文件夾下面的ab.exe
在該文件夾下打開命令行燃箭,輸入 ab.exe -help
對上面的Options做下解釋吧:
-n即requests,用于指定壓力測試總共的執(zhí)行次數(shù)栓撞。
-c即concurrency遍膜,用于指定壓力測試的并發(fā)數(shù)碗硬。
-t即timelimit瓤湘,等待響應的最大時間(單位:秒)。
-b即windowsize恩尾,TCP發(fā)送/接收的緩沖大小(單位:字節(jié))弛说。
-p即postfile,發(fā)送POST請求時需要上傳的文件翰意,此外還必須設置-T參數(shù)木人。
-u即putfile,發(fā)送PUT請求時需要上傳的文件冀偶,此外還必須設置-T參數(shù)醒第。
-T即content-type,用于設置Content-Type請求頭信息进鸠,例如:application/x-www-form-urlencoded稠曼,默認值為text/plain。
-v即verbosity客年,指定打印幫助信息的冗余級別霞幅。
-w以HTML表格形式打印結(jié)果漠吻。
-i使用HEAD請求代替GET請求。
-x插入字符串作為table標簽的屬性司恳。
-y插入字符串作為tr標簽的屬性途乃。
-z插入字符串作為td標簽的屬性。
-C添加cookie信息扔傅,例如:"Apache=1234"(可以重復該參數(shù)選項以添加多個)耍共。
-H添加任意的請求頭,例如:"Accept-Encoding: gzip"铅鲤,請求頭將會添加在現(xiàn)有的多個請求頭之后(可以重復該參數(shù)選項以添加多個)划提。
-A添加一個基本的網(wǎng)絡認證信息,用戶名和密碼之間用英文冒號隔開邢享。
-P添加一個基本的代理認證信息鹏往,用戶名和密碼之間用英文冒號隔開。
-X指定使用的代理服務器和端口號骇塘,例如:"126.10.10.3:88"伊履。
-V打印版本號并退出。
-k使用HTTP的KeepAlive特性款违。
-d不顯示百分比唐瀑。
-S不顯示預估和警告信息。
-g輸出結(jié)果信息到gnuplot格式的文件中插爹。
-e輸出結(jié)果信息到CSV格式的文件中哄辣。
-r指定接收到錯誤信息時不退出程序。
-h顯示用法信息赠尾,其實就是ab -help力穗。