redisHelper类编写
一个系统最常用的流程就是注册登录,那如何编写好他们的自动化脚本了?那得一步一步的分析。
首先,要熟悉这个系统的注册登录流程。我测试的系统,注册和登录都是要用到短信验证码的,而短信验证码是从 redis 上获取的。
redis 的基础不做过多的解释,它是一个 key-value 的数据库,数据类型有 字符串,哈希,列表,集合。每种类型都有自己的命令,如 set key value,get key等。
编写help 类时,先搞清楚 你要获取的key 的类型,然后方便取调用命令去取value,每种不同的数据类型有不同的命令,本次要获取的key是 字符串类型,使用get 命令就行。
代码如下:
# _*_conding:utf-8_*_
# 作者: 杨佳
# 创建时间: 2020/9/2 19:56
# 文件: redisconnetc
import redis # 导入redis第三方库, pip install redis
# 获取db=12里面的所有值
def get_keylst():
ip = '****' # redis 的ip地址
auth = '****' # redis 的密码
r = redis.Redis(host=ip,port=6379,db=12,password=auth)
return r.keys('*'),r # 返回redis 12的所有key和redis 的key-value
# 获取注册时的手机验证码
def get_register_code(phone):
# 这个是开发定义的
flag = 'account_register_******_'+str(phone)
code = ''
try:
lst, r = get_keylst()
# 遍历所有的key
for verifily in lst:
if flag in str(verifily):
# 根据key 取得value 值
byte_code = r.get(verifily)[-6:]
# 取出的value 值是二进制类型,将其转换为string
code = bytes.decode(byte_code)
except:
return None
else:
return code
# 获取登录时的手机验证码
def get_login_code(phone):
flag = 'account_login_*****_'+str(phone)
code = ''
try:
lst, r = get_keylst()
for verifily in lst:
if flag in str(verifily):
byte_code = r.get(verifily)[-6:]
code = bytes.decode(byte_code)
except:
return None
else:
return code
if __name__ == '__main__':
b = get_login_code('******')
print(b)
下一篇:mysqlHelper类的编写
本文介绍了一个用于自动化测试的RedisHelper类实现,该类主要用于从Redis数据库中获取短信验证码,包括注册和登录流程中的手机验证码。

被折叠的 条评论
为什么被折叠?



