接口自动化----手机号验证码

第一步:手机号验证码登录的过程:

1、页面输入手机号,点击获取验证码。

2、后端收到手机号,校验手机号格式的正确性,然后调用短信网关发送验证码, 短信网关只是负责发送短信, 要发送的手机号和短信内容是我们的系统给短信网关的, 所以我们系统肯定在一个地方存这个手机号和验证码的对应关系, 有可能缓存(redis),有可能数据库,也有可能其他地方。

3、手机收到短信验证码。

4、页面输入验证码点击提交。

5、系统收到登陆请求的手机号和验证码, 然后在保存手机号验证码对应关系的地方取出对应手机号的验证码,然后比较两个验证码是否相等,相等就登陆成功,不相等就登录失败, 当然还得在验证码的有效期内。

第二步:分析在哪里可以解决自动登录的问题?

其实就是第五步验证过程是判断我们是否登录成功的关键一步,那么搞定第五步有哪些方案呢?

方案1:让后端设置一个万能码, 这样登录的时候,如果是这个码,就直接默认登录成功,相当于一个后门, 这个时候需要和后端确认下,只有指定的手机号这个万能码才生效, 这样可以最大程度避免有万能码代码意外发到线上环境带来的损失。

方案2:让后端去掉短信验证码登录过程,直接输入手机号就可以登录, 这样代码改动大, 而且错误代码发到线上风险很大。

方案3:自己手工拿到登录的认证信息,比如token,然后写入到代码中,这样可以跳过登录环节,不好的就是每次运行都要手工操作。

其实可以看出方案1、方案2、方案3,都有一些不好的地方,不是需要开发协助修改代码逻辑, 就是弄起来比较麻烦, 接下来就有一个更好的方案。

 

最优方案:从第2步可以看出,短信的验证码其实是存在某个地方的,那么我们可以直接通过操作数据库、操作redis、或者调用接口获取到验证码,然后就可以输入正确的验证码了,这样不需要开发修改代码,也不麻烦, 就是我们写自动化脚本的时候需要多一点知识,但是跑通之后效果比前面的方案都要好。

接口自动化----手机号验证码

上一篇:HTTPDNS开源 Android SDK,赋能更多开发者参与共建


下一篇:axios请求方式封装