问题:重置密码接口、注册接口的入参需要用到短信验证码接口发出的短信,短信验证码存到了Redis里。如何从Redis中取出?

解决办法:(首先鸣谢开发小伙伴薛同学!)

薛同学给了Redis的IP地址、端口、密码和Key

redisIP、端口、密码、Key

方式1 通过Redis桌面连接工具:redis-desktop-manager-0.9.3.817.exe连接获取

如果只是通过postman、Jmeter一类工具做单接口测试,可以通过桌面连接工具手动查看,如下图。

1.1 建立连接:

通过桌面工具redis-desktop-manager建立连接

1.2 找到对应的项目下的register和resetpassword文件夹,查看底下的KEY

根据项目名、Key查看短信验证码

方式2 通过代码读取

如果是在开发自动化脚本,则可以通过代码方式读取,代码如下

package com.qa.api.utils;
import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* @author xr
*
* Jedis连接池
*/
public class JedisPoolUtils {
// Redis服务器IP
private static String ADDR = "实际IP";
// Redis的端口号
private static int PORT = 实际端口号;
// 密码
private static String AUTH = "实际密码";
// 可用连接实例的最大数目,默认值为8;
// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
private static int MAX_ACTIVE = 1024;
// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
private static int MAX_IDLE = 200;
// 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
private static int MAX_WAIT = 10000;
// 连接超时的时间
private static int TIMEOUT = 10000;
// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
private static boolean TEST_ON_BORROW = true;
// return 一个jedis实例给pool时,是否检查连接可用性(ping())
private static boolean TEST_ON_RETURN = true;
private static JedisPool jedisPool = null;
/**
* 初始化Redis连接池
*/
static {
try {
if (jedisPool == null) {
// 同步锁
synchronized (JedisPoolUtils.class) {
if (jedisPool == null) {
// jedis连接池的配置
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(MAX_ACTIVE);
poolConfig.setMaxIdle(MAX_IDLE);
poolConfig.setMaxWaitMillis(MAX_WAIT);
poolConfig.setTestOnBorrow(TEST_ON_BORROW);
poolConfig.setTestOnReturn(TEST_ON_RETURN);
poolConfig.setBlockWhenExhausted(false);
jedisPool = new JedisPool(poolConfig, ADDR, PORT, TIMEOUT, AUTH);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取Jedis实例
*
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 释放jedis资源
*
* @param jedis
*/
public static void releaseResource(final Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}
/**
* 根据手机号获取注册短信验证码
* @param mobile
* @return
*/
public static String getRegiSms(String mobile, Jedis jedis) {
String regiSms = jedis.get("finance:smsverfiy:register:"+mobile); //Key值换成你自己的
System.out.println("regiSms ="+regiSms);
return regiSms;
}
/**
* 根据手机号获取重置密码短信验证码
* @param mobile
* @return
*/
public static String getResetPwSms(String mobile, Jedis jedis) {
String resetPwSms = jedis.get("finance:smsverfiy:resetpassword:"+mobile); //Key值换成你自己的
System.out.println("resetPwSms =" + resetPwSms);
return resetPwSms;
}
public static void main(String[] args) {
System.out.println("ADDR =" +ADDR);
Jedis jedis = null;
try {
// 获取Jedis实例
jedis = JedisPoolUtils.getJedis();
String regesterSms = getRegiSms("188****9680", jedis); //手机号换成你自己的
String resetPwSms = getResetPwSms("186****4032", jedis); //手机号换成你自己的
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放Jedis连接资源
JedisPoolUtils.releaseResource(jedis);
}
}
}

测试脚本中怎么用?

调用即可,参考main方法

javca中redis获取value_接口测试:如何从redis中获取短信验证码相关推荐

  1. 手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能

    本文目录 前言 1 自定义AuthenticationToken类 2 自定义AuthenticationProvider类 3 自定义MobilePhoneAuthenticationFilter ...

  2. Redis 基础 - 短信验证码登录

    本文摘要 先简单列出用session方式.然后提出session方式的问题,并简单换为用Redis的方式.最后通过优化来解决一些小问题. Redis基础 - 基本类型及常用命令 Redis基础 - J ...

  3. 手机获取短信验证码——自定义UI界面

    在上一篇博客中,简单实现了获取短信验证码的功能,那么在本文中,主要介绍短信SDK内置(无UI界面)的方法,对外的类主要有:SMSSDK和EventHandler 先看一波xml <?xml ve ...

  4. 手把手教你写一个获取短信验证码业务(基于Spring Boot+Redis+阿里云短信服务)

    文章目录 一.阿里云短信环境搭建 1.开启使用子用户,创建用户组和用户 2.开通阿里云短信服务 二.环境测试 1.新建Spring Boot(web)项目,导入依赖 2.在测试类中进行测试 三.真实业 ...

  5. 容联云通讯php短信接口,开发中使用 【容联 云通信】获取短信验证码的 Javascript 接口...

    开发中使用 [容联 云通信]获取短信验证码的 Javascript 接口 在平台应用列表添加应用. 在测试号码中绑定测试手机号码,只有这个号码能接收验证短信. 在项目中绑定配置:将控制台首页的开发者主 ...

  6. vue中获取短信验证码IOS手机问题

    vue使用中发现了一个问题,由于ios手机获取短信验证码后,验证码会直接显示在键盘上,点击键盘上的验证码即可给对应的input赋值,但是在项目开发中发现输入框的取值为空 经过排查是因为通过v-mode ...

  7. vue中获取短信验证码功能IOS手机问题

    vue使用中发现了一个问题,由于ios手机获取短信验证码后,验证码会直接显示在键盘上,点击键盘上的验证码即可给对应的input赋值,但是在项目开发中发现输入框的取值为空 经过排查是因为通过v-mode ...

  8. 抓取html表单验证码,如何在jquery中利用表单获取短信验证码

    如何在jquery中利用表单获取短信验证码 发布时间:2021-02-18 15:42:54 来源:亿速云 阅读:88 作者:Leah 这期内容当中小编将会给大家带来有关如何在jquery中利用表单获 ...

  9. Redis存放短信验证码 RedisTemplate =>opsForValue

    @Autowired private RedisTemplate redisTemplate; redisTemplate.opsForValue() redisTemplate.opsForHash ...

最新文章

  1. scala中类的继承关系
  2. QML TableView表格使用示例
  3. WMI使用技巧集 C#
  4. 田渊栋:业余做研究的经验
  5. 51单片机之特殊功能寄存器SFR
  6. Memcached 简单应用
  7. Android数据储存之SharedPreferences总结
  8. airpods pro是按压还是触摸_AirPods Pro体验:真好用,但我还是想退货啊
  9. JavaScript高级程序设计读书笔记(第8章BOM之location对象查询字符串参数)
  10. ASP.net揭秘笔记
  11. iOS媒体视频播放器应用源码
  12. oracle 终止imp,终止imp/exp和expdp/impdp进程运行的方法
  13. 不同浏览器的使用体会
  14. uniapp重新渲染页面_uni-app里面使用uni.request请求并且渲染列表
  15. [Git]如何撤销上次commit
  16. Win10怎么优化网络?网络优化设置
  17. WinCC与Mysql原来可以这样玩
  18. GameFramework框架详解之 DataNode数据节点模块
  19. 计算机常用英语词汇及读音,表示显示的英文单词与标准读音
  20. Java线程泄露的分析与处理

热门文章

  1. JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法
  2. c++面向对象的编程
  3. JDBC批处理读取指定Excel中数据到Mysql关系型数据库
  4. linux shell 基础 使用日志与心得
  5. Ubuntu下安装ruby的三种方式
  6. 使tomcat和lighttpd使用service启停
  7. Java 多线程(七) 线程间的通信
  8. VS2008 各种杂七杂八技巧
  9. 登录DMOZ/如何登录DMOZ分类目录
  10. 第一次,触碰Web App项目,栽过的那些坑。