开发者社区> 游客rihqhtgkydneq> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 1、案例描述 用户选择短信登录 !
+关注继续查看

 

1、案例描述

    • 用户选择短信登录 !

    imageimage.gif编辑

     

      • 发送短信后,后端接口逻辑已把验证码缓存在redis, !

      imageimage.gif编辑

       

        • apifox上定义对应下发登录短信接口短信登录接口
        • 下载地址:www.apifox.cn

        imageimage.gif编辑

         

        imageimage.gif编辑

         

          • 这时候问题就来了,怎么样才能让apifox自动获取下发登录短信接口对应的手机号的验证码,自动填充到短信登录接口code字段?

          imageimage.gif编辑

           

          2、解决思路

            • 方案一:后端通过接口返回验证码,下发短信接口后再调用该接口去获取验证码(正式环境需要屏蔽该接口,没办法自动化正式环境接口)
            • 方案二:apifox直接访问redis获取数据;这需要在apifox添加扩展操作redis的jar包,参考:脚本调用其他语言( java、python、php 等) | Apifox 使用文档 (该方案比较可行)

            3、开始动手

              imageimage.gif编辑

               

                • phonecode请求参数给为临时变量{{phone}}{{code}}

                imageimage.gif编辑

                 

                imageimage.gif编辑

                 

                  • 新建短信登录用例前置自定义脚本,这里的apifox-redis-1.0-SNAPSHOT.jar,就是第一步生成好的jar;脚本编写可以参考:前置脚本 | Apifox 使用文档
                  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);
                  }

                  image.gif

                  imageimage.gif编辑

                   

                    • 新增测试数据,这里新增手机号对应临时变量{{phone}}

                    imageimage.gif编辑

                     

                      • 注意: 需要打开测试数据开关,后点击运行

                      imageimage.gif编辑

                       

                        • 查看结果 !

                        imageimage.gif编辑

                        imageimage.gif编辑

                        imageimage.gif编辑

                         

                        4、总结

                        apifox提供了非常好的自动化测试接口的功能

                        image.gif

                        imageimage.gif编辑

                         

                        参考demo源码

                        # 后端接口服务源码
                        https://github.com/Atoms-Cat/softswitch-system
                        # apifox 扩展操作 redis jar源码 
                        https://github.com/Atoms-Cat/apifox-code

                        image.gif

                          版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

                          相关文章
                          Redis实践(十三)-Redis布隆过滤器
                          2 引出布隆过滤器 问题 一些可能方案
                          3524 0
                          《自动化平台测试开发-Python测试开发实战》新书目录一览
                          人在江湖,有一本武功秘籍保命杀敌很重要 当然,很多的秘籍可能不适合你 不过 你总会找到适合自己的那一本修炼 此时 你可能内心是毫无波动 甚至还有点想笑   当然 这里想给大家推荐一本普适搬砖秘籍 《自动化平台测试开发》 男女老少咸宜 为什么推荐这么一本秘籍呢? 那么且听我娓娓道来 首先     第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书。
                          3065 0
                          DJANGO中正规的建立与USER外键的方式
                          以前都是直接与user 最近看书,上说settings.AUTH_USER_MODEL,这样好些。。。是为记。 from django.db import models from django.
                          916 0
                          SYS_R12 MOAC多组织底层技术实现技术分析(Oracle VPD) (案例)
                          2014-05-30 Created By BaoXinjian 一、 介绍 之前一直存在对Oracle R12 多组织访问的一些疑惑,所以查询了一些相关资料,并介绍实现R12 MOAC的Oracle VPD技术 Oracle VPD全称Virtual Private Database, ...
                          1023 0
                          45
                          文章
                          0
                          问答
                          文章排行榜
                          最热
                          最新
                          相关电子书
                          更多
                          低代码开发师(初级)实战教程
                          立即下载
                          阿里巴巴DevOps 最佳实践手册
                          立即下载
                          冬季实战营第三期:MySQL数据库进阶实战
                          立即下载