1、使用场景:
有注册接口,想创造多条测试数据,不想手工插入,需要自动化实现
2、注册接口
参数:
手机号 mobile_phone
密码 pwd
用户类型 type
用户名 reg_name
格式:application/json
方法:post
3、代码结构
4、代码
思路:先生成11位手机号,再生成用户名 (字母拼接+手机号后四位),密码统一设置为12345678,用户类型统一设置为1 ,最后请求注册接口。(“http接口请求代码”和“数据库连接代码”本文章未提供)
createUser部分代码
def create_user(password=12345678, type=1):
"""
创建用户并将用户信息,添加至全局数据池中
:mobile_phone:用户手机号
:param reg_name: 用户昵称
:param password: 用户密码,默认为12345678
:param type: 用户类型,默认为1,普通用户
:return:
"""
do_request = HttpRequset()
CreatPhone = CreatePhone()
# 获取未注册手机号
mobile_phone = CreatPhone.create_not_existed_mobile()
# 将用户信息添加至全局数据池中
setattr(GlobalData,"mobile_phone", mobile_phone)
create_reg_name=CreateName.create_reg_name()
# 构造请求参数
param = {
"mobile_phone": mobile_phone,
"pwd": password,
"reg_name": create_reg_name,
"type": type
}
# 构造请求url路径
url = "http://XXXXXXXX"
# 获取api头信息
headers = {'XXXXXXXX':'application/json','XXXXXXX':'XXXXX'}
# 进行注册
res = do_request.to_request(method="post",
url=url,
data=param,
my_headers=headers,
is_json=True)
return res.json()
# 关闭相关连接
do_request.close()
CreatPhone.close()
createPhone部分代码
@staticmethod
def create_mobile():
"""
随机生成11位手机号
start_mobile 为初始三位数
:return: 返回一个手机号字符串
"""
start_mobile = ['138', '139', '188']
start_mobile = random.choice(start_mobile)
end_num = ''.join(random.sample('0123456789', 8))
return start_mobile + end_num
def is_existed_mobile(self, mobile):
"""
判断指定的手机号在数据库中是否存在
"""
sql = 'SELECT mobile_phone FROM member WHERE mobile_phone=%s;'
if self.get_one_value(sql, args=[mobile]): # 手机号已经存在,则返回True,否则返回False
return True
else:
return False
def create_not_existed_mobile(self):
"""
随机生成一个在数据库中不存在的手机号
:return: 返回一个手机号字符串
"""
while True:
one_mobile = self.create_mobile()
if not self.is_existed_mobile(one_mobile):
break
return one_mobile
createRegName
class CreateName():
@staticmethod
def create_reg_name():
start_name = 'hc'
#从资源池中取出手机号
end_name=getattr(GlobalData, "mobile_phone")
return start_name+end_name[-4:]
GlobalData
# 存储全局数据
class GlobalData:
pass
主函数 run
from createUser import create_user
#循环一次,可设置n此
for num in range(0,1):
res=create_user()
print(res)
5、运行结果