1、新建JDBC Request,如下圖所示:
重要的參數說明:
- Variable Name:數據庫連接池的名字,需要與JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
- Query:填寫的sql語句未尾不要加“;”
- Parameter valus:參數值
- Parameter types:參數類型,可參考:Javadoc for java.sql.Types
- Variable names:保存sql語句返回結果的變量名
- Result variable name:創建一個對象變量,保存所有返回的結果
- Query timeout:查詢超時時間
- Handle result set:定義如何處理由callable statements語句返回的結果
- 設置查詢結果變量名稱:Result variable name:user_name
2、JDBC request下添加后置處理器,BeanShell PostProcessor,通過腳本操作變量
接下來,在另一個接口中的參數可以通過jmeter的內部函數獲取指定的值
${__BeanShell(vars.getObject("user_login").get(${__intSum(${index},-1)}).get("method"))}
__BeanShell是jmeter內部函數入口
vars.getObject可以獲取到jmeter上下文中我們定義的變量對象
數據庫的獲取方式${__BeanShell(vars.getObject("param").get(n).get("colname"))}
__intSum(a,b)獲取一個數據的計算求和值
數據庫獲取第一行下標是從0開始的,但一般我們取值會默認設置1作為開始,所以這里我們做了一個處理,把我們設置的值減1,讓他從0開始計數。從列取值要指定列名;
3、舉例說明:
counts = vars.getObject("user_name").size();
var users = vars.getObject("user_name");
var user = users.get(2);
vars.put("username",user.get("account").toString());
vars.put("password",user.get("passwd").toString());
vars.put("hello","word");