Jmeter中有較多需要參數化測試的地方:
1.從一個用戶登錄的接口獲取登錄后的token值,取值后用於后續接口調用
2.獲取用戶瀏覽后的cookies信息,需要用到HTTP Cookie 管理器來為同一線程組提供通用的cookies信息
Jmeter中通過${}形式來取參數值
當取值為變量,${變量名}
當取值為函數,${_函數名(參數1,參數2,參數3)}
json中和parameter中的取值方法相同
在獲取接口信息的時候,注意查看傳輸的頭信息中的Content-Type
Content-Type:application/json,使用Body Data上傳json格式的參數
Content-Type:application/x-www-form-urlencoded,使用Parameter上傳參數
參數化的幾種方法
(一)CSV Data Set Config的設置(從csv文件導入參數)
1.創建一個csv文件,內容為參數的值集,每一個參數占一列,第一行就開始寫參數值,不要寫參數名,“測試用戶.csv”的首列內容為email,第二列為password
2.在http://zkread.com/login測試計划右鍵添加一個配置元件“config element”->“CSV Data Set Config”
3.Filename處填寫csv文件的完整路徑
(本機服務器操作,填寫csv完整路徑;遠程服務器操作,將csv文件放在jmeter的bin目錄下,直接填寫文件名)
4.Virable Names中填寫變量名,如果csv文件中有多個變量,則用逗號隔開
在http://zkread.com/login測試計划中設置CSV data set config,引用csv中的數據時
name中填寫接口的參數名
value值填寫${username}
(二)從數據庫獲取
下面是從不同數據庫連接JDBC 的方法
mysql數據庫:在jmeter的lib/ext目錄下添加mysql-connection-java-5.1.26-bin.jar包
sql server 數據庫:下載sqljdbc4.jar 放到 jmeter根目錄的lib目錄下
oracle數據庫:將oracle數據的安裝目錄下面的\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar 放到jmeter根目錄下的lib目錄下
在線程組添加配置元件JDBC Connection Configuration
設置內容如下
默認配置都不需要更改,Variable Name為連接名稱,在后面的JDBC request中對應
在Database Connection Configuration中設置Database URL
Username和Password為數據庫登錄用戶名和密碼
不同數據庫具體的填寫方式,可以參考下面的表格(沒有DB name可以不填):
Datebase |
Driver class |
Database URL |
MySQL |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname} |
Oracle |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
在線程組添加配置元件JDBC Request
Variable Name和上面的對應
query中填寫查詢語句
Variable Names填寫要獲取的參數名,用逗號隔開
在線程組添加配置元件Debug Sampler可以查看數據庫的取值結果
(三)用戶定義的變量
可以添加在測試計划,也可以添加在線程組中,也可以添加在請求中,使用的域不同。
使用HTTP cookies 管理器也相當與定義了一個cookies,jsessionid,sessionid的值。
(四)從函數獲取變量
jmeter選項中的函數助手對話框,可以添加和查看函數。
參考資料:
cookies 管理器的使用:
http://blog.csdn.net/g695144224/article/details/51802862
token使用中的正則表達式:
https://www.cnblogs.com/wuyepiaoxue/p/5661194.html
JDBC Request使用:
http://blog.csdn.net/hwhua1986/article/details/64442943