实操jmeter连数据库并使用数据库中的数据实现小批量并发

jmeter连数据库并使用数据库中的数据实现小批量并发

复盘一下周五遇到的问题,用jmeter的jdbc请求连接数据,并记录一下jmeter实现并发。

jmeter连接数据库

1、在jmeter中创建线程组,这里不详细说明

2、在该线程组下面,添加jdbc连接配置的配置元件
在这里插入图片描述
备注:
database url:jdbc:mysql://127.0.0.1/tinyshop?serverTimezone=UTC
jdbc driver class:com.mysql.jdbc.Driver
3、添加jdbc请求
在这里插入图片描述
备注:
sql语句:select name,password from tiny_user
在这里插入图片描述
到这里,我们就使用jmeter连接数据库,取到了tiny_user表中的name,password字段的所有数据,下面我们继续使用jmeter使用从数据库中取到的数据,进行登录接口的并发。

4、我这里最终实现的jmeter脚本结构如下:
在这里插入图片描述
先介绍一下,我这里登录接口并发的背景,我这里登录接口涉及到两个,第一个要先获取登录的token,第二使用该token登录相应的账号。所以在jmeter中,我们需要添加一个cookie manager(cookie管理器来保持会话不断开)。

再分析一下我们的场景,假设我们这里做10个用户登录的小并发,那么我们就要从数据库中取10个账号和密码,在下面的登录接口对这些账号进行引用。

怎样可以引用到这10个账号呢?可想而知,我们可以在里面添加一个循环控制器,在我们的取出的10个数据中去循环引用,但是需要考虑到的是我们每次循环的时候,我们最终引用到的变量名是类似于${name_N},这里的N又是不同的,所以我们还需要使用到jmeter中的嵌套函数:__V(有点抽象,可以看下面的图理解)

线程组设置:
在这里插入图片描述

请求默认值配置元件详细设置:
在这里插入图片描述
cookie管理器配置元件只需要添加,不需要配置参数

这个是上面说过的jdbc连接配置:
在这里插入图片描述

jdbc请求详细设置,这里取10条账户数据做并发,所以在sql语句上加了limit 10:
在这里插入图片描述

获取登录token接口:
在这里插入图片描述
为了方便理解循环控制器,我这里又加了一个debug sampler(调式取样器),想看到前面取到的变量,可以在调试取样器中看到,如下:

可以看到从数据库中取到的10个name值,jmeter中自动命名成了name_N的形式,并且我们可以看到 name_# 就是我们取到的name值的个数
在这里插入图片描述
所以我们的循环控制器的详细设置如下:
在这里插入图片描述

循环控制器下面还有一个计数器,因为是嵌套调用,这里需要一个计数器:
在这里插入图片描述
登录接口中参数的嵌套调用:
在这里插入图片描述
同步定时器(集合点)详细设置:
(同步定时器设置的是10个请求同步,所以前面的线程数为10,只要大于等于10的都可以)

在这里插入图片描述

执行该脚本,在以表查看结果中我们就可以看到,10个登录请求的时间是一样的,这里就实现了10个登录请求的并发
在这里插入图片描述

好了,到这里就在jmeter中实现了从数据库中获取数据,并且,使用该数据来实现并发的操作!

备注:可以在最后添加一个aggregate report聚合报告

猜你喜欢

转载自blog.csdn.net/qq_41571224/article/details/106317783
今日推荐