Apache自帶的ab壓力測(cè)試工具的實(shí)現(xiàn)
目錄
- Apache Bench 簡(jiǎn)介
- ab的原理
- ab的安裝
- 參數(shù)介紹
- ab測(cè)試案例
- 示例2
Apache Bench 簡(jiǎn)介
Apache Bench 是 Apache 服務(wù)器自帶的一個(gè)web壓力測(cè)試工具,簡(jiǎn)稱(chēng) ab 。
ab 非常實(shí)用,它不僅可以對(duì)apache服務(wù)器進(jìn)行網(wǎng)站訪(fǎng)問(wèn)壓力測(cè)試,也可以對(duì)或其它類(lèi)型的服務(wù)器進(jìn)行壓力測(cè)試。比如nginx、tomcat、IIS等
ab的原理
ab的原理:ab命令會(huì)創(chuàng)建 多個(gè)并發(fā) 訪(fǎng)問(wèn)線(xiàn)程,模擬 多個(gè)訪(fǎng)問(wèn)者 同時(shí)對(duì)某一 URL地址 進(jìn)行訪(fǎng)問(wèn)。
它的測(cè)試目標(biāo)是基于URL的,因此,它既可以用來(lái)測(cè)試apache的負(fù)載壓力,也可以測(cè)試nginx、lighthttp、tomcat、IIS等其它Web服務(wù)器的壓力。
ab是一個(gè)命令行工具, ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,它既不會(huì)占用很高CPU,也不會(huì)占用很多內(nèi)存。但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載,其原理類(lèi)似CC攻擊。自己測(cè)試使用也需要注意,否則一次上太多的負(fù)載。可能造成目標(biāo)服務(wù)器資源耗完,嚴(yán)重時(shí)甚至導(dǎo)致死機(jī)。
總的來(lái)說(shuō)ab工具小巧簡(jiǎn)單,上手學(xué)習(xí)較快,可以提供需要的基本性能指標(biāo),但是沒(méi)有圖形化結(jié)果,不能監(jiān)控。
對(duì)于想快速進(jìn)行壓力測(cè)試的同學(xué)來(lái)說(shuō),apache ab是一個(gè)簡(jiǎn)單好用的工具,下面簡(jiǎn)單介紹一下它的使用方法。
官網(wǎng): https://httpd.apache.org/docs/2.0/programs/ab.html
ab的安裝
# 安裝#yum -y install httpd-toolsapt-get install apache2-utils# 檢查是否成功ab -v
參數(shù)介紹
格式:ab [options] [http://]hostname[:port]/path
下面是參數(shù)
-n requests Number of requests to perform //本次測(cè)試發(fā)起的總請(qǐng)求數(shù)
-c concurrency Number of multiple requests to make //一次產(chǎn)生的請(qǐng)求數(shù)(或并發(fā)數(shù))
-t timelimit Seconds to max. wait for responses //測(cè)試所進(jìn)行的最大秒數(shù),默認(rèn)沒(méi)有時(shí)間限制。
-r Don't exit on socket receive errors. // 拋出異常繼續(xù)執(zhí)行測(cè)試任務(wù)
-p postfile File containing data to POST //包含了需要POST的數(shù)據(jù)的文件,文件格式如“p1=1&p2=2”.使用方法是 -p 111.txt-T content-type Content-type header for POSTing
// POST 數(shù)據(jù)所使用的 Content-type 頭信息,如 -T “application/x-www-form-urlencoded” 。 (配合-p)-v verbosity How much troubleshooting info to print
//設(shè)置顯示信息的詳細(xì)程度 – 4或更大值會(huì)顯示頭信息, 3或更大值可以顯示響應(yīng)代碼(404, 200等), 2或更大值可以顯示警告和其他信息。 -V 顯示版本號(hào)并退出。-C attribute Add cookie, eg. -C “c1=1234,c2=2,c3=3” (repeatable)
//-C cookie-name=value 對(duì)請(qǐng)求附加一個(gè)Cookie:行。 其典型形式是name=value的一個(gè)參數(shù)對(duì)。此參數(shù)可以重復(fù),用逗號(hào)分割。
提示:可以借助session實(shí)現(xiàn)原理傳遞 JSESSIONID參數(shù), 實(shí)現(xiàn)保持會(huì)話(huà)的功能,如-C ” c1=1234,c2=2,c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8″ 。-w Print out results in HTML tables //以HTML表的格式輸出結(jié)果。默認(rèn)時(shí),它是白色背景的兩列寬度的一張表。
-i Use HEAD instead of GET
ab測(cè)試案例
ab -n 5000 -c 200 http://localhost/index.phpab -n 1000 -c 100 -w http://localhost/index.php >>d:miss.htmlab -n 1000 -c 100 -p request_json.txt -T "application/json" "http://192.168.0.101:8088/api/event/annotationEvent"
示例2
參數(shù)很多,一般我們用 -n 和 -c 參數(shù)就可以了。例如:
abs.exe -n 100 -c 20 測(cè)試網(wǎng)址
- -n 后面的100,表示總共發(fā)出100 個(gè)請(qǐng)求;
- -c 后面的20 ,表示采用20 個(gè)并發(fā)(模擬 20 個(gè)人同時(shí)訪(fǎng)問(wèn)),
后面的網(wǎng)址表示測(cè)試的目標(biāo)URL。
對(duì)百度進(jìn)行簡(jiǎn)單的壓力測(cè)試: abs.exe -n 100 -c 20 https://www.baidu.com/
運(yùn)行結(jié)果:
- Document Path:測(cè)試頁(yè)面
- Document Length: 頁(yè)面大小
- Concurrency Level: 測(cè)試的并發(fā)數(shù)
- Time taken for tests:整個(gè)測(cè)試持續(xù)的時(shí)間
- Complete requests:完成的請(qǐng)求數(shù)量
- Failed requests: 失敗的請(qǐng)求數(shù)量
- Total transferred: 整個(gè)過(guò)程中的網(wǎng)絡(luò)傳輸量
- HTML transferred: 整個(gè)過(guò)程中的HTML內(nèi)容傳輸量
- Requests per second: 最重要的指標(biāo)之一,相當(dāng)于LR中的每秒事務(wù)數(shù),后面括號(hào)中的mean表示這是一個(gè)平均值
- Time per request: 最重要的指標(biāo)之二,相當(dāng)于LR中的平均事務(wù)響應(yīng)時(shí)間,后面括號(hào)中的mean表示這是一個(gè)平均值
- Time per request: 每個(gè)連接請(qǐng)求實(shí)際運(yùn)行時(shí)間的平均值
- Transfer rate: 平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過(guò)大導(dǎo)致響應(yīng)時(shí)間延長(zhǎng)的問(wèn)題
到此這篇關(guān)于Apache自帶的ab壓力測(cè)試工具的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Apache ab壓力測(cè)試工具內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
