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<<newLoginTel(info,times)
}
newConcurrent(threads,"学生留存1.2.3手机验证码登录").start()
FanLibrary.testOver()
}
staticclassLoginTelextendsThreadLimitTimesCount<UserInfo>{
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.getJSONObject("data").getString("token");
super.token=token;
logger.info("账号{}登录成功",account);
}else{
output(response);
logger.warn("账号{}登录失败",account);
fail();
}
returntoken;
}
以上就是python性能测试手机号验证码登录示例详解的详细内容,更多关于python手机号验证码登录测试的资料请关注我们其它相关文章!













闽公网安备 35020302000061号