這里省略了安裝及配置如庭,一般都知道jmeter是免安裝的开瞭,配置也是根據(jù)個(gè)人需要進(jìn)行配置恐锣,從而方便通過(guò)命令快速啟動(dòng),有需要同學(xué)自行查詢相關(guān)文章一下哈,后面就是博主學(xué)習(xí)的一些隨筆境肾,也不是很系統(tǒng)的,姑且將就看看吧,哈哈
基本介紹
一鳖眼、線程組
線程組:負(fù)載發(fā)生器,用多線程或者多進(jìn)程的方式來(lái)模擬用戶的使用行為。jmeter是以線程的方式來(lái)進(jìn)行模擬用戶的并發(fā)訪問(wèn)的。
線程數(shù):設(shè)置多少個(gè)線程(虛擬用戶)
循環(huán)次數(shù):一個(gè)線程執(zhí)行多少次
Ramp-up 時(shí)間:設(shè)置多少秒內(nèi)把線程加載完畢穆律,設(shè)置10就是10s
調(diào)度器:執(zhí)行腳本的時(shí)間設(shè)置
二绍弟、邏輯控制器--if控制器
jmeter(5.3)版本:
if控制器:借助其他模塊或者函數(shù)將需要進(jìn)行判斷的表達(dá)式(如 {ifRun}== 1這樣的表達(dá)式寫入Expression中是無(wú)效的笔喉。
可以借助__jexl3或者_(dá)_groovy函數(shù)來(lái)計(jì)算表達(dá)式的值:{ifRun}==1,)}
或者 直接不勾選“Interpret Condition as Variable Expression?”
三售淡、添加配置原件--JDBC connection configuration
這里添加數(shù)據(jù)庫(kù)配置原件,一定要有變了名稱幔烛,例如demo啃擦,“jdbc:mysql”表示這個(gè)是鏈接mysql數(shù)據(jù)庫(kù),后面是數(shù)據(jù)地址+端口好饿悬,“inventory”是數(shù)據(jù)名字令蛉,也可不寫或?qū)憁ysql,不寫的數(shù)據(jù)庫(kù)時(shí)狡恬,在寫sql時(shí)珠叔,指定對(duì)應(yīng)的數(shù)據(jù)即可;“serverTimeZone=UTC”這個(gè)是設(shè)置查詢時(shí)區(qū)弟劲,在做數(shù)據(jù)庫(kù)查詢時(shí)祷安,數(shù)據(jù)庫(kù)如果沒(méi)有設(shè)置統(tǒng)一時(shí)區(qū),可能會(huì)報(bào)錯(cuò)兔乞,數(shù)據(jù)庫(kù)設(shè)置好了辆憔,此處可省略。
添加完數(shù)據(jù)庫(kù)配置报嵌,開是寫sql虱咧,需要添加一個(gè)JDBC Request,然后把數(shù)據(jù)庫(kù)源文件名稱寫入锚国,就可以進(jìn)行數(shù)據(jù)可查詢了腕巡。
四、jmeter實(shí)現(xiàn)請(qǐng)求預(yù)處理
前置處理器:用于在實(shí)際的請(qǐng)求發(fā)出之前對(duì)即將發(fā)出的請(qǐng)求進(jìn)行特殊處理血筑,例如用戶參數(shù)绘沉,可以在實(shí)際發(fā)送請(qǐng)求之前來(lái)定義變量煎楣,可以在后邊的事假請(qǐng)求中進(jìn)行使用。
1车伞、用戶參數(shù):添加變量择懂,并在控制臺(tái)打印變量
2、BeanShell Sampler ----可以編寫腳本文件
五另玖、jmeter集合點(diǎn)困曙、定時(shí)并發(fā)
定時(shí)器:用于操作與操作中間設(shè)置的等待時(shí)間。等待時(shí)間是性能測(cè)試中常用的控制客戶端QPS的手段谦去。類似與LoadRunner里面的“思考時(shí)間”
六慷丽、jmeter實(shí)現(xiàn)各種請(qǐng)求的發(fā)送
Sampler:取樣器,是性能測(cè)試中像服務(wù)器發(fā)送請(qǐng)求鳄哭,記錄相應(yīng)信息要糊,記錄響應(yīng)時(shí)間的最小單元,jmeter原生支持多種不同的Sampler.
例如:
1妆丘、BeanShell:可以自己寫代碼 應(yīng)用jia包
2锄俄、DeBugSampler:協(xié)助進(jìn)行調(diào)試工作
3、JAVA請(qǐng)求:自定義代碼
4勺拣、HTTP請(qǐng)求:寫http接口
七奶赠、jmeter實(shí)現(xiàn)關(guān)聯(lián)
后置處理器:(關(guān)聯(lián)概念的應(yīng)用器)用于對(duì)對(duì)Sampler發(fā)出請(qǐng)求后得到的服務(wù)器相應(yīng)進(jìn)行處理。一般用來(lái)提取相應(yīng)中的特定數(shù)據(jù)
正則表達(dá)式提取器和BeanShell取樣器截取的字符串包含中文宣脉,在表達(dá)式括號(hào)內(nèi)使用雙引號(hào)包起來(lái)就能表示截取的是字符串
System.out.println("${title}")
八车柠、jmeter實(shí)現(xiàn)數(shù)據(jù)預(yù)判
jmeter實(shí)現(xiàn)數(shù)據(jù)預(yù)判
斷言:斷言用于檢查測(cè)試匯總得到的相應(yīng)數(shù)據(jù)是否符合預(yù)期。斷言一般用來(lái)設(shè)置檢查點(diǎn)塑猖,用于保證性能測(cè)試過(guò)程中數(shù)據(jù)交互是否與預(yù)期一致
九竹祷、jmeter監(jiān)控?cái)?shù)據(jù)可視化
jmeter監(jiān)控?cái)?shù)據(jù)可視化
監(jiān)聽器:這個(gè)監(jiān)聽器不是用來(lái)監(jiān)聽系統(tǒng)資源的組件,他是用來(lái)對(duì)測(cè)試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列組件羊苟,例如查看結(jié)果樹塑陵,聚合報(bào)告
十、jmeter函數(shù)助手
代表性的函數(shù):
1蜡励、隨機(jī)數(shù):(__Random)
2令花、參數(shù)化助手:(__CSVRead)讀取CSV文件的值,應(yīng)用到性能測(cè)試腳本中
新建一個(gè)csv文件凉倚,tetsCsv.csv,數(shù)據(jù)為:
System.out.println("{__CSVRead(/Users/Documents/Performance/testCsv.csv,0)}");
3兼都、計(jì)數(shù)器:(__counter)
"System.out.println("Flase= "+{__counter(TRUE,counter)}); 僅循環(huán)扮碧,每個(gè)用戶自己的循環(huán)計(jì)數(shù)”
4、唯一數(shù):(__UUID)
十一、jmeter實(shí)現(xiàn)分布式并發(fā)
大并發(fā)量的時(shí)候慎王,一般在1000以上就可以考慮分分布式了蚓土,關(guān)鍵步驟:
1.master在jmeter.properties中添加remote_hosts;(主壓力機(jī))
2.slave在jmeter.properties中添加server_port;(從壓力機(jī))
3.slave啟動(dòng)jmeter-server
注意:關(guān)閉防火墻
操作過(guò)程中遇到的問(wèn)題:
1、直接啟動(dòng)遠(yuǎn)程服務(wù)時(shí)赖淤,
提示:Exception creating connection to: 127.0.0.1; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
找不到對(duì)應(yīng)文件
解決:修改jmeter.properties文件蜀漆,將中找到server.rmi.ssl.disable內(nèi)容改為:server.rmi.ssl.disable=true并去掉注釋,重新啟動(dòng)jmeter
2咱旱、在啟動(dòng)時(shí)确丢,問(wèn)題就變成了視頻中提到的拒絕訪問(wèn)
Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
解決:要先安裝虛擬機(jī),或者有服務(wù)器莽龟,自己來(lái)測(cè)試
由于目前沒(méi)有部署服務(wù)蠕嫁,所以么有進(jìn)行測(cè)試锨天。
本文出自慕課網(wǎng)培訓(xùn)視頻毯盈,不可用于商業(yè)用途,轉(zhuǎn)載請(qǐng)注明出處:https://coding.imooc.com/lesson/142.html#mid=7147
時(shí)隔很多年病袄,終于還是決定放出來(lái)