接口和协议组成 接口测试依赖获得短信验证码,该怎么处理?

黑山老妖 · 2018年06月08日 · 最后由 黑山老妖 回复于 2018年06月13日 · 5154 次阅读

比如测试环境,注册时需要获取短信验证码,但获取短信验证码接口返回值却不包含短信验证码。该怎么处理,目前想到的解决方案
1.修改代码,接口测试时不要短信验证码
2.查数据库,但是公司数据库里没存(可能 redis 里存了)
3.让开发写个接口,能获取短信验证码。

各位大神,有遇到这种情况的,你们都是咋处理的呢。求借鉴!

共收到 14 条回复 时间 点赞

触发发短信的操作,肯定会存储的。要不然怎么给用户发短信,直接让开发给权限读验证码就好了。

骚操作 读取数据库

先和开发确认验证码生成机制。 然后解决如何 拿 存 带 ,完事。
注释掉
万能验证码
真的输入

之前做接口时候碰到过类似问题,短信验证码存储在 Redis,我们在接口测试工具里实现了一个 Redis 读取的方法,根据开发提供的读取验证码方法去 Redis 拿验证码,然后进行登录接口的验证

搞个万能码

最好是单独开个接口,我们公司是存在 redis 的,但是用 java 给序列化了,我用的是 python 没办法反序列化拿出来

找开发帮忙写死验证码

如果是直接取数据库,你自己可以写个 sql 语句截取字符获得短信验证码,然后赋值给某个变量就好了

1.最方便的就是让开发弄个万能验证码,以后一直能用
2.在数据库的话就去数据库拿
3.再或者去服务器这个服务对应的路径下找日志,在 log 里面筛选拿出来

测试环境,写死一个测试用码唄,用不了几分钟

全部回答错误。1.用万能的验证码,那你真正使用了验证码的逻辑怎么验证? 2.有说去数据库拿的。。。不了解中间件么,是不是所有东西都要直接去数据库取?redis 取正确 3.以前帖子有说过 可以通过 adb shell 直接过滤本机验证码

已解决:直接写个接口去获取验证码。(接口只在测试环境生效,代码做判断)
1.不采取修改环境代码的方式(万能验证码,写死验证码,都是要改代码的。每次更新环境代码时,都要再次修改一遍)。因为每次跑用例前都要去修改环境代码,太麻烦。
2.读取服务器日志,查看验证码。这个代码量比较大,因为有时候测试环境会同时有其他人在获取短信验证码,同时出现多条验证码日志时,很难去识别。

黑山老妖 回复

如果读取服务器日志,没有其他唯一标识 grep 出相应的记录?

ddDian 回复

我们这有:mobile[b777993d6a94bbad06592eae994bcaf1] content,根据加密后的手机号,查询出最新的一条记录。不过这个太复杂,所以我们这边是直接新写个接口去获取

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册