Exemple #1
0
    def to_param(cls, data):
        # 未注册手机号的参数化
        if re.search(cls.not_existed_tel_pattern, data):
            do_mysql = HandleMysql()
            data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_existed_mobile(), data)
            do_mysql.close()
        # 不存在的用户id替换
        if re.search(cls.not_existed_id_pattern, data):
            do_mysql = HandleMysql()
            sql = "SELECT id FROM member ORDER BY id DESC limit 0, 1;"
            not_existed_id = do_mysql.run(sql).get('id') + 1  # 获取最 大的id加1
            data = re.sub(cls.not_existed_id_pattern, str(not_existed_id), data)
            do_mysql.close()

        # 注册用户手机号的参数化
        if re.search(cls.invest_user_tel_pattern, data):
            invest_user_tel = cls.do_user_account.read('invest', 'mobile_phone')
            data = re.sub(cls.invest_user_tel_pattern, invest_user_tel, data)

        # 注册用户密码的参数化
        if re.search(cls.invest_user_pwd_pattern, data):
            invest_user_pwd = cls.do_user_account.read('invest', 'pwd')
            data = re.sub(cls.invest_user_tel_pattern, invest_user_pwd, data)

        # 参数化投资人的id
        if re.search(cls.invest_user_id_pattern, data):
            invest_user_id = cls.do_user_account.read('invest', 'id')
            data = re.sub(cls.invest_user_id_pattern, str(invest_user_id), data)
        # loan_id 替换
        if re.search(cls.loan_id_pattern, data):
            loan_id = getattr(cls, 'loan_id')
            data = re.sub(cls.loan_id_pattern, str(loan_id), data)

        return data
    def test_product(self, case):
        # 1. 参数化
        new_data = Parameterize.to_param(case.data)

        # 2. 拼接完整的url
        if case.case_id == 4:
            mysql = HandleMysql()
            ss = mysql.run(do_yaml.read('mysql', 'select_product_id'))
            new_url = do_yaml.read('api', 'prefix') + case.url + ss['id']
            mysql.close()
Exemple #3
0
def create_new_user(reg_name, pwd='12345678', type=1):
    """
    创建一个新用户
    :param reg_name:
    :param pwd:
    :param type:
    :return:
    """
    # 创建session会话对象,用来发起请求
    do_request = HandleRequest()
    # 创建mysql对象
    do_mysql = HandleMysql()
    # 添加公共请求头
    do_request.add_headers(do_yaml.read_yaml('api', 'version'))

    # 注册请求的url
    register_url = do_yaml.read_yaml('api', 'prefix') + '/member/register'
    while True:
        # 随机生成一个未注册的手机号
        mobile_phone = do_mysql.create_not_exsited_mobile()
        # 创建一个请求体参数
        data = {
            'mobile_phone': mobile_phone,
            'pwd': pwd,
            'type': type,
            'reg_name': reg_name
        }
        # 调用注册接口,发起请求
        do_request.send(register_url, data=data)

        # 查询数据库用户ID的sql,同时进行了数据校验
        sql = do_yaml.read_yaml('mysql', 'select_user_id_sql')
        # 查询数据库,获取用户ID
        result = do_mysql.run(sql, args=[mobile_phone], is_more=False)
        # 判断是否存在,如果result为None,则用户不存在,if语句为真,用户创建成功,跳出循环
        if result:
            user_id = result['id']
            break

    # 构建用户信息为嵌套字典的字典
    user_info = {
        reg_name: {
            'user_id': user_id,
            'mobile_phone': mobile_phone,
            'pwd': pwd,
            'reg_name': reg_name}
    }

    # 关闭mysql对象
    do_mysql.close()
    # 关闭session会话对象
    do_request.close()

    return user_info
Exemple #4
0
def create_new_user(reg_name, pwd="aaa123", user_type=1):
    """
    创建一个用户
    :param reg_name: 用户名
    :param pwd: 密码
    :param user_type: 用户类型
    :return: 存储一个用户信息, 嵌套字典的字典(以用户名为key, 以用户信息所在字典为value)
    """
    # 建立连接
    do_mysql = HandleMysql()
    do_request = HandleRequest()
    # 添加公共请求头
    do_request.add_headers(do_yaml.read('api', 'version'))

    url = do_yaml.read('api', 'prefix') + '/member/register'
    sql = do_yaml.read('mysql', 'select_userid_sql')
    while True:
        mobile_phone = do_mysql.create_not_existed_mobile()
        data = {
            "mobile_phone": mobile_phone,
            "pwd": pwd,
            "reg_name": reg_name,
            "type": user_type
        }
        # 先注册接口发起请求
        do_request.send(url, data=data)

        # 查询数据库, 获取用户id
        result = do_mysql.run(sql=sql, args=(mobile_phone, ))
        if result:
            user_id = result["id"]
            break

    # 构造用户信息字典
    user_dict = {
        reg_name: {
            "id": user_id,
            "reg_name": reg_name,
            "mobile_phone": mobile_phone,
            "pwd": pwd
        }
    }

    # 关闭连接
    do_mysql.close()
    do_request.close()

    return user_dict
Exemple #5
0
def create_new_user(reg_name, pwd="12345678", user_type=1):
    '''
    创建用户
    reg_name:用户昵称
    pwd:密码
    user_type:用户类型
    返回一个用户信息,嵌套字典的字典,用户昵称为key,用户信息为value
    '''
    # 建立连接 后面要关闭连接
    do_mysql = HandleMysql()
    do_request = HandleRequest()
    # 添加公共请求头
    do_request.add_headers(do_yaml.read('api', 'version'))
    url = do_yaml.read('api', 'prefix') + '/member/register'
    sql = do_yaml.read(
        'api', 'select_user_id')  # 虽然响应报文中会返回用户ID,但是从数据库中取出,进一步数据校验了注册接口
    while True:  # 因为存在数据库中找不到手机号的可能,所以直接死循环创建一个未注册的手机号确保万无一失
        mobile_phone = do_mysql.create_not_existed_mobile()
        data = {
            "mobile_phone": mobile_phone,
            "pwd": pwd,
            "reg_name": reg_name,
            "type": user_type
        }
        # 向注册接口发起请求
        do_request.send(url, data=data)
        # 查询数据库,获取用户id
        result = do_mysql.run(sql=sql, args=(mobile_phone, ))
        if result:  # 如果查询结果不为空,则获取id
            user_id = result['id']
            break
        # 构造用户信息字典
    user_dict = {
        reg_name: {
            "id": user_id,
            "mobile_phone": mobile_phone,
            "pwd": pwd,
            "reg_name": reg_name,
        }
    }

    # 关闭连接
    do_request.close()
    do_mysql.close()
    return user_dict
    def not_existed_replace(cls, data):
        do_mysql = HandleMysql()
        # 不存在手机号的参数化
        if cls.not_existed_tel_pattern in data:  # 使用成员运算
            data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_existed_mobile(), data)

        # 不存在的用户id替换
        if re.search(cls.not_existed_id_pattern, data):
            sql = "SELECT id FROM member ORDER BY id DESC limit 0, 1;"
            not_existed_id = do_mysql.run(sql).get('id') + 1  # 获取最 大的id加1
            data = re.sub(cls.not_existed_id_pattern, str(not_existed_id), data)

            # loan_id 替换
        if re.search(cls.loan_id_pattern, data):
            loan_id = getattr(cls, 'loan_id')
            data = re.sub(cls.loan_id_pattern, str(loan_id), data)
        do_mysql.close()
        return data
Exemple #7
0
    def to_param(cls, data):
        if re.search(cls.not_existed_tel_pattern, data):
            do_mysql = HandleMysql()
            data = re.sub(cls.not_existed_tel_pattern,
                          do_mysql.create_not_existed_mobile(), data)
            do_mysql.close()

        if re.search(cls.existed_tel_pattern, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.existed_tel_pattern,
                          cls.doyaml.read("investor", "mobile_phone"), data)

        if re.search(cls.existed_tel_pattern_pwd, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.existed_tel_pattern_pwd,
                          cls.doyaml.read("investor", "pwd"), data)

        if re.search(cls.error_user_pwd, data):
            do_mysql = HandleMysql()
            data = re.sub(cls.error_user_pwd,
                          do_mysql.create_not_existed_mobile(), data)
            do_mysql.close()

        if re.search(cls.invest_user_id, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.invest_user_id,
                          str(cls.doyaml.read("investor", "id")), data)

        if re.search(cls.invest_user_tel, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.invest_user_tel,
                          cls.doyaml.read("investor", "mobile_phone"), data)

        if re.search(cls.invest_user_pwd, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.invest_user_pwd,
                          cls.doyaml.read("investor", "pwd"), data)

        if re.search(cls.not_existed_id, data):
            do_mysql = HandleMysql()
            sql = "select max(id) from member;"
            max_id = do_mysql.run(sql)
            data = re.sub(cls.not_existed_id, str(max_id["max(id)"] + 1), data)
            do_mysql.close()

        if re.search(cls.borrow_user_id, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.borrow_user_id,
                          str(cls.doyaml.read("borrower", "id")), data)

        if re.search(cls.borrow_user_tel, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.borrow_user_tel,
                          cls.doyaml.read("borrower", "mobile_phone"), data)

        if re.search(cls.borrow_user_pwd, data):
            # doyaml = HandleYaml(CONFIGS_USER_FILE_PATH)
            data = re.sub(cls.borrow_user_pwd,
                          cls.doyaml.read("borrower", "pwd"), data)

        if re.search(cls.admin_user_tel, data):
            data = re.sub(cls.admin_user_tel,
                          cls.doyaml.read("admin", "mobile_phone"), data)

        if re.search(cls.admin_user_pwd, data):
            data = re.sub(cls.admin_user_pwd, cls.doyaml.read("admin", "pwd"),
                          data)

        if re.search(cls.loan_id_pattern, data):
            # loan_id = getattr(Parameterize ,"loan_id")
            loan_id = getattr(cls, "loan_id")
            data = re.sub(cls.loan_id_pattern, str(loan_id), data)

        if re.search(cls.not_existed_loan_id, data):
            loan_id = getattr(cls, "loan_id")
            data = re.sub(cls.not_existed_loan_id, str(loan_id + 1), data)

        return data
    def to_parameter(cls, data):
        # 使用正则进行匹配得到包含未注册手机号的data
        if re.search(cls.not_existed_tel_pattern, data):
            # 创建数据库连接及游标对象
            do_mysql = HandleMysql()
            # 匹配得到含有未注册手机号的data
            data = re.sub(cls.not_existed_tel_pattern,
                          do_mysql.create_not_exsited_mobile(), data)
            # 关闭数据库游标对象、连接
            do_mysql.close()

        # 已存在的手机号:投资人手机号
        if re.search(cls.existed_tel_pattern, data):
            # 匹配得到含有已存在的手机号的data
            data = re.sub(
                cls.existed_tel_pattern,
                cls.do_yaml_user.read_yaml('investor', 'mobile_phone'), data)

        # 已存在手机号的密码:投资人密码
        if re.search(cls.existed_pwd_pattern, data):
            # 匹配得到含有已存在手机号的密码的data
            data = re.sub(cls.existed_pwd_pattern,
                          cls.do_yaml_user.read_yaml('investor', 'pwd'), data)

        # 会员ID:投资人ID
        if re.search(cls.existed_investor_id_pattern, data):
            # 匹配得到含有投资人会员ID的data
            data = re.sub(
                cls.existed_investor_id_pattern,
                str(cls.do_yaml_user.read_yaml('investor', 'user_id')), data)

        # 不存在的投资人ID
        if re.search(cls.not_existed_id_pattern, data):
            # 创建数据库连接及游标对象
            do_mysql = HandleMysql()
            # 配置文件中获取sql
            # 这里也可以不把sql语句写入配置文件,直接将sql语句写在下面
            sql = do_yaml.read_yaml('mysql', 'select_user_max_id_sql')
            # 运行sql,得到一个字典
            res_max = do_mysql.run(sql, is_more=False)
            # 获取字典的值,转换为字符串,将原data进行参数化
            data = re.sub(cls.not_existed_id_pattern,
                          str(res_max.get('max(id)') + 1), data)
            # 关闭数据库游标对象、连接
            do_mysql.close()

        # 借款人ID
        # 正则匹配:查找
        if re.search(cls.existed_borrower_id_pattern, data):
            data = re.sub(
                cls.existed_borrower_id_pattern,
                str(cls.do_yaml_user.read_yaml('borrower', 'user_id')), data)

        # 借款人电话
        if re.search(cls.existed_borrower_tel_pattern, data):
            data = re.sub(
                cls.existed_borrower_tel_pattern,
                cls.do_yaml_user.read_yaml('borrower', 'mobile_phone'), data)

        # 借款人密码
        if re.search(cls.existed_borrower_pwd_pattern, data):
            data = re.sub(cls.existed_borrower_pwd_pattern,
                          cls.do_yaml_user.read_yaml('borrower', 'pwd'), data)

        # 管理员电话
        if re.search(cls.existed_admin_tel_pattern, data):
            data = re.sub(cls.existed_admin_tel_pattern,
                          cls.do_yaml_user.read_yaml('admin', 'mobile_phone'),
                          data)

        # 管理员密码
        if re.search(cls.existed_admin_pwd_pattern, data):
            data = re.sub(cls.existed_admin_pwd_pattern,
                          cls.do_yaml_user.read_yaml('admin', 'pwd'), data)

        # loan_id
        if re.search(cls.loan_id_pattern, data):
            loan_id = getattr(Parameterize, 'loan_id')
            data = re.sub(cls.loan_id_pattern, str(loan_id), data)

        # 不存在的loan_id
        if re.search(cls.not_existed_loan_id_pattern, data):
            # 创建数据库连接及游标对象
            do_mysql = HandleMysql()
            sql = "select id from loan order by id desc limit 0,1;"
            # 运行sql,得到一个字典
            res_max = do_mysql.run(sql, is_more=False)
            # 获取字典的值,转换为字符串,将原data进行参数化
            data = re.sub(cls.not_existed_loan_id_pattern,
                          str(res_max.get('id') + 1), data)
            # 关闭数据库游标对象、连接
            do_mysql.close()

        return data
    def to_param(cls, data):

        # 不存在的手机号替换
        if re.search(cls.not_existed_tel_pattern, data):
            do_mysql = HandleMysql()
            data = re.sub(cls.not_existed_tel_pattern,
                          do_mysql.create_not_existed_mobile(), data)
            do_mysql.close()

        # 投资人手机号替换
        if re.search(cls.invest_user_tel_pattern, data):
            # do_user_account = HandleYaml(USER_ACCOUNTS_FILE_PATH)
            invest_user_tel = cls.do_user_account.read('invest',
                                                       'mobile_phone')
            data = re.sub(cls.invest_user_tel_pattern, invest_user_tel, data)

        # 投资人密码替换
        if re.search(cls.invest_user_pwd_pattern, data):
            invest_user_pwd = cls.do_user_account.read('invest', 'pwd')
            data = re.sub(cls.invest_user_pwd_pattern, invest_user_pwd, data)

        # 投资人id替换
        if re.search(cls.invest_user_id_pattern, data):
            invest_user_id = cls.do_user_account.read('invest', 'id')
            # 投资人id为int类型, 要转化为str类型
            data = re.sub(cls.invest_user_id_pattern, str(invest_user_id),
                          data)

        # 不存在的用户id替换
        if re.search(cls.not_existed_id_pattern, data):
            do_mysql = HandleMysql()

            sql = "SELECT id FROM member ORDER BY id DESC LIMIT 0,1;"
            not_existed_id = do_mysql.run(sql).get('id') + 1  # 获取最大的用户id + 1
            data = re.sub(cls.not_existed_id_pattern, str(not_existed_id),
                          data)
            do_mysql.close()

        # 借款人id替换
        if re.search(cls.borrow_user_id_pattern, data):
            borrow_user_id = cls.do_user_account.read("borrow",
                                                      "id")  # 获取已经注册的借款人用户id
            data = re.sub(cls.borrow_user_id_pattern, str(borrow_user_id),
                          data)

        # 借款人手机号替换
        if re.search(cls.borrow_user_tel_pattern, data):
            borrow_user_mobile = cls.do_user_account.read(
                "borrow", "mobile_phone")  # 获取已经注册的借款人手机号
            data = re.sub(cls.borrow_user_tel_pattern, borrow_user_mobile,
                          data)

        # 借款人密码替换
        if re.search(cls.borrow_user_pwd_pattern, data):
            borrow_user_pwd = cls.do_user_account.read("borrow",
                                                       "pwd")  # 获取已经注册的借款人密码
            data = re.sub(cls.borrow_user_pwd_pattern, borrow_user_pwd, data)

        # load_id替换
        if re.search(cls.loan_id_pattern, data):
            loan_id = getattr(cls, 'loan_id')
            data = re.sub(cls.loan_id_pattern, str(loan_id), data)

        return data