需求:
数据库有50w个用户名;
JMeter需要随机取其中一个作为登录接口的参数。
首先要解决MySQL怎么随机取数据
百度到了这个结果:
SELECT 字段名 FROM 表名 ORDER BY rand() LIMIT 数量;
其中rand()就是随机函数了, 首先随机顺序排序, 然后取一个数据, 就达成要求了.
再来看看JMeter怎么从数据库中取数据吧
- JMeter添加线程组;
- 线程组下添加JDBC Connection Configuration
-
配置JDBC Connection Configuration
- 数据库连接池名称
- 数据库URL
- JDBC数据库类, 选择com.mysql.jdbc.Driver
- 数据库用户名
- 数据库密码
- 线程组下添加JDBC Request
-
配置JDBC Request
- 要绑定的数据库连接池名称(这个要告诉JMeter从哪个数据库连接池运行SQL脚本, 自然要和JDBC Connection Configuration 一致)
- SQL脚本
- 变量名称(name后面带个s, 说明肯定和一般的变量名称不一样)
variables names设置为A,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用 ${A_#}
、${A_1}
...来获取相应的值
最后把取到的值用起来就搞定了
- 线程组下添加登录的HTTP请求
- 配置HTTP请求
其他配置就不在本文详述了, 只提这个关键的内容: 上一个步骤中, 我们设置了Variable names
为user_account
, 这里我们在用的时候, 就要写user_account_1
就是SQL脚本取到的值的第一个数据了.