前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何读取redis的手机号验证码数据,实现自动化登录测试

如何读取redis的手机号验证码数据,实现自动化登录测试

作者头像
物立
发布2022-08-11 17:16:05
1.2K0
发布2022-08-11 17:16:05
举报
文章被收录于专栏:国产国产

1、案例描述

  • 用户选择短信登录 !
1.png
1.png
  • 发送短信后,后端接口逻辑已把验证码缓存在redis, !
2.png
2.png
  • apifox上定义对应下发登录短信接口短信登录接口
  • 下载地址:www.apifox.cn
3.png
3.png
4.png
4.png
  • 这时候问题就来了,怎么样才能让apifox自动获取下发登录短信接口对应的手机号的验证码,自动填充到短信登录接口code字段?
5.jpg
5.jpg

2、解决思路

  • 方案一:后端通过接口返回验证码,下发短信接口后再调用该接口去获取验证码(正式环境需要屏蔽该接口,没办法自动化正式环境接口)
  • 方案二:apifox直接访问redis获取数据;这需要在apifox添加扩展操作redis的jar包,参考:https://www.apifox.cn/help/app/scripts/api-references/external-programs/ (该方案比较可行)

3、开始动手

6.png
6.png
  • phonecode请求参数给为临时变量{{phone}}{{code}}
7.png
7.png
8.png
8.png
代码语言:txt
复制
try {
    // redis 连接配置
    var redisConfig = "{"host":"192.168.181.130","password":"123456","database":0}";
    // 获取当前登录的手机号
    var phone = pm.variables.get("phone");
    // 后端服务缓存验证码在redis的key
    var key = "DEFAULT_CODE_KEY:" + phone;
    console.log("redis key:", key);
    // 执行jar包获取redis缓存数据
    var jarResult = pm.execute('apifox-redis-1.0-SNAPSHOT.jar', [redisConfig, "GET", key]);
    console.log("redis 缓存数据:", jarResult);
    // 反序列化异常处理
    var code = jarResult.substr(jarResult.length-7, 6);
    // 自动填充验证码到登录接口的`code`字段
    pm.variables.set("code", code);
    console.log("验证码:", code);
} catch (e) {
    console.error(e.message);
}
9.png
9.png
  • 新增测试数据,这里新增手机号对应临时变量{{phone}}
10.png
10.png
  • 注意: 需要打开测试数据开关,后点击运行
11.png
11.png
  • 查看结果 !
12.png
12.png
13.png
13.png
14.png
14.png

4、总结

代码语言:txt
复制
apifox提供了非常好的自动化测试接口的功能
15.jpg
15.jpg

参考demo源码

代码语言:txt
复制
# 后端接口服务源码
https://github.com/Atoms-Cat/softswitch-system

# apifox 扩展操作 redis jar源码 
https://github.com/Atoms-Cat/apifox-code

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、案例描述
  • 2、解决思路
  • 3、开始动手
  • 4、总结
  • 参考demo源码
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档