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

Posted shouhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试中有时候需要创建不同权限的账号相关的知识,希望对你有一定的参考价值。

创建三个账号

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/   谢谢!!******* 

以上是关于自动化测试中有时候需要创建不同权限的账号的主要内容,如果未能解决你的问题,请参考以下文章

K8S权限控制,限制用户在特定namespace上的访问权限

Linux下通过受限bash创建指定权限的账号

用户权限管理

Linux命令-用户权限管理

Linux命令-用户权限管理

Linux_ubuntu命令-用户权限管理