前言:接口出參數(shù)據(jù)與DB數(shù)據(jù)結合校驗,使校驗力度更準確~
jmeter自帶插件JDBC Request Sampler
這個Sampler可以向數(shù)據(jù)庫發(fā)送一個jdbc請求(sql語句),并獲取返回的數(shù)據(jù)庫數(shù)據(jù)進行操作。它經(jīng)常需要和JDBC Connection Configuration配置原件(配置數(shù)據(jù)庫連接的相關屬性,如連接名、密碼等)一起使用。
setp1:準備工作
1.本文使用的是sqlserver數(shù)據(jù)庫進行測試,數(shù)據(jù)庫的用戶名為sa(你自己的用戶名),用戶名密碼為*********(你自己的密碼)
2.數(shù)據(jù)庫實例名:如———TMSS_DB2,庫名:seg6654,表名:configuration,表數(shù)據(jù)如下:
3、添加需要的驅動jar包
使用不同的數(shù)據(jù)庫,我們需要引入不同的jar包。
方式1:直接將jar包復制到jmeter的libext目錄下
mysql數(shù)據(jù)庫:無需引入其他數(shù)據(jù)庫驅動jar包。
sql server 數(shù)據(jù)庫:下載sqljdbc42.jar 放到 jmeter根目錄的lib目錄下
oracle數(shù)據(jù)庫:將oracle數(shù)據(jù)的安裝目錄下面的product10.2.0db_1jdbclibojdbc14.jar 放到jmeter根目錄下的lib目錄下
方式2:通過Test Plan
假如我們不使用將jar復制到jmeter的lib目錄的方式,我們還可以使用Jmeter的Test Plan引入相應的jar包,如下面引入sqlserver數(shù)據(jù)的jar包
step2:配置JDBC Connection Configuration
重要參數(shù)說明:
Variable Name:數(shù)據(jù)庫連接池的名稱,我們可以有多個jdbc connection configuration,每個可以起個不同的名稱,在jdbc request中可以通過這個名稱選擇合適的連接池進行使用。
Database URL:數(shù)據(jù)庫url,jdbc:mysql://主機ip或者機器名稱:mysql監(jiān)聽的端口號/數(shù)據(jù)庫名稱, 如:jdbc:mysql://localhost:3306/test
JDBC Driver class:JDBC驅動
username:數(shù)據(jù)庫登陸的用戶名
passwrod:數(shù)據(jù)庫登陸的密碼
不同數(shù)據(jù)庫具體的填寫方式,可以參考下面的表格:
填寫后大致如下:
step3:配置JDBC Request
重要的參數(shù)說明:
Variable Name:數(shù)據(jù)庫連接池的名字,需要與JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query:填寫的sql語句未尾不要加“;”
Parameter valus:參數(shù)值
Parameter types:參數(shù)類型,可參考:Javadoc for java.sql.Types
Variable names:保存sql語句返回結果的變量名
Result variable name:創(chuàng)建一個對象變量,保存所有返回的結果
Query timeout:查詢超時時間
Handle result set:定義如何處理由callable statements語句返回的結果
執(zhí)行結果:
執(zhí)行到這里,我們已經(jīng)將數(shù)據(jù)從數(shù)據(jù)庫中原樣的查出來了,但具體如何之取出我們需要的數(shù)據(jù)呢,顯然,假如我們查詢的sql返回的只是一個數(shù)據(jù),上面的方式已經(jīng)可以滿足我們的需求的,但是如果我們只要public_adresskey的數(shù)據(jù),我們如何去取呢?