JMeter介紹
Apache JMeter是Apache組織開發(fā)的基于Java的測試工具蕊程。
1、可以用于對(duì)服務(wù)器秆吵、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載
2亏掀、通過創(chuàng)建帶有斷言的腳本來驗(yàn)證程序是否能返回期望的結(jié)果
-
適用的測試領(lǐng)域:
- 用于對(duì)軟件做壓力測試
- 對(duì)應(yīng)用程序做功能/回歸測試
- 對(duì)靜態(tài)和動(dòng)態(tài)的資源(文件捂贿、Servlect、Perl腳本巾乳、java對(duì)象您没、數(shù)據(jù)庫和查詢鸟召、FTP服務(wù)器等等)的性能進(jìn)行測試
- 接口測試
- 數(shù)據(jù)庫壓力測試
- 批量產(chǎn)生測試數(shù)據(jù)
優(yōu)點(diǎn):
1.開源、免費(fèi)
2.跨平臺(tái)
3.支持多協(xié)議
4.小巧
5.功能強(qiáng)大
缺點(diǎn):
1.不支持IP欺騙
2.使用JMeter無法驗(yàn)證JS程序氨鹏,也無法驗(yàn)證頁面UI欧募,所以要和Selenium配合來完成Web2.0應(yīng)用的測試
注意:JMeter是按照線程的方式來運(yùn)行的,JMeterGUI模式運(yùn)行測試腳本對(duì)電腦本身的資源消耗較大仆抵,無法實(shí)現(xiàn)大的并發(fā)和壓力測試跟继。使用GUI模式主要目的是編寫和調(diào)試JMeter測試腳本,編寫完后使用命令行模式實(shí)現(xiàn)并發(fā)和壓力測試镣丑。
JMeter測試計(jì)劃要素:
- 測試計(jì)劃
- 在測試計(jì)劃中至少有一個(gè)線程組
- 在線程組中至少有一個(gè)取樣器
- 在測試計(jì)劃中必須要有監(jiān)聽器
JMeter的安裝(必須安裝Java環(huán)境)
①jmeter官網(wǎng)地址:http://jmeter.apache.org/download_jmeter.cgi
②jmeter下載
③下載完后解壓(放在無中文路徑下)舔糖,找到bin目錄下
④運(yùn)行jmeter
設(shè)置語言
修改編碼集
JMeter插件:https://jmeter-plugins.org/install/Install/
JMeter插件存放位置
JMeter錄制腳本:Badboy
Badboy下載網(wǎng)址:http://www.winwin7.com/soft/7021.html
Badboy使用教程:https://blog.csdn.net/qq_30007885/article/details/88186397
Badboy常見問題:https://blog.csdn.net/qq_42587023/article/details/108667083
常用目錄文件介紹
1.bin目錄
2.docs文件
3.extras目錄
4.lib目錄
5.licenses目錄
JMeter證書目錄
6.printable_docs目錄
HTTP請求的方法:
DELETE請求:
請求服務(wù)器刪除Request-URL所標(biāo)識(shí)的資源
GET請求:
向特定的資源發(fā)出請求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中莺匠,例如在Web Application中金吗,其中一個(gè)原因是GET可能會(huì)被網(wǎng)絡(luò)蜘蛛等隨意訪問。Loadrunner中對(duì)應(yīng)get請求函數(shù):web_link和web_url
PATCH請求:
POST請求:
向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)趣竣。數(shù)據(jù)被包含在請求體中摇庙。POST請求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改。 Loadrunner中對(duì)應(yīng)POST請求函數(shù):web_submit_data,web_submit_form
筆記來源:博客園-韋邦杠-HTTP請求方式中8種請求方法
文章鏈接:https://www.cnblogs.com/weibanggang/p/9454581.html
JMeter入門腳本:
1.創(chuàng)建測試計(jì)劃
當(dāng)打開JMeter時(shí)遥缕,默認(rèn)有一個(gè)測試計(jì)劃2.添加線程組
-
3.在線程組內(nèi)添加http請求組件
右鍵點(diǎn)擊“線程組” -> “添加” -> “Sampler” -> “HTTP請求”
-
4.配置http請求組件
- 填寫協(xié)議:http
- 填寫服務(wù)器或ip:www.baidu.com
-
5.添加察看結(jié)果樹
右鍵點(diǎn)擊“線程組” -> “添加” -> “監(jiān)聽器” -> “察看結(jié)果樹”
6.運(yùn)行測試計(jì)劃
測試計(jì)劃原件
1.測試計(jì)劃
描述一個(gè)性能測試,包含本次測試所有相關(guān)功能
2.線程用戶
線程組參數(shù)詳解:
(1). 線程數(shù):虛擬用戶數(shù)通砍。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程封孙。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)。
(2). Ramp-Up Period(in seconds)準(zhǔn)備時(shí)長:設(shè)置的虛擬用戶數(shù)需要多長時(shí)間全部啟動(dòng)。如果線程數(shù)為10,準(zhǔn)備時(shí)長為2,那么需要2秒鐘啟動(dòng)10個(gè)線程岖食,也就是每秒鐘啟動(dòng)5個(gè)線程。
(3). 循環(huán)次數(shù):每個(gè)線程發(fā)送請求的次數(shù)。如果線程數(shù)為10芜茵,循環(huán)次數(shù)為100品山,那么每個(gè)線程發(fā)送100次請求涯呻∧逡總請求數(shù)為10*100=1000 复罐。如果勾選了“永遠(yuǎn)”,那么所有線程會(huì)一直發(fā)送請求雄家,一到選擇停止運(yùn)行腳本效诅。
(4). Delay Thread creation until needed:直到需要時(shí)延遲線程的創(chuàng)建。
(5). 調(diào)度器:設(shè)置線程組啟動(dòng)的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選循環(huán)次數(shù)為永遠(yuǎn))
持續(xù)時(shí)間(秒):測試持續(xù)時(shí)間填帽,會(huì)覆蓋結(jié)束時(shí)間
啟動(dòng)延遲(秒):測試延遲啟動(dòng)時(shí)間蛛淋,會(huì)覆蓋啟動(dòng)時(shí)間
啟動(dòng)時(shí)間:測試啟動(dòng)時(shí)間,啟動(dòng)延遲會(huì)覆蓋它篡腌。當(dāng)啟動(dòng)時(shí)間已過褐荷,手動(dòng)只需測試時(shí)當(dāng)前時(shí)間也會(huì)覆蓋它。
結(jié)束時(shí)間:測試結(jié)束時(shí)間嘹悼,持續(xù)時(shí)間會(huì)覆蓋它叛甫。
3.取樣器
Http請求主要參數(shù)詳解:
1.Web服務(wù)器
協(xié)議:向目標(biāo)服務(wù)器發(fā)送HTTP請求協(xié)議,可以是HTTP或HTTPS杨伙,默認(rèn)為HTTP
服務(wù)器名稱或IP :HTTP請求發(fā)送的目標(biāo)服務(wù)器名稱或IP
端口號(hào):目標(biāo)服務(wù)器的端口號(hào)其监,默認(rèn)值為802.http請求
方法:發(fā)送HTTP請求的方法,可用方法包括GET限匣、POST抖苦、HEAD、PUT米死、OPTIONS锌历、TRACE、DELETE等峦筒。
路徑:目標(biāo)URL路徑(URL中去掉服務(wù)器地址究西、端口及參數(shù)后剩余部分)
Content encoding :編碼方式,默認(rèn)為ISO-8859-1編碼物喷,這里配置為utf-83.同請求一起發(fā)送參數(shù)
在請求中發(fā)送的URL參數(shù)卤材,用戶可以將URL中所有參數(shù)設(shè)置在本表中,表中每行為一個(gè)參數(shù)(對(duì)應(yīng)URL中的 name=value)峦失,注意參數(shù)傳入中文時(shí)需要勾選“編碼”
4.邏輯控制器
5.配置元件
6.定時(shí)器
7.前置處理器
8.后置處理器
9.斷言
10.監(jiān)聽器
項(xiàng)目簡介
學(xué)生管理系統(tǒng):對(duì)學(xué)生信息進(jìn)行增刪改查扇丛,對(duì)應(yīng)的RESTful語法風(fēng)格如下