轉自:
https://www.cnblogs.com/wuyonghuan/p/7479582.html
1.下載並安裝mysql jdbc:
mysql-connector-java-5.1.28.jar
2.打開JMeter,點擊測試計劃
點擊“瀏覽…”按鈕,將你的JDBC驅動添加進來
3.右擊線程組名稱,添加–配置元件–JDBC Connection Configuration
variable name 設置爲 orderid。
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:連接數據庫的用戶名(如root)
password:連接數據庫的密碼
4.添加–Sampler–JDBC Request
創建JDBC Request取樣器,variable name 輸入上面設置的值:orderid,從而建立對應關係。
在SQL Query中輸入查詢語句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
ariable Name: 數據庫連接池的名字,需要與上面配置的JDBC Connection Configuration中Variable Name Bound Pool的Variable Name相同
Query:填寫的sql語句未尾不要加“;”
Parameter valus:參數值
Parameter types:參數類型,可參考:Javadoc for java.sql.Types
Variable names:保存sql語句返回結果的變量名
Result variable name:創建一個對象變量,保存所有返回的結果
Query timeout:查詢超時時間
Handle result set:定義如何處理由callable statements語句返回的結果
variables names設置爲A,,C,那麼如下變量會被設置爲:
A_#=2 (總行數)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (總行數)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回結果爲0,那麼A_#和C_#會被設置爲0,其它變量不會設置值。
如果第一次返回6行數據,第二次只返回3行數據,那麼第一次那多的3行數據變量會被清除。
可以使用${A_#}、${A_1}...來獲取相應的值
5.在4.4中的JDBC請求中添加“後置處理器”->“正則表達式提取器”,以提取3.4中的用戶名和密碼爲例設置正則表達式提取器的參數:
引用名稱:user
正則表達式:username:’(.+?)’{password:’(.+?)’
模板:
使用時,user_g1即爲用戶名,user_g2即爲對應用戶名的密碼;更多正則表達式提取方法參見Jmeter正則表達式提取器
例:
如果數據庫語句查詢結果是組合,如:A1,B1,C1
則:引用名稱:username
正則表達式:(.+?),
模板: