c语言 手机号验证码,手机号验证码登录性能测试

这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规则;第二:数据量偏大,需要开发配合协调校验规则。

业务逻辑:

请求发送验证码接口,发送成功(已绑定的手机号,且有效的用户状态)可以获取到登录的一个参数traceNo

使用traceNo、短信验证码、手机号请求登录接口

基本的校验规则如下:

手机号校验,排除一些不存在的号段,11位数字类型(接口传string类型)

间隔(60s)内不允许发第二条短信,短信有效期同隔间

自然天不允许发10条以上的短信

验证码随机和traceNo必需从发送验证码接口获得

解决方案:

限制条件已经做成可配置,可以随时更改重启服务即可

选中14号段,用户手机号=14+uid

测试环境固定验证码

测试方案:

将发送验证码和短信登录两个接口放在一起压测,需要准备一批测试用户

单个线程绑定一个用户,然后不停地发送验证码和使用验证码登录

增加基类属性phone和模块类属性lastTraceNo来完成参数传递

压测脚本:

threadmark用来标记任务的,我在模块方法里面返回了token,表示唯一用户登录接口请求操作,方便开发追踪日志。

/**

* 100个用户通过发短信然后通过验证码登录

*/

class LoginByTel extends OkayBase {

public static void main(String[] args) {

def argsUtil = new ArgsUtil(args)

def thread = argsUtil.getIntOrdefault(0, 100)

def times = argsUtil.getIntOrdefault(1, 50)

ClientManage.init(10000, 5000, 0)

def threads = []

thread.times {

def base = getBase(it)

def info = new UserInfo(base)

threads << new LoginTel(info, times)

}

new Concurrent(threads, "学生留存1.2.3手机验证码登录").start()

FanLibrary.testOver()

}

static class LoginTel extends ThreadLimitTimesCount {

public LoginTel(UserInfo info, int times) {

super(info, times, null)

}

@Override

protected void doing() throws Exception {

threadmark = t.loginByTel()

}

}

}

模块类方法:

/**

* 手机号登录

*/

public String loginByTel() {

sendCodeOffline(2, phone);

String url = Profile.LOGIN;

JSONObject params = getParams();

params.put("login_mode", 2);

params.put("params", getJson("code=" + Profile.LOGIN_CODE, "phone=" + phone));

JSONObject response = getPostResponse(url, params);

if (isRight(response)) {

token = response.getJSONObject("data").getString("token");

super.token = token;

logger.info("账号 {} 登录成功", account);

} else {

output(response);

logger.warn("账号 {} 登录失败", account);

fail();

}

return token;

}

郑重声明:“FunTester”首发,欢迎关注交流,禁止第三方转载。

技术类文章精选

无代码文章精选

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值