自动化测试中有时候需要创建不同权限的账号

创建三个账号

from scripts.handle_mysql import HandleMysql                # 数据库类
from scripts.handle_requsets import HandleTheRequest        # 发起请求类
from scripts.handle_config import do_config                 # 配置文件读写类
from scripts.constants import CONFIGS_USER_ACCOUTS_DIR      # 创建三个账号保存的路径


def create_new_user(regname, pwd='123456'):
    """
    调用一次创建一个用户账号
    :param regname: 用户的注册名
    :param pwd:固定密码,,不用传手机号
    :return: 返回嵌套字典的字典user_dict,成功创建账号后,账号的id,regname姓名,mobilephone手机号,pwd密码
    """
    handle_mysql = HandleMysql()        # 创建MySQL会话,最后一定要关闭
    do_register = HandleTheRequest()    # 创建接口请求类会话
    url = do_config.get_value("api", "prefix") + "/member/register"     # 拼接url
    # 查询创建手机号在数据库是否存在
    sql = "select id from member where mobilephone=%s;"
    while True:
        # mobilephone获取未注册的手机号码
        mobilephone = handle_mysql.create_not_existed_mobile()      # 数据库未注册手机号码方法
        # 参数
        data = {"mobilephone": mobilephone, "pwd": pwd, "regname": regname}
        do_register.to_request(method="post",
                               url=url,
                               data=data)
        result = handle_mysql.get_value(sql=sql, args=(mobilephone,))
        if result:                      # 如果不为空为真说明注册成功,返回一个字典
            user_id = result["id"]      # 注册成功后获取用户id
            break

    # 配置文件中区域名:regname,保存着id,regname姓名,mobilephone手机号,pwd密码
    user_dict = {
        regname:{"id": user_id,
                 "regname": regname,
                 "mobilephone": mobilephone,
                 "pwd": pwd
                 }
    }

    handle_mysql.close()    # 关闭MySQL链接
    do_register.close()     # 关闭请求会话链接

    return user_dict


def generate_users_config():
    """
    调用三次create_new_user,生成三个用户账号的信息
    :return:
    """
    users_datas_dict = {}                                           # update合并为一个嵌套字典的字典
    users_datas_dict.update(create_new_user("admin_user"))          # 管理员的账号,返回字典
    users_datas_dict.update(create_new_user("invest_user"))         # 投资人的账号,返回字典
    users_datas_dict.update(create_new_user("borrow_user"))         # 借款人的账号,返回字典
    do_config.write_config(users_datas_dict, CONFIGS_USER_ACCOUTS_DIR)  # 写入到配置,配置文件路径也可以是文件


if __name__ == '__main__':
    # 生成三个账号
    # [admin_user]  管理员
    # [invest_user] 投资人
    # [borrow_user] 借款人
    generate_users_config()

  随机创建三个账号后写入配置文件的数据(手机号均为随机创建假的)

[admin_user]
id = 179542
regname = admin_user
mobilephone = 13982490671
pwd = 123456

[invest_user]
id = 179543
regname = invest_user
mobilephone = 13226834715
pwd = 123456

[borrow_user]
id = 179544
regname = borrow_user
mobilephone = 13907468239
pwd = 123456

  我们只需要在自动化入口文件中执行用例前端,加入在没有三个账号的配置文件的时候判断,就可以自动创建三个账号

from scripts.constants import CONFIGS_USER_ACCOUTS_DIR      # 三个账号配置文件路径

# 如果用户账号所在配置文件不存在,则为True,则创建账号
if not os.path.exists(CONFIGS_USER_ACCOUTS_DIR):
    generate_users_config()

 

 

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!******* 

posted @ 2020-01-05 15:04  守护往昔  阅读(572)  评论(0编辑  收藏  举报