二、Jmeter 后置处理器(BeanShell PostProcessor)

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");

 

 

posted @ 2017-05-16 16:39  我是旺旺  阅读(28775)  评论(0编辑  收藏  举报