一锋拖、jmeter測試數(shù)據(jù)庫基本步驟:以MySQL為例
1焊切、需將mysql-connector-java-X.X.X-bin.jar放入到jmeter安裝目錄下的./lib目錄,重啟jmeter
2躏筏、配置JDBC Connection Configuration
其中:
Database URL為數(shù)據(jù)庫的JDBC連接字符串
JDBC Driver class 為驅動類名稱板丽,需將對應jar包放入到jmeter's/lib目錄下
Username :數(shù)據(jù)庫用戶名
Password:數(shù)據(jù)庫賬號對應的密碼
3、配置JDBC Request
二趁尼、JDBC Request 中各參數(shù)含義及其使用例子
1埃碱、JDBC Request面板中各參數(shù)含義
Query Type:根據(jù)不同的使用場景設置SQL的語句類型猖辫,如:Select Statement用于查詢,Update Statement則可用于更新和刪除記錄乃正、Prepared Select Statement則為帶參數(shù)的select 語句的查詢
Parameter values:參數(shù)的值住册,對應SQl中?的值,如有多個值瓮具,使用逗號分隔荧飞。若值為NULL則使用 “]NULL[” 。結合Query Type為Prepared Select Statement名党、Prepared Update Statement 來使用
Parameter types:Parameter values中參數(shù)值對應的類型叹阔,e.g.?INTEGER,?DATE,?VARCHAR,?DOUBLE,如有多個值传睹,使用逗號分隔耳幢。
Variable names:變量名稱,用于保存Select statements, Prepared Select Statements or CallableStatement 等查詢語句返回的值欧啤,如返回多個值使用逗號分隔睛藻。
Result variable name:官網(wǎng)解釋:If specified, this will create an Object variable containing a list of row maps. Each map contains the column name as the key and the column data as the value。Usage:
columnValue = vars.getObject("resultObject").get(0).get("Column Name");
2邢隧、例子
以下例子共同使用到的內(nèi)容
a店印、本地存在數(shù)據(jù)庫course,其下有一張數(shù)據(jù)表user,如下:
b、所有例子中JDBC Connection Configuration配置如下:
例子1)保存查詢語句中返回的結果
在JDBC Request 的執(zhí)行語句中輸入:select userName,age ?from user? 倒慧,Variable names輸入 p1,p2按摘,p1,p2分別對應SQL中的userName,age。
執(zhí)行結果如下:
可以看到Debug Sampler中的響應
p1_#=5纫谅,p2_#=5為行數(shù)
p1_1=test1? 表示查詢結果第1行第1列
p1_2=test2?表示查詢結果第1行第2列
..............
p2_1=20?表示查詢結果第2行第1列
p2_2=20?表示查詢結果第2行第2列
..............
例子2)給執(zhí)行的SQL傳入變量:
場景:查詢20歲的用戶信息
方法:在JDBC Request 的執(zhí)行類型選擇:Prepared Select Statement,
Query為:select userName,age ?from user where age=?? 【注:其中?代表占位符】
Parameter values 輸入20
Parameter type輸入varchar
如下:
執(zhí)行結果:在查看結果樹中可以看到搜索到20歲的用戶信息
例子3)往數(shù)據(jù)庫表user插入多條數(shù)據(jù)(這里插入5條數(shù)據(jù)為例)
創(chuàng)建測試計劃炫贤,具體使用到的組件如下:
a、在線程組中付秕,輸入線程數(shù)為5
b兰珍、CSV Data Set Config配置及user.csv內(nèi)容如下:
c、JDBC Connection Configuration配置如下:
d盹牧、JDBC Request配置如下
其中Query Type選擇“Prepared Update Statement”,
Parameter values中的${__Random(20,30,)},${__RandomString(6,123456,)},${__RandomString(1,01,)},${__RandomString(1,01,)},${__RandomString(1,01,)}分別使用了函數(shù)組手中的函數(shù)來產(chǎn)生隨機數(shù)俩垃,用來對應數(shù)據(jù)庫表user的age、password汰寓、sex口柳、permission、isDelete的值
而${id},${username}為CSV Data Set Config中的變量有滑,對應數(shù)據(jù)庫表user的id,userName的值跃闹。
執(zhí)行結果如下:共有5條JDBC Request請求,每個請求往數(shù)據(jù)表user寫入一條記錄,共寫入5條數(shù)據(jù)