壓測(cè)工具Jmeter
Jmeter介紹
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,但后來擴(kuò)展到其他測(cè)試領(lǐng)域。 它可以用于測(cè)試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java 對(duì)象、數(shù)據(jù)庫(kù)、FTP 服務(wù)器等等。
除了Jmeter外,其它常用的壓測(cè)工具還有:
- Apache的ab壓力測(cè)試
- Nginter 韓國(guó)研發(fā)
- PAS 阿里測(cè)試工具
- MeterSphere :國(guó)內(nèi)持續(xù)測(cè)試的開源平臺(tái)
下載安裝
去官網(wǎng)下載安裝即可。首頁左側(cè)有相關(guān)下載的鏈接。
使用
一般情況下,Jmeter的使用流程如下:
- 創(chuàng)建測(cè)試計(jì)劃
- 配置線程組、http請(qǐng)求、斷言、結(jié)果監(jiān)聽器
- 執(zhí)行測(cè)試
- 查看測(cè)試結(jié)果,分析測(cè)試結(jié)果
1、創(chuàng)建測(cè)試計(jì)劃
2、配置線程組
- 線程數(shù):用來發(fā)送http請(qǐng)求的線程的數(shù)量
- 線程組常用來模擬一組用戶訪問系統(tǒng)資源(API接口)
- 假如客戶機(jī)沒有足夠的能力來模擬較重的負(fù)載,可以使用JMeter的分布式測(cè)試功能,通過一
個(gè)JMeter的Master來遠(yuǎn)程控制多個(gè)JMeter的Salve完成測(cè)試
- 循環(huán)次數(shù):循環(huán)執(zhí)行多少次操作
- 循環(huán)次數(shù)表示了循環(huán)執(zhí)行多少次操作!循環(huán)次數(shù)直接決定整個(gè)測(cè)試單個(gè)線程的執(zhí)行時(shí)間,和整體測(cè)試執(zhí)行時(shí)間
- 單線程執(zhí)行時(shí)間 = 單請(qǐng)求平均響應(yīng)時(shí)間 * 循環(huán)次數(shù)
- 整個(gè)測(cè)試耗時(shí) = 單線程執(zhí)行時(shí)間 + (Ramp-Up - Ramp-Up / 線程數(shù))
- Ramp-Up:建立全部線程耗時(shí)
- Ramp-Up Period (in-seconds) 代表隔多長(zhǎng)時(shí)間執(zhí)行,默認(rèn)值是0,0代表同時(shí)并發(fā)。用于告知JMeter 要在多長(zhǎng)時(shí)間內(nèi)建立全部的線程
- Ramp-Up Period (in-seconds) 代表隔多長(zhǎng)時(shí)間執(zhí)行,默認(rèn)值是0,0代表同時(shí)并發(fā)。用于告知JMeter 要在多長(zhǎng)時(shí)間內(nèi)建立全部的線程
線程屬性說明:
- 線程數(shù):20, 線程數(shù)量,這里設(shè)置了20個(gè)線程
- ramp-up:表示在指定時(shí)間之內(nèi)把這些線程全部啟動(dòng)起來。 如果n=1,那就表示要在1s以內(nèi)把50個(gè)線程全部啟動(dòng)起來
- 循環(huán)次數(shù):2000,表示把 20 thread 循環(huán)2000次,也就是說讓每一個(gè)請(qǐng)求接口循環(huán)調(diào)用接口2000次
3、設(shè)置Http請(qǐng)求
設(shè)置請(qǐng)求協(xié)議、端口、路徑等信息。
4、設(shè)置斷言
JMeter斷言常用有兩種,一種是響應(yīng)斷言,一種是響應(yīng)時(shí)間斷言,如果響應(yīng)內(nèi)容不滿足斷言的配置,則認(rèn)為這次的請(qǐng)求是失敗的。
- 響應(yīng)斷言:判斷響應(yīng)內(nèi)容是否包含指定的字符信息,用于判斷api接口返回內(nèi)容是否正確
- 響應(yīng)時(shí)間斷言:判斷響應(yīng)時(shí)間,是否超過預(yù)期的時(shí)間,用于判斷api接口返回時(shí)間是否超過預(yù)期
接口返回包含"code":0則認(rèn)為返回內(nèi)容正確
設(shè)置請(qǐng)求接口時(shí)間超過3毫秒,則認(rèn)為請(qǐng)求失敗
5、設(shè)置結(jié)果監(jiān)聽
配置監(jiān)聽器:監(jiān)聽壓測(cè)結(jié)果,聚合報(bào)告和匯總結(jié)果很類似,看一個(gè)就行
- 聚合報(bào)告:查詢結(jié)果信息聚合匯總,例如樣本、平均值、通吐量、最大值、最小值…
- 察看結(jié)果樹:記錄每一次壓測(cè)請(qǐng)求
- 圖像結(jié)果:分析了所有請(qǐng)求的平均值、終止、偏離值和通吐量之間的關(guān)系。
- 匯總結(jié)果:匯總壓測(cè)結(jié)果
- 匯總圖:將壓測(cè)結(jié)果以圖像形式展示
聚合報(bào)告相關(guān)結(jié)果解釋如下:
- 樣本(sample): 發(fā)送請(qǐng)求的總樣本數(shù)量
- 響應(yīng)時(shí)間【單位ms】:
- 平均值(average):平均的響應(yīng)時(shí)間
- 中位數(shù)(median): 中位數(shù)的響應(yīng)時(shí)間,50%請(qǐng)求的響應(yīng)時(shí)間
- 90%百分位(90% Line): 90%的請(qǐng)求的響應(yīng)時(shí)間,意思就是說90%的請(qǐng)求是<=1765ms返回,另外10%的請(qǐng)求是大于等于1765ms返回的。
- 95%百分位(95% Line): 95%的請(qǐng)求的響應(yīng)時(shí)間,95%的請(qǐng)求都落在1920ms之內(nèi)返回的
- 99%百分位(99% Line): 99%的請(qǐng)求的響應(yīng)時(shí)間
- 最小值(min):請(qǐng)求返回的最小時(shí)間,其中一個(gè)用時(shí)最少的請(qǐng)求
- 最大值(max):請(qǐng)求返回的最大時(shí)間,其中一個(gè)用時(shí)最大的請(qǐng)求
- 異常(error): 出現(xiàn)錯(cuò)誤的百分比,錯(cuò)誤率=錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
- 吞吐量TPS(throughout): 吞吐能力,最重要的就是這個(gè)了
- Received KB/sec----每秒從服務(wù)器端接收到的數(shù)據(jù)量
- Sent KB/sec----每秒從客戶端發(fā)送的請(qǐng)求的數(shù)量
結(jié)果樹
匯總報(bào)告相關(guān)結(jié)果解釋如下,和聚合報(bào)告很類似。文章來源:http://www.zghlxwxcb.cn/news/detail-498103.html
- 樣本(sample): 發(fā)送請(qǐng)求的總樣本數(shù)量
- 響應(yīng)時(shí)間【單位ms】:
- 平均值(average):平均的響應(yīng)時(shí)間
- 最小值(min):請(qǐng)求返回的最小時(shí)間,其中一個(gè)用時(shí)最少的請(qǐng)求
- 最大值(max):請(qǐng)求返回的最大時(shí)間,其中一個(gè)用時(shí)最大的請(qǐng)求
- 標(biāo)準(zhǔn)偏差:度量響應(yīng)時(shí)間分布的分散程度的標(biāo)準(zhǔn),衡量響應(yīng)時(shí)間值偏離平均響應(yīng)時(shí)間的程度。
標(biāo)準(zhǔn)偏差越小,偏離越少,反之亦然。
- 異常(error): 出現(xiàn)錯(cuò)誤的百分比,錯(cuò)誤率=錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
- 吞吐量TPS(throughout): 吞吐能力,這個(gè)才是我們需要的并發(fā)數(shù)
- 每秒接收 KB/sec----每秒從服務(wù)器端接收到的數(shù)據(jù)量
- 每秒發(fā)送KB/sec----每秒從客戶端發(fā)送的請(qǐng)求的數(shù)量
- 平均字節(jié)數(shù)
除了上面的這些步驟以外,由于某些情況下回涉及到登錄以后對(duì)接口進(jìn)行測(cè)試,所以需要添加HttpCookie管理器,這樣才能正請(qǐng)求成功
最后Jmeter如何設(shè)置中文,找到對(duì)應(yīng)內(nèi)容加上第一句和最后一句。文章來源地址http://www.zghlxwxcb.cn/news/detail-498103.html
goto remove_language_reset_bug_4.0
if not defined JMETER_LANGUAGE (
rem Set language
rem Default to en_EN
set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
)
:remove_language_reset_bug_4.0
參考
- Jmeter中文網(wǎng)
- Jmeter官網(wǎng)
到了這里,關(guān)于壓測(cè)工具Jmeter學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!