Jmeter数据库测试参数化

一、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.输出结果

  

猜你喜欢

转载自www.cnblogs.com/Mr-ZY/p/11695811.html