<
>

python性能测试手机号验证码登录压测示例详解

2022-07-21 15:12:34 来源:易采站长站 作者:

目录引言业务逻辑:基本的校验规则如下:解决方案:测试方案:压测脚本:模块类方法:引言这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规...

目录
引言
业务逻辑:
基本的校验规则如下:
解决方案:
测试方案:
压测脚本:
模块类方法:

引言

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

业务逻辑:

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

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

基本的校验规则如下:

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

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

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

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

解决方案:

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

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

测试环境固定验证码

测试方案:

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

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

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

压测脚本:

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

/**
*100个用户通过发短信然后通过验证码登录
*/
classLoginByTelextendsOkayBase{
publicstaticvoidmain(Strwww.cppcns.coming[]args){
defargsUtil=newArgsUtil(args)
defthread=argsUtil.getIntOrdefault(0,100)
deftimes=argsUtil.getIntOrdefault(1,50)
ClientManage.init(10000,5000,0)
defthreads=[]
thread.times{
defbase=getBase(it)
definfo=newUserInfo(base)
threads&lt;&lt;newLoginTel(info,times)
}
newConcurrent(threads,"学生留存1.2.3手机验证码登录").start()
FanLibrary.testOver()
}
staticclassLoginTelextendsThreadLimitTimesCount&lt;UserInfo&gt;{
publicLoginTel(UserInfoinfo,pythoninttimes){
super(info,times,null)
}
@Override
protectedvoiddoing()throwsException{
threadmark=t.loginByTel()
}
}
}

模块类方法:

/**
*手机号登录
*/
publicStringloginByTel(){
sendCodeOffline(2,phone);
Stringurl=Profile.LOGIN;
jsONObjectparams=getParams();
params.put("login_mode",2);
params.put("params",getJson("code="+Profile.LOGIN_CODE,"phone="+phone));
JSONObjectresponse=getPostResponse(url,params);
if(isRight(response)){
token=response.getJSONOpythonbject("data").getString("token");
super.token=token;
logger.info("账号{}登录成功",account);
}else{
output(response);
logger.warn("账号{}登录失败",account);
fail();
}
returntoken;
}

以上就是python性能测试手机号验证码登录示例详解的详细内容,更多关于python手机号验证码登录测试的资料请关注我们其它相关文章!

暂时禁止评论

微信扫一扫

易采站长站微信账号