JMeter连接数据库(查询出的数据作为参数)

时间:2021-06-06 07:34:44

针对Mysql

jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true(mysql用utf8,其他数据库用utf-8)

JMeter连接数据库(查询出的数据作为参数)

allowMultiQueries=true指的是支持多行查询

JMeter连接数据库(查询出的数据作为参数)

但是查询出来的结果这样只会显示一条,而且是第一条的结果被显示,那要怎么解决呢?(实际上是两条都执行了,只是Jmeter没显示,可以用两条insert语句去验证)

Query Type:选择Callable Statement,调取数据存储

JMeter连接数据库(查询出的数据作为参数)

二、查询的值作为参数

JMeter连接数据库(查询出的数据作为参数)

可以查看下查出来的结果集:

JMeter连接数据库(查询出的数据作为参数)

那么,怎么把这些值取出来呢???

1、假设只要一个值,那么直接取好了,比如:${bug_status_1}就好了

2、如果要批量取值怎么办???依次取出来

此处的结束值可以试试填写:${bug_status_#}

JMeter连接数据库(查询出的数据作为参数)

这里不要误解了,没找到好的截图,参数应该换为${temp}

JMeter连接数据库(查询出的数据作为参数)

2方式:计数器

JMeter连接数据库(查询出的数据作为参数)

那么请求里面应该怎么写呢???不能变量里加变量吧,用函数助手来解决,这里我们可以用:

${__V(bug_status_${tmpid},)}

bug_status_1是数据库查出来的,作为参数的参数名,tmpid是计数器用来替代那个1的参数。

但是这样,只能在线程组内加循环或者线程组,才能执行多次,这样数据库的查询请求也会多次,解决方案:把查询请求放进一个吞吐量控制器:

或者,把这个请求放进一个仅一次控制器内

JMeter连接数据库(查询出的数据作为参数)

结果:

JMeter连接数据库(查询出的数据作为参数)