常用的性能測(cè)試工具
對(duì)于開發(fā)人員來說,首選是一些開源免費(fèi)的性能(壓力)測(cè)試軟件,例如 ab(ApacheBench)、JMeter 等;對(duì)于專業(yè)的測(cè)試團(tuán)隊(duì)來說,付費(fèi)版的 LoadRunner 是首選。當(dāng)然,也有很多公司是自行開發(fā)了一套量身定做的性能測(cè)試軟件,優(yōu)點(diǎn)是定制化強(qiáng),缺點(diǎn)則是通用性差。
重點(diǎn)介紹 ab 和 JMeter 兩款測(cè)試工具的特點(diǎn)以及常規(guī)的使用方法。
1.ab
ab 測(cè)試工具是 Apache 提供的一款測(cè)試工具,具有簡(jiǎn)單易上手的特點(diǎn),在測(cè)試 Web 服務(wù)時(shí)非常實(shí)用。
ab 可以在 windows 系統(tǒng)中使用,也可以在 linux 系統(tǒng)中使用。這里我說下在 Linux 系統(tǒng)中的安裝方法,非常簡(jiǎn)單,只需要在 Linux 系統(tǒng)中輸入 yum-y install httpd-tools 命令, 就可以了。
ab 工具用來測(cè)試 post get 接口請(qǐng)求非常便捷,可以通過參數(shù)指定請(qǐng)求數(shù)、并發(fā)數(shù)、請(qǐng)求參數(shù)等。例如,一個(gè)測(cè)試并發(fā)用戶數(shù)為 10、請(qǐng)求數(shù)量為 100 的的 post 請(qǐng)求輸入如下:
ab -n 100 -c 10 -p 'post.txt' -T 'Application/x-www-form-urlencoded' 'http://test.api"
post.txt 為存放 post 參數(shù)的文檔,存儲(chǔ)格式如下:
usernanme=test&password=test&sex=1
附上幾個(gè)常用參數(shù)的含義:
-n:總請(qǐng)求次數(shù)(最小默認(rèn)為 1);
-c:并發(fā)次數(shù)(最小默認(rèn)為 1 且不能大于總請(qǐng)求次數(shù),例如:10 個(gè)請(qǐng)求,10 個(gè)并發(fā), 實(shí)際就是 1 人請(qǐng)求 1 次);
-p:post 參數(shù)文檔路徑(-p 和 -T 參數(shù)要配合使用);
-T:header 頭內(nèi)容類型(此處切記是大寫英文字母 T)。
當(dāng)我們測(cè)試一個(gè) get 請(qǐng)求接口時(shí),可以直接在鏈接的后面帶上請(qǐng)求的參數(shù):
ab -c 10 -n 100 http://www.test.api.com/test/login?userName=test&password=test
有幾項(xiàng)性能指標(biāo)可以提供給你參考使用:
Requests per second:吞吐率,指某個(gè)并發(fā)用戶數(shù)下單位時(shí)間內(nèi)處理的請(qǐng)求數(shù);
Time per request:上面的是用戶平均請(qǐng)求等待時(shí)間,指處理完成所有請(qǐng)求數(shù)所花費(fèi)的時(shí)間 /(總請(qǐng)求數(shù) / 并發(fā)用戶數(shù));
Time per request:下面的是服務(wù)器平均請(qǐng)求處理時(shí)間,指處理完成所有請(qǐng)求數(shù)所花費(fèi)的時(shí)間 / 總請(qǐng)求數(shù);
Percentage of the requests served within a certain time:每秒請(qǐng)求時(shí)間分布情況,指在整個(gè)請(qǐng)求中,每個(gè)請(qǐng)求的時(shí)間長(zhǎng)度的分布情況,例如有 50% 的請(qǐng)求響應(yīng)在 8ms內(nèi),66% 的請(qǐng)求響應(yīng)在 10ms 內(nèi),說明有 16% 的請(qǐng)求在 8ms~10ms 之間。
2.JMeter
JMeter 是 Apache 提供的一款功能性比較全的性能測(cè)試工具,同樣可以在 Windows 和Linux 環(huán)境下安裝使用。
JMeter 在 Windows 環(huán)境下使用了圖形界面,可以通過圖形界面來編寫測(cè)試用例,具有易學(xué)和易操作的特點(diǎn)。
JMeter 不僅可以實(shí)現(xiàn)簡(jiǎn)單的并發(fā)性能測(cè)試,還可以實(shí)現(xiàn)復(fù)雜的宏基準(zhǔn)測(cè)試。我們可以通過錄制腳本的方式,在 JMeter 實(shí)現(xiàn)整個(gè)業(yè)務(wù)流程的測(cè)試。JMeter 也支持通過 csv 文件導(dǎo)入?yún)?shù)變量,實(shí)現(xiàn)用多樣化的參數(shù)測(cè)試系統(tǒng)性能。
Windows 下的 JMeter 安裝非常簡(jiǎn)單,在官網(wǎng)下載安裝包,解壓后即可使用。如果你需要 打開圖形化界面,那就進(jìn)入到 bin 目錄下,找到 jmeter.bat 文件,雙擊運(yùn)行該文件就可以了。
JMeter 的功能非常全面,我在這里簡(jiǎn)單介紹下如何錄制測(cè)試腳本,并使用 JMeter 測(cè)試業(yè)務(wù)的性能。
錄制 JMeter 腳本的方法有很多,一種是使用 Jmeter 自身的代理錄制,另一種是使用Badboy 這款軟件錄制,還有一種是我下面要講的,通過安裝瀏覽器插件的方式實(shí)現(xiàn)腳本的錄制,這種方式非常簡(jiǎn)單,不用做任何設(shè)置。
首先我們安裝一個(gè)錄制測(cè)試腳本的插件,叫做 BlazeMeter 插件。你可以在 Chrome 應(yīng)用商店中找到它,然后點(diǎn)擊安裝
然后使用谷歌賬號(hào)登錄這款插件,如果不登錄,我們將無法生成 JMeter 文件
最后點(diǎn)擊開始,就可以錄制腳本了。錄制成功后,點(diǎn)擊保存為 JMX 文件,我們就可以通過
JMeter 打開這個(gè)文件,看到錄制的腳本了
這個(gè)時(shí)候,我們還需要?jiǎng)?chuàng)建一個(gè)查看結(jié)果樹,用來可視化查看運(yùn)行的性能結(jié)果集合
設(shè)置好結(jié)果樹之后,我們可以對(duì)線程組的并發(fā)用戶數(shù)以及循環(huán)調(diào)用次數(shù)進(jìn)行設(shè)置
設(shè)置成功之后,點(diǎn)擊運(yùn)行,我們可以看到運(yùn)行的結(jié)果
3.LoadRunner
LoadRunner 是一款商業(yè)版的測(cè)試工具,并且 License 的售價(jià)不低。
作為一款專業(yè)的性能測(cè)試工具,LoadRunner 在性能壓測(cè)時(shí),表現(xiàn)得非常穩(wěn)定和高效。相比 JMeter,LoadRunner 可以模擬出不同的內(nèi)網(wǎng) IP 地址,通過分配不同的 IP 地址給測(cè)試 的用戶,模擬真實(shí)環(huán)境下的用戶。






