JMeter--操作mysql和redis

目标:使用JMeter做接口自动化,实现手机号+验证码注册

JMeter操作mysql数据库

步骤1:发送手机号注册验证码(成功前提:手机号未注册)

目标:清除数据库手机号

  1. 选中HTTP请求--》右键添加,配置元件,JDBC Connection Configuration
  2. 填写JDBC连接配置信息
  • Variable Name for created pool:一定要设置,用于后续操作mysql库
  • Database URL:jdbc:mysql://${db_url}:${db_port}/${db_name}?serverTimezone=UTC
  • JDBC Driver class:com.mysql.jdbc.Driver
    JDBC连接配置
  1. 选中HTTP请求--》右键添加,前置处理器,JDBC PreProcessor
  • Variable Name Bound to Pool:上一步设置的JDBC连接池变量
  • Query Type: Update Statement
  • SQL更新语句:update basic_auth set encrypted_phone_number=NULL, hashed_phone_number=NULL WHERE hashed_phone_number="${test_phone_number_hashed}";
    image.png

JMeter操作redis

步骤2:手机号+验证码注册接口(前提:获取redis中手机号注册验证码)

目标:获取redis中手机号注册验证码,并保存到变量

  1. JMeter Plugins Manger中安装redis插件库,安装成功后$JMETER_HOME/lib/ext下会有对应的jar包


    安装redis插件库

2 选中线程组--》右键添加,Samper,BeanShell Sampler

  1. 编写BeanShell脚本,操作redis库。并且将获取到的验证码保存到变量。
//import java.util.Map;
import redis.clients.jedis.Jedis;
import org.apache.commons.lang3.StringUtils;
 
String host = "${redis_host}";  //服务器地址
int port = ${redis_port};     //端口号, int
String password = "${redis_password}";  //redis密码
int index = 1;  //redis db
 
Jedis jedis = new Jedis(host, port);
if(StringUtils.isNotBlank(password)){
    jedis.auth(password);
    }
 
jedis.select(index);

// 获取redis值,value为String类型
//String value = jedis.get(key); 

//获取redis值,value为hash类型
String value = jedis.hget("platform:account:captcha:register:${test_phone_number}", "captcha");
vars.put("redis_phone_captcha", value);  // 将获取到的redis值,保存为变量


// 更新redis值,value为hash类型
// 如果key对应captcha值不存在,则创建对象
// jedis.hset(key, "captcha", "123456");


// 删除redis key
// jedis.del("key_name");

最终脚本

API接口自动化脚本

你可能感兴趣的:(JMeter--操作mysql和redis)