JDK官網(wǎng):http://www.oracle.com/technetwork/java/javase/downloads/index.html
Jemter官網(wǎng):https://jmeter.apache.org/download_jmeter.cgi
安裝JDK請(qǐng)看此文:http://www.reibang.com/p/833179c24d9b
安裝Jmeter
1.下載解壓Jmeter安裝包,在官網(wǎng)下載
2.配置Jmeter環(huán)境變量:按下面變量名和變量值配置Jmeter系統(tǒng)環(huán)境變量
變量名:【JMETER_HOME】
變量值:【D:\Jemter\apache-jmeter-5.3】(根據(jù)實(shí)際的jmeter解壓路徑填寫(xiě))
變量名:【CLASSPATH】
變量值:%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
3.啟動(dòng)Jmeter:雙擊Jmeter解壓路徑(apache-jmeter-5.3\bin)的bin下面的jmeter.bat
4.啟動(dòng)jmeter.bat運(yùn)行矾削,一般已經(jīng)正吃餮牵可以啟動(dòng)刺桃,可能有的會(huì)啟動(dòng)報(bào)錯(cuò)如下圖:
5.在jmeter.bat文件中加入:
SET JAVA_HOME=D:\ceshi\jdk1.8.0_144 自己jdk的安裝路徑
SET PATH=%SystemRoot%/system32;%SystemRoot%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
即可啟動(dòng)成功
Jmeter的接口測(cè)試:
1測(cè)試計(jì)劃中添加線程租?
2在線程租中添加http請(qǐng)求?在http請(qǐng)求中需要填入?
3在線程中添加查看結(jié)果樹(shù)
Jmeter的壓力測(cè)試:
1測(cè)試計(jì)劃中添加線程租?
2在線程租中添加http請(qǐng)求?在http請(qǐng)求中需要填入?
3. 在線程租中進(jìn)行修改?并發(fā)數(shù)量?(修改線程數(shù)量?修改循環(huán)次數(shù)?)
4. 在線程組中進(jìn)行添加聚合報(bào)告
Jmeter的斷言:
斷言用來(lái)判斷接口的返回值是否匹配
在線程租中進(jìn)行添加斷言--響應(yīng)斷言并將json放入到響應(yīng)結(jié)果中在察看結(jié)果樹(shù)中來(lái)
Jmeter的參數(shù)化關(guān)聯(lián)??都是用${變量名}:
A:用戶變量?????一個(gè)變量對(duì)應(yīng)一個(gè)變量值
B:用戶參數(shù)?????一個(gè)變量對(duì)應(yīng)多個(gè)變量值
C:可以使用csv文件方式
1.用txt文件或者是excel括荡,csv文件
2.書(shū)寫(xiě)參數(shù)化值??一個(gè)http請(qǐng)求的所有參數(shù)以行為單位??多個(gè)值用,隔開(kāi)?
多個(gè)http請(qǐng)求對(duì)應(yīng)是多行? ?
3. 在線程組中添加csvDataconfig?匹配對(duì)應(yīng)的文件和參數(shù)名
Jmeter的對(duì)數(shù)據(jù)庫(kù)鏈接(對(duì)數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試):
測(cè)試數(shù)據(jù)的來(lái)源:
a.復(fù)用開(kāi)發(fā)的原有數(shù)據(jù)?b.復(fù)用線上的真實(shí)數(shù)據(jù)c.直接使用線上數(shù)據(jù)?
d.測(cè)試人員手動(dòng)添加 e.產(chǎn)品或者是運(yùn)營(yíng)提供數(shù)據(jù)
DBC驅(qū)動(dòng)包鏈接:
鏈接:https://pan.baidu.com/s/1P_jAt2C0lMnITjcRd5OeFg
提取碼:ab12
Jmeter需要使用JDBC功能時(shí)悼枢,把解壓好的jar包放在(jmeter的lib路徑)即可犀概。
1.打開(kāi)jmeter,先創(chuàng)建線程組敢靡。
2.測(cè)試計(jì)劃->添加->配置元件->JDBC Connection Configuration
3.然后第一個(gè)紅框隨便寫(xiě)挂滓,第二個(gè)紅框配置JDBC數(shù)據(jù)庫(kù)連接
Database URL:? jdbc:mysql://替換ip地址:3306/數(shù)據(jù)庫(kù)名
配置完成就可以執(zhí)行數(shù)據(jù)庫(kù)了。
4.線程組下面添加JDBC sample,在紅框里輸入第三步里的輸入的值
5.查看結(jié)果樹(shù)啸胧,顯示這樣就已經(jīng)連接數(shù)據(jù)庫(kù)赶站,可以操作數(shù)據(jù)庫(kù)數(shù)據(jù)了
****注意:query?type類型不同則寫(xiě)sql語(yǔ)句不同****
Jmeter的二種錄制方法:
一,Badboy(PC端)
Badboy下載地址:鏈接:https://pan.baidu.com/s/1UNDfT8btdyHt3EE6gKCjzg
提取碼:ab12
Badboy是一款不錯(cuò)web自動(dòng)化測(cè)試工具纺念,利用它來(lái)錄制腳本贝椿,并且錄制的腳本可以直接保存為JMeter文件來(lái)使用。
Badboy? version 2.0.5
通過(guò)Badboy來(lái)錄制腳本
1.打開(kāi)badboy ,點(diǎn)擊紅色按鈕柠辞,在地址欄輸入被測(cè)項(xiàng)目地址团秽。
錄制完后,點(diǎn)擊旁邊的黑色按鈕結(jié)束錄制叭首。
2.選擇文件习勤,Export to Jmeter 保存.jmx類型文件
3.打開(kāi)Jmter,打開(kāi)“文件”->‘打開(kāi)’選擇剛保存的.jmx類型文件。
Badboy下載完成打開(kāi)頁(yè)面如下:
二焙格,使用Jmeter自身的代理錄制腳本(移動(dòng)端)
1.打開(kāi)jmeter图毕,創(chuàng)建一個(gè)線程
2.添加代理服務(wù)器,點(diǎn)擊 “工作臺(tái)”眷唉,然后右鍵予颤,根據(jù)如下圖步驟,添加一個(gè)代理服務(wù)器冬阳。
3.設(shè)置端口以及錄制地址
4.通過(guò)模擬機(jī)配置端口號(hào)就可以完成鏈接
Jmeter提取器:
一蛤虐、正則表達(dá)式提取器
步驟:右鍵“HTTP請(qǐng)求”->添加->后置處理器->正則表達(dá)式提取
下面是正則表達(dá)式各參數(shù)值的含義:
1.引用名稱:在HTTP等請(qǐng)求中,引用此數(shù)據(jù)肝陪,需要用到的名稱
2.正則表達(dá)式:用于將需要的數(shù)據(jù)提取出來(lái)
3.模板:$ 1$ 這是固定格式
4.匹配數(shù)值:0代表隨機(jī)取值驳庭,1代表第一值,n代表第n個(gè)值
5.缺省值:如果正則表達(dá)式?jīng)]有搜到值氯窍,則使用此缺省值
正則正則表達(dá)式的格式:字符串形式"token":"(.+?)" 數(shù)字形式 “taken”:[(0-9)+]
( ) 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置饲常。子表達(dá)式可以獲取供以后使用。要匹配這些字符狼讨,請(qǐng)使用 ( 和 )贝淤。
匹配前面的子表達(dá)式一次或多次。要匹配 + 字符政供,請(qǐng)使用 +播聪。
. 匹配除換行符 \n 之外的任何單字符朽基。要匹配 . ,請(qǐng)使用 . 犬耻。
? 匹配前面的子表達(dá)式零次或一次踩晶,或指明一個(gè)非貪婪限定符执泰。要匹配 ? 字符枕磁,請(qǐng)使用?
二、JSON提取器
步驟:右鍵“HTTP請(qǐng)求”->添加->后置處理器->JSON提取器
下面是JSON提取器各參數(shù)值的含義:
1.引用名稱:在HTTP等請(qǐng)求中术吝,引用此數(shù)據(jù)计济,需要用到的名稱
2.提取格式:$data[0].name
3.匹配數(shù)值:0代表隨機(jī)取值,1代表第一值排苍,n代表第n個(gè)值
4.缺省值:如果正則表達(dá)式?jīng)]有搜到值沦寂,則使用此缺省值
json提取格式j(luò)son講解:
1.json串 []表示對(duì)象組成的數(shù)組,{}表示對(duì)象淘衙。
2.對(duì)象里包含多個(gè) “屬性”:屬性值传藏。屬性值可以是值,或數(shù)組彤守,或?qū)ο蟆?/p>
3.JSON Extractor使用json path表達(dá)式匹配毯侦,可以一次取多個(gè)變量值。$表示響應(yīng)的根對(duì)象具垫。取子對(duì)象或?qū)ο蟮膶傩杂? 取數(shù)組里的對(duì)象用[]侈离,數(shù)組索引從0開(kāi)始。
Jmeter定時(shí)器:
?一筝蚕,固定定時(shí)器
如果你需要讓每個(gè)線程在請(qǐng)求之前按相同的指定時(shí)間停頓卦碾,那么可以使用這個(gè)定時(shí)器;需要注意的是起宽,固定定時(shí)器的延時(shí)不會(huì)計(jì)入單個(gè)sampler的響應(yīng)時(shí)間洲胖,但會(huì)計(jì)入事務(wù)控制器的時(shí)間。
二坯沪,高斯隨機(jī)定時(shí)器
如需要每個(gè)線程在請(qǐng)求前按隨機(jī)時(shí)間停頓绿映,那么使用這個(gè)定時(shí)器,上圖表示暫停時(shí)間會(huì)分布在100到400之間屏箍,計(jì)算公式參考:Math.abs((this.random.nextGaussian()?*?300)?+?100)