前提条件:
1、apifox直接访问redis获取数据;这需要在apifox添加扩展操作redis的jar包,参考:官网中redis章节,(链接平台暂不可发)。

下载并生成jar包:编写操作redis扩展jar包,可在网上找apifox-redis模块(链接平台不可发)。
下载下来让开发帮忙生成jar包

image.png

第一步:用户注册校验-手机号

前置参数–生成随机手机号

//生成随机手机号码
function randomPhoneNum(){
// 手机开头
    var Num = '1550000';
    for(var i=0; i < 4; i++){
    Num += Math.floor(Math.random() * 10);
    }
    return Num;
}
var str_phone = randomPhoneNum();
//生成手机号,存入环境变量
pm.environment.set('sendphone1', str_phone);
console.log(str_phone)

第二步:发送短信验证码

/api/public/sms/send

第三步:个人注册验证码检验

/api/public/sms/userVerifica

注意每家公司的key前缀不一样

try {
    // redis 连接配置
    var redisConfig = "{\"host\":\"***.3.16.170\",\"port\":\"60000\",\"password\":\"ideal2018\",\"database\":1}";
    // 获取当前登录的手机号
    var phone = pm.variables.get("sendphone1");
    // 后端服务缓存验证码在redis的key
    var key = "NEW_GWY_REGISTER_SMS_CODE_" + phone;
    console.log("redis key:", key);
    // 执行jar包获取redis缓存数据
    var jarResult = pm.execute('apifox-redis-1.0-SNAPSHOT.jar', [redisConfig, "GET", key]);
    console.log("redis 缓存数据:", jarResult);
    // 反序列化异常处理
    //var code = jarResult.substr();
    var code = jarResult.substr(jarResult.length-7, 6);
    // 自动填充验证码到登录接口的`code`字段
    pm.variables.set("code", code);
    console.log("验证码:", code);
    //生成code,存入环境变量
    pm.environment.set('code', code);
} catch (e) {
    console.error(e.message);
}

第四步:个人注册

/api/public/user/registerNew

{
    "password": "123456",
    "type": 1,
    "phoneId": "{{sendphone1}}",
    "username": "{% mock 'cname' %}",
    "verifyCode": "{{code}}",
    "idCard": "{% mock 'id' %}",
    "needDecrypt": true
}
第四步:

多线程运行

100次循环,100个线程,差点把电脑跑挂了,产生了200多条停止了。

image.png

注意:
因密码加密,导致数据库存的密码有误。需要改这四张表的password,org库register、user库user表、imapi库user表、的password进行修改,tigase库 tig_users 表 ,密码同步成新密码

ps:下一章讲解密码加密

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐