JMeter从数据库随机获取一个用户名作为参数进行登录模拟

需求:
数据库有50w个用户名;
JMeter需要随机取其中一个作为登录接口的参数。

首先要解决MySQL怎么随机取数据

百度到了这个结果:

SELECT 字段名 FROM 表名 ORDER BY rand() LIMIT 数量;

其中rand()就是随机函数了, 首先随机顺序排序, 然后取一个数据, 就达成要求了.

再来看看JMeter怎么从数据库中取数据吧

  1. JMeter添加线程组;
  2. 线程组下添加JDBC Connection Configuration
  3. 配置JDBC Connection Configuration


    配置JDBC Connection Configuration
  • 数据库连接池名称
  • 数据库URL
  • JDBC数据库类, 选择com.mysql.jdbc.Driver
  • 数据库用户名
  • 数据库密码
  1. 线程组下添加JDBC Request
  2. 配置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}...来获取相应的值

最后把取到的值用起来就搞定了

  1. 线程组下添加登录的HTTP请求
  2. 配置HTTP请求
    配置HTTP请求

    其他配置就不在本文详述了, 只提这个关键的内容: 上一个步骤中, 我们设置了Variable namesuser_account, 这里我们在用的时候, 就要写user_account_1就是SQL脚本取到的值的第一个数据了.

你可能感兴趣的:(JMeter从数据库随机获取一个用户名作为参数进行登录模拟)