背景:做接口壓力測試時可能需要從數據庫中讀取數據作為參數進行傳遞,jmeter提供JDBC連接的相關元件,本文記錄jmeter連接mysql數據庫進行參數傳遞的關鍵步驟和方法
1、下載mysql數據庫驅動包並添加到測試計划中
1.1 先查看服務器中安裝的數據庫版本,下載一個高於數據庫版本的數據庫驅動包,如:服務器mysql版本為5.6.0,我下載的是mysql-connector-java-8.0.11.jar
1.2 在jmeter的測試計划中添加下載的jar文件
2、在線程組中添加JDBC Connection Configuration並配置數據庫連接參數
2.1 右鍵線程組->添加->配置元件->JDBC Connection Configuration
2.2 填寫配置信息,如下圖所示
參數說明:
Varibale Name:注意變量名,后面添加jdbc請求時需要與該名字一致
Database URL:數據庫連接地址,jdbc://mysql/地址:port/db_name,加上“?useUnicode=true&characterEncoding=utf8”為了避免后續相關測試的時候中文顯示亂碼
JDBC Driver class:com.mysql.jdbc.Driver
Username:數據庫用戶名
Password:數據庫密碼
3、添加JDBC Request
3.1 線程組->添加->Sample->JDBC Request
3.2 添加需要查詢的語句【不帶變量】
參數說明:
Variable Name:之前配置的JDBC Connection Configuration的Variable Name名稱保持一致
Query Type:含變量的sql查詢,選擇Prepared Select Statement,不含變量的sql查詢,選擇Select Statement,同理update的選項
Query:輸入sql語句,注意不要加分號
Parameter values:引用用戶定義的其他變量
Parameter types:變量的類型
Variable names:保存查詢結果,供其他元件調用,這里需要是order_no需要作為變量保存結果;當查詢結果是多個字段時,變量用逗號隔開,如new_order_no,new_id。
Result variable name:上面Variable names中的變量是個數與列對應的,Result variable name是把整個結果存在一個數組中,返回結果有點類似json字符串
3.3 運行下腳本,檢查是否可以正常從數據庫查詢數據【不帶變量】
3.5 添加需要查詢的語句【帶變量】,選擇Query Type為prepared select statement
3.5.1 方法一:SQL中帶變量可以通過?占位符填充變量,如下圖所示
3.5.2 方法二:直接在SQL語句中通過${} 引用參數
3.5.3 檢查帶變量輸出的結果以及將結果保存為數組輸出的結果
4、實際的測試過程中通常我們只需要查詢一次,查詢結果供其他請求使用,可以通過僅一次控制器實現
4.1 線程組->添加->邏輯控制器->僅一次控制器,將JDBC request移動到僅一次控制器內部,如下圖所示
關於其他請求調用JDBC Request變量的方法請關注后續筆記