JDK官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html
Jemter官網:https://jmeter.apache.org/download_jmeter.cgi
安裝JDK請看此文:http://www.lxweimin.com/p/833179c24d9b
安裝Jmeter
1.下載解壓Jmeter安裝包,在官網下載
2.配置Jmeter環境變量:按下面變量名和變量值配置Jmeter系統環境變量
變量名:【JMETER_HOME】
變量值:【D:\Jemter\apache-jmeter-5.3】(根據實際的jmeter解壓路徑填寫)
變量名:【CLASSPATH】
變量值:%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;
3.啟動Jmeter:雙擊Jmeter解壓路徑(apache-jmeter-5.3\bin)的bin下面的jmeter.bat
4.啟動jmeter.bat運行,一般已經正常可以啟動,可能有的會啟動報錯如下圖:
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
即可啟動成功
Jmeter的接口測試:
1測試計劃中添加線程租?
2在線程租中添加http請求?在http請求中需要填入?
3在線程中添加查看結果樹
Jmeter的壓力測試:
1測試計劃中添加線程租?
2在線程租中添加http請求?在http請求中需要填入?
3. 在線程租中進行修改?并發數量?(修改線程數量?修改循環次數?)
4. 在線程組中進行添加聚合報告
Jmeter的斷言:
斷言用來判斷接口的返回值是否匹配
在線程租中進行添加斷言--響應斷言并將json放入到響應結果中在察看結果樹中來
Jmeter的參數化關聯??都是用${變量名}:
A:用戶變量?????一個變量對應一個變量值
B:用戶參數?????一個變量對應多個變量值
C:可以使用csv文件方式
1.用txt文件或者是excel,csv文件
2.書寫參數化值??一個http請求的所有參數以行為單位??多個值用,隔開?
多個http請求對應是多行? ?
3. 在線程組中添加csvDataconfig?匹配對應的文件和參數名
Jmeter的對數據庫鏈接(對數據庫進行壓力測試):
測試數據的來源:
a.復用開發的原有數據?b.復用線上的真實數據c.直接使用線上數據?
d.測試人員手動添加 e.產品或者是運營提供數據
DBC驅動包鏈接:
鏈接:https://pan.baidu.com/s/1P_jAt2C0lMnITjcRd5OeFg
提取碼:ab12
Jmeter需要使用JDBC功能時,把解壓好的jar包放在(jmeter的lib路徑)即可。
1.打開jmeter,先創建線程組。
2.測試計劃->添加->配置元件->JDBC Connection Configuration
3.然后第一個紅框隨便寫,第二個紅框配置JDBC數據庫連接
Database URL:? jdbc:mysql://替換ip地址:3306/數據庫名
配置完成就可以執行數據庫了。
4.線程組下面添加JDBC sample,在紅框里輸入第三步里的輸入的值
5.查看結果樹,顯示這樣就已經連接數據庫,可以操作數據庫數據了
****注意:query?type類型不同則寫sql語句不同****
Jmeter的二種錄制方法:
一,Badboy(PC端)
Badboy下載地址:鏈接:https://pan.baidu.com/s/1UNDfT8btdyHt3EE6gKCjzg
提取碼:ab12
Badboy是一款不錯web自動化測試工具,利用它來錄制腳本,并且錄制的腳本可以直接保存為JMeter文件來使用。
Badboy? version 2.0.5
通過Badboy來錄制腳本
1.打開badboy ,點擊紅色按鈕,在地址欄輸入被測項目地址。
錄制完后,點擊旁邊的黑色按鈕結束錄制。
2.選擇文件,Export to Jmeter 保存.jmx類型文件
3.打開Jmter,打開“文件”->‘打開’選擇剛保存的.jmx類型文件。
Badboy下載完成打開頁面如下:
二,使用Jmeter自身的代理錄制腳本(移動端)
1.打開jmeter,創建一個線程
2.添加代理服務器,點擊 “工作臺”,然后右鍵,根據如下圖步驟,添加一個代理服務器。
3.設置端口以及錄制地址
4.通過模擬機配置端口號就可以完成鏈接
Jmeter提取器:
一、正則表達式提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->正則表達式提取
下面是正則表達式各參數值的含義:
1.引用名稱:在HTTP等請求中,引用此數據,需要用到的名稱
2.正則表達式:用于將需要的數據提取出來
3.模板:$ 1$ 這是固定格式
4.匹配數值:0代表隨機取值,1代表第一值,n代表第n個值
5.缺省值:如果正則表達式沒有搜到值,則使用此缺省值
正則正則表達式的格式:字符串形式"token":"(.+?)" 數字形式 “taken”:[(0-9)+]
( ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 ( 和 )。
匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 +。
. 匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 . 。
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用?
二、JSON提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->JSON提取器
下面是JSON提取器各參數值的含義:
1.引用名稱:在HTTP等請求中,引用此數據,需要用到的名稱
2.提取格式:$data[0].name
3.匹配數值:0代表隨機取值,1代表第一值,n代表第n個值
4.缺省值:如果正則表達式沒有搜到值,則使用此缺省值
json提取格式json講解:
1.json串 []表示對象組成的數組,{}表示對象。
2.對象里包含多個 “屬性”:屬性值。屬性值可以是值,或數組,或對象。
3.JSON Extractor使用json path表達式匹配,可以一次取多個變量值。$表示響應的根對象。取子對象或對象的屬性用. 取數組里的對象用[],數組索引從0開始。
Jmeter定時器:
?一,固定定時器
如果你需要讓每個線程在請求之前按相同的指定時間停頓,那么可以使用這個定時器;需要注意的是,固定定時器的延時不會計入單個sampler的響應時間,但會計入事務控制器的時間。
二,高斯隨機定時器
如需要每個線程在請求前按隨機時間停頓,那么使用這個定時器,上圖表示暫停時間會分布在100到400之間,計算公式參考:Math.abs((this.random.nextGaussian()?*?300)?+?100)