一、JDBC Request参数化
方法一、Jmeter参数化,在sql query中使用变量
Jmeter参数化,使用csv参数化
sql query中使用${变量名}引用
设置变量
输出结果:
方法二、在sql query中使用"?"作为占位符,并传递参数值和参数类型
1.传递的参数值是常量,多个变量使用","分隔(注意:Parameter values中传入多个参数时,前提时sql中需要多个参数)
2.传递的参数值是变量,使用csv参数化id再使用${变量名}的方式
二、Variables names 参数使用方法
jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,B,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=(第1列, 第1行)
A_2=(第1列, 第2行)
B_#=2 (总行数)
B_1=(第2列, 第1行)
B_2=(第2列, 第2行)
如果返回结果为0,那么A_#和B_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次多的3行数据变量会被清除。
可以使用${A_#}、${A_1}...获取相应的值
实例
添加一个”Debug Sampler“用来查看输出的结果,设置 variables name为A,B,C,D:
执行结果
解析:
A代表第一列所有的数据,A_#可以获取到第一列的行数
A_n:获得第一列第n行的数据。
B和C的功能类似, 假如我们只需要第一列和第三列的数据,可以写成A,,C,中间的","不可以省略。
三、Result variable name(使用上一次查询结果作为参数)
1.上个jdbc request(查询所有信息)请求设置如下
执行结果
2.添加BeanShell Sampler
vars.getObject("变量名").get(第几个值).get("数据库表列名").toString()
vars.put("新变量名",值);
3.下面request(通过age查询)使用上面(查询所有信息)请求的结果作为参数
4.输出结果