基于python的测试用户数据生成工具

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、运行结果
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值