def setUpClass(cls):
        cls.url = config.get('api', 'base_url') + config.get('api', 'update_url')
        cls.headers = eval(config.get('api', 'headers'))
        # 日志记录
        log.info(f'{cls.url}')

        cls.session = HttpSessionHandler()
    def setUpClass(cls):
        cls.session = HttpSessionHandler()
        cls.url = config.get('api', 'base_url') + config.get('api', 'invest_url')
        cls.headers = eval(config.get('api', 'headers'))
        log.info(f'url:{cls.url}')

        change_amount(member_id, amount=2500)
Beispiel #3
0
 def setUpClass(cls):
     cls.url = config.get('api', 'base_url') + config.get('api', 'withdraw_url')
     cls.headers = eval(config.get('api', 'headers'))
     """账户初始余额60万"""
     change_amount(member_id=member_id, amount=510000)
     # 日志记录
     log.info(cls.url)
Beispiel #4
0
    def setUp(self):
        # 登录 获取token
        token_info = login_1(self.session)
        self.token = token_info['token_type'] + ' ' + token_info['token']
        self.headers['Authorization'] = self.token

        log.info(f'{self.headers}')
def is_register_1():
    """判断普通用户账号是否存在,不存在,则注册"""
    # 获取判断的账号信息
    mobile_phone = config.get('user', 'mobile_phone')
    password = config.get('user', 'password')

    # 连接数据库,查询数据
    db = MySQLHandler()
    sql = "select * from member where mobile_phone=%s;"
    user_info = db.fetchone(sql, [mobile_phone, ])
    db.close()
    # 若获取结果为空,则创建账户
    if not user_info:
        register_url = config.get('api', 'base_url') + config.get('api', 'register_url')
        headers = eval(config.get('api', 'headers'))
        register_data = {"mobile_phone": mobile_phone, "pwd": password, "type": 1}
        register_json = request.get_json(method='post', url=register_url, json=register_data, headers=headers)
        if register_json['code'] == 0:
            config.set('user', 'member_id', str(register_json['data']['id']))           # 回写配置文件,user id
            log.info(f'用户[{mobile_phone}]注册成功!')
            return True
        log.debug(f'注册失败:{register_json}')
        return False
    config.set('user', 'member_id', str(user_info['id']))   # 回写配置文件,user id
    return None
def add_loan():
    """新增并审核项目"""
    add_data = {"member_id": config.get("user", 'member_id'), "title": "小荔枝",
            "amount": 3000, "loan_rate": 3.2, "loan_term": 1, "loan_date_type": 1, "bidding_days": 1}
    headers = eval(config.get('api', 'headers'))
    token_info = login_1(session=request)
    token = token_info['token_type'] + ' ' + token_info['token']
    headers['Authorization'] = token
    add_res = request.get_json(method='post',
                               url=config.get('api', 'base_url') + config.get('api', 'add_url'),
                               json=add_data,
                               headers=headers)
    if add_res['code'] == 0:
        log.info('项目新增成功')
        """项目新增成功,审核项目"""
        admin = config.get('admin', 'mobile_phone')
        pwd = config.get('admin', 'password')
        is_register(admin, pwd, typ=0)
        audit_data = {"loan_id": add_res['data']['id'], "approved_or_not": "true"}
        token_info = login(session=request, phone=admin, pwd=pwd)
        headers['Authorization'] = token_info['token_type'] + ' ' + token_info['token']
        audit_res = request.get_json(method='PATCH',
                                     url=config.get('api', 'base_url') + config.get('api', 'audit_url'),
                                     json=audit_data,
                                     headers=headers)
        if audit_res['code'] == 0:
            log.info(f"{add_res['data']['id']}项目审核成功")
            return None
        log.error(f"{add_res['data']['id']}项目审核失败")
        return None
    log.error('新增项目失败')
    return None
 def setUp(self):
     # 初始化session
     self.session = HttpSessionHandler()
     # 登录账号,获取token_info
     token_info = login_1(self.session)
     token = token_info['token_type'] + ' ' + token_info['token']
     # 完善请求头
     self.headers['Authorization'] = token
     log.info(self.headers)
    def setUpClass(cls):
        cls.session = HttpSessionHandler()
        cls.url = config.get('api', 'base_url') + config.get('api', 'loans_url')
        cls.headers = eval(config.get('api', 'headers'))
        cls.headers.pop('Content-Type')

        token_info = login_1(cls.session)
        cls.headers['Authorization'] = token_info['token_type'] + ' ' + token_info['token']

        log.info(f'{cls.url}')
    def test_loans(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        if case_data['description'] == '未登录':
            self.headers.pop('Authorization')

        # 日志
        log.info(f'{self.headers}')
        log.info(f'{case_id},{method},{case_data["description"]},{json_data}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=self.url, params=json_data, headers=self.headers)
        log.info(f'result:{res_json}\n')

        # 获取excel_title
        excel_title = ex.get_headers()
        result_index = excel_title.index('result') + 1
        msg_index = excel_title.index('msg') + 1
        code_index = excel_title.index('code') + 1
        res_data_index = excel_title.index('res_data') + 1

        # 回写excel
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, res_json['code'])

        code = expected['code']
        if code == 1003:
            try:
                self.assertEqual(code, res_json['code'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        elif code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
        else:
            try:
                self.assertEqual(code, res_json['code'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
def login_1(session):
    """登录"""
    mobile_phone = config.get('user', 'mobile_phone')
    password = config.get('user', 'password')

    login_url = config.get('api', 'base_url') + config.get('api', 'login_url')
    headers = eval(config.get('api', 'headers'))
    login_data = {"mobile_phone": mobile_phone, "pwd": password}
    try:
        login_json = session.get_json(method='post', url=login_url, json=login_data, headers=headers)
    except Exception as e:
        log.error(e)
    else:
        if login_json['code'] == 0:
            log.info(f'用户{[mobile_phone]}登录成功!')
            return login_json['data']['token_info']
        else:
            log.info(f'用户{[mobile_phone]}登录失败!')
            return None
    def test_update(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 特殊数据处理
        if json_data['member_id'] == 'id':
            json_data['member_id'] = member_id
        elif json_data['member_id'] == 'wrong_id':
            json_data['member_id'] = member_id - 1

        # 日志记录
        log.info(f'{case_id},{method},{description},{json_data}')
        log.info(f'expected:{expected}')

        # 发送请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)
        # 日志记录
        log.info(f'result:{res_json}\n')

        # 获取sheet表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result') + 1
        msg_index = sheet_title.index('msg') + 1
        code_index = sheet_title.index('code') + 1
        res_data_index = sheet_title.index('res_data') + 1

        # 回写
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, str(res_json['code']))
        ex.write(case_id + 1, res_data_index, str(res_json['data']))

        code = expected['code']
        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 查询数据库用户信息
                user_info = get_user_info(member_id)

                self.assertEqual(user_info['reg_name'], res_json['data']['reg_name'])
                self.assertEqual(expected['reg_name'], res_json['data']['reg_name'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
    def test_audit(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        expected = eval(case_data['expected'])

        # 特殊数据处理
        ex_data = eval(deal(case_data['data']))
        mark_data = ex_data[0]
        json_data = ex_data[1]

        # 登录
        if mark_data['type'] == 1:
            # 普通用户登录
            token_info = login(session=self.session, phone=user, pwd=password)
            self.headers['Authorization'] = token_info['token_type'] + ' ' + token_info['token']
        else:
            # 管理员登录
            token_info = login(session=self.session, phone=admin, pwd=pwd)
            self.headers['Authorization'] = token_info['token_type'] + ' ' + token_info['token']
            if mark_data['type'] == 'not_login':
                self.headers.pop('Authorization')

        # 日志记录
        log.info(f'{self.headers}')
        log.info(f'{case_id},{method},{case_data["description"]},{json_data}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)
        log.info(f'result:{res_json}\n')

        # 获取excel_title
        excel_title = ex.get_headers()
        result_index = excel_title.index('result') + 1
        msg_index = excel_title.index('msg') + 1
        res_data_index = excel_title.index('res_data') + 1
        code_index = excel_title.index('code') + 1

        # 回写excel
        ex.write(case_id + 1, code_index, res_json['code'])
        ex.write(case_id + 1, msg_index, res_json['msg'])

        code = expected['code']
        if code == 1003:
            try:
                self.assertEqual(code, res_json['code'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        elif code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
        else:
            loan_info = get_loan_info(loan_id=json_data['loan_id'])
            log.info(f'loan_info:{loan_info}\n')
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['status'], loan_info['status'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Passed")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
    def test_recharge(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 对特殊数据进行处理
        if json_data['member_id'] == 'id':
            json_data['member_id'] = member_id
        elif json_data['member_id'] == 'wrong_id':
            json_data['member_id'] = member_id - 1

        # 获取账户充值前,数据库中存储的账户余额
        before_amount = get_leave_amount(member_id)

        # 日志记录
        log.info(f'{case_id},{method},{description},{json_data},before_amount:{before_amount}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)

        # 日志记录
        log.info(f'result:{res_json}\n')

        # 获取sheet 表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result')+1
        code_index = sheet_title.index('code')+1
        msg_index = sheet_title.index('msg')+1
        res_data_index = sheet_title.index('res_data')+1

        # 回写数据
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, str(res_json['code']))
        ex.write(case_id + 1, res_data_index, str(res_json['data']))

        code = expected['code']
        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id+1, result_index, "Failed")
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 预期充值成功后的账户余额
                expected_amount = before_amount + Decimal(json_data['amount']).quantize(Decimal("0.00"))

                # 获取充值成功后,数据库中存储的账户余额
                leave_amount = get_leave_amount(member_id)

                res_leave_amount = Decimal(res_json['data']['leave_amount']).quantize(Decimal("0.00"))

                # 比对数据库账户余额,与 返回账户余额
                self.assertEqual(leave_amount, res_leave_amount)
                self.assertEqual(expected_amount, res_leave_amount)
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
Beispiel #14
0
    def test_invest(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 特殊数据处理
        json_data = invest_json_data(json_data)
        if json_data['member_id'] == 'not_login':
            json_data['member_id'] = member_id
            self.headers.pop('Authorization')

        # 投资前的账户余额
        before_amount = get_leave_amount(member_id)

        log.info(f'headers:{self.headers}')
        log.info(f'{case_id},{method},{description},{json_data},before_amount:{before_amount}')
        log.info(f'expected:{expected}')

        # 发送请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)
        log.info(f'result:{res_json}\n')

        # 获取sheet表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result') + 1
        msg_index = sheet_title.index('msg') + 1
        code_index = sheet_title.index('code') + 1
        res_data_index = sheet_title.index('res_data') + 1

        # 回写
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, res_json['code'])

        code = expected['code']
        if code == 1003:
            try:
                self.assertEqual(code, res_json['code'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        elif code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
        else:
            try:
                self.assertEqual(code, res_json['code'])
                invest_id = res_json['data']['id']
                invest_info = get_invest_info(invest_id)

                # 预期结果 与 返回信息 对比
                self.assertEqual(json_data['member_id'], res_json['data']['member_id'])
                self.assertEqual(json_data['loan_id'], res_json['data']['loan_id'])
                self.assertEqual(json_data['amount'], res_json['data']['amount'])

                # 数据库 与 返回信息对比
                self.assertEqual(invest_info['member_id'], res_json['data']['member_id'])
                self.assertEqual(invest_info['loan_id'], res_json['data']['loan_id'])
                self.assertEqual(invest_info['amount'], Decimal(res_json['data']['amount']))

                # 投资成功,账号余额减少
                leave_amount = get_leave_amount(member_id)
                after_amount = before_amount - Decimal(json_data['amount']).quantize(Decimal("0.00"))
                log.info(f'expected_leave_amount:{after_amount}, leave_amount:{leave_amount}')
                self.assertEqual(after_amount, leave_amount)
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
 def setUpClass(cls):
     # 获取 配置文件中的请求地址url,请求头headers
     cls.url = config.get('api', 'base_url') + config.get('api', 'recharge_url')
     cls.headers = eval(config.get('api', 'headers'))
     log.info(cls.url)
Beispiel #16
0
    def test_withdraw(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 提现前,账户余额
        before_amount = get_leave_amount(member_id)

        # 特殊数据处理
        if json_data['member_id'] == 'id':
            json_data['member_id'] = member_id
        elif json_data['member_id'] == 'wrong_id':
            json_data['member_id'] = member_id - 1

        if json_data['amount'] == 'over_amount':
            amount = before_amount + Decimal(0.01).quantize(Decimal("0.00"))
            json_data['amount'] = float(amount)

        log.info(f'{case_id},{method},{description},{json_data},before_amount:{before_amount}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)

        # 日志记录
        log.info(f'result:{res_json}\n')

        # 获取sheet表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result') + 1
        msg_index = sheet_title.index('msg') + 1
        code_index = sheet_title.index('code') + 1
        res_data_index = sheet_title.index('res_data') + 1

        # 回写
        ex.write(case_id+1, msg_index, res_json['msg'])
        ex.write(case_id+1, code_index, str(res_json['code']))
        ex.write(case_id+1, res_data_index, str(res_json['data']))

        code = expected['code']
        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id+1, result_index, "Failed")
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 预期余额
                expected_amount = before_amount - Decimal(json_data['amount']).quantize(Decimal("0.00"))

                # 数据库实际余额
                leave_amount = get_leave_amount(member_id)

                # 提现接口返回账户余额
                res_amount = Decimal(res_json['data']['leave_amount']).quantize(Decimal("0.00"))

                # 数据库中账户余额 与 返回账户余额比对
                self.assertEqual(leave_amount, res_amount)

                # 提现后预期余额,与返回余额比对
                self.assertEqual(expected_amount, res_amount)
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
Beispiel #17
0
    def test_info(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        id_data = case_data['id']
        expected = eval(case_data['expected'])

        # info_url 接口地址拼接:/member/{member_id}/info
        if id_data == 'member_id':
            info_url = '/member/' + member_id + '/info'
        elif id_data == 'other_id':
            other_id = int(member_id) - 1
            info_url = '/member/' + str(other_id) + '/info'
        elif id_data == 'not_id':
            info_url = '/member/' + member_id + 's/info'
        elif id_data == 'None':
            info_url = '/member//info'
        else:
            info_url = f'/member/{id_data}/info'

        # 完整的接口地址
        url = self.base_url + info_url

        # 日志记录
        log.info(f'{case_id},{method},{description},{url},{self.headers}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=url, headers=self.headers)
        log.info(f'result:{res_json}\n')

        # 获取sheet表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result') + 1
        msg_index = sheet_title.index('msg') + 1
        code_index = sheet_title.index('code') + 1
        res_data_index = sheet_title.index('res_data') + 1

        # 回写
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, res_json['code'])
        ex.write(case_id + 1, res_data_index, str(res_json['data']))

        code = expected['code']
        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 获取数据库中用户信息
                user_info = get_user_info(member_id)
                self.assertEqual(user_info['mobile_phone'], res_json['data']['mobile_phone'])
                self.assertEqual(user_info['reg_name'], res_json['data']['reg_name'])
                self.assertEqual(user_info['type'], res_json['data']['type'])

                # 比对注册时间
                reg_time = (user_info['reg_time']).strftime("%Y-%m-%d %H:%M:%S.0")
                self.assertEqual(reg_time, res_json['data']['reg_time'])

                # 比对 账户余额
                leave_amount = Decimal(user_info['leave_amount']).quantize(Decimal("0.00"))
                res_amount = Decimal(res_json['data']['leave_amount']).quantize(Decimal("0.00"))
                self.assertEqual(leave_amount, res_amount)
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
Beispiel #18
0
    def test_loan_add(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        json_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 特殊数据处理
        if json_data['member_id'] == 'id':
            json_data['member_id'] = member_id
        elif json_data['member_id'] == 'other_id':
            json_data['member_id'] = member_id - 1
        elif json_data['member_id'] == 'not_login':
            json_data['member_id'] = member_id
            self.headers.pop('Authorization')
            log.info(self.headers)

        # 日志
        log.info(f'{case_id},{method},{description},{json_data}')
        log.info(f'expected:{expected}')

        # 发起请求
        res_json = self.session.get_json(method=method, url=self.url, json=json_data, headers=self.headers)
        log.info(f'result:{res_json}\n')

        # 获取sheet表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index('result') + 1
        msg_index = sheet_title.index('msg') + 1
        code_index = sheet_title.index('code') + 1
        res_data_index = sheet_title.index('res_data') + 1

        # 回写
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, res_json['code'])

        code = expected['code']
        if code == 1003:
            try:
                self.assertEqual(code, res_json['code'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
        elif code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 接口返回json的data
                res_data = res_json['data']
                res_amount = Decimal(res_data['amount']).quantize(Decimal("0.00"))
                res_rate = Decimal(res_data['loan_rate']).quantize(Decimal("0.000"))

                # 获取数据库中,项目信息
                loan_info = get_loan_info(res_data['id'])

                # 比对预期 和 返回结果
                self.assertEqual(member_id, res_data['member_id'])
                self.assertEqual(json_data['title'], res_data['title'])
                self.assertEqual(json_data['amount'], res_data['amount'])
                self.assertEqual(json_data['loan_rate'], res_data['loan_rate'])
                self.assertEqual(json_data['loan_term'], res_data['loan_term'])
                self.assertEqual(json_data['loan_date_type'], res_data['loan_date_type'])
                self.assertEqual(json_data['bidding_days'], res_data['bidding_days'])

                # 比对数据库信息 和返回信息
                self.assertEqual(loan_info['member_id'], res_data['member_id'])
                self.assertEqual(loan_info['title'], res_data['title'])
                self.assertEqual(Decimal(loan_info['amount']).quantize(Decimal("0.00")), res_amount)
                self.assertEqual(Decimal(loan_info['loan_rate']).quantize(Decimal("0.000")), res_rate)
                self.assertEqual(loan_info['loan_term'], res_data['loan_term'])
                self.assertEqual(loan_info['loan_date_type'], res_data['loan_date_type'])
                self.assertEqual(loan_info['bidding_days'], res_data['bidding_days'])

                ex.write(case_id + 1, result_index, "Pass")
            except AssertionError as e:
                ex.write(case_id + 1, result_index, "Failed")
                raise e
            finally:
                ex.write(case_id + 1, res_data_index, str(res_json['data']))
Beispiel #19
0
    def test_register(self, case_data):
        # 获取请求方法
        method = case_data['method']
        # 获取json参数
        json_data = eval(case_data['data'])

        # 特殊数据处理
        if json_data['mobile_phone'] == 'new_phone':
            json_data['mobile_phone'] = new_phone()
        elif json_data['mobile_phone'] == 'old_phone':
            # json_data['mobile_phone'] = old_phone()           # 两种方式二选一
            json_data['mobile_phone'] = config.get('user', 'old_phone')

        # 发起请求, 返回的是dict类型
        res_json = request.get_json(method=method, url=self.url, json=json_data, headers=self.headers)

        # expected
        expected = eval(case_data['expected'])
        code = expected['code']

        # 日志记录
        case_id = case_data['case_id']
        description = case_data['description']
        log.info(f"{case_id},{method},{description},{json_data}")
        log.info(f"expected:{expected}")
        log.info(f"result:{res_json}\n")

        sheet_title = ex.get_headers()
        ex.write(case_id+1, sheet_title.index('msg')+1, res_json['msg'])
        ex.write(case_id+1, sheet_title.index('code')+1, str(res_json['code']))
        ex.write(case_id+1, sheet_title.index('res_data')+1, str(res_json['data']))

        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id+1, sheet_title.index('result')+1, 'Pass')
            except AssertionError as e:
                ex.write(case_id+1, sheet_title.index('result')+1, 'Failed')
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])
                # 回写到配置文件
                config.set('user', 'old_phone', json_data['mobile_phone'])

                # 比对预期结果,与 返回信息
                self.assertEqual(expected['data']['reg_name'], res_json['data']['reg_name'])
                self.assertEqual(json_data['mobile_phone'], res_json['data']['mobile_phone'])

                # 比对预期结果,与 数据库值
                sql = "select * from member where id=%s;"
                user_info = self.db.fetchone(query=sql, args=[res_json['data']['id'], ])

                log.info(f'user_info:{user_info}\n')

                self.assertEqual(expected['data']['reg_name'], user_info['reg_name'])
                self.assertEqual(json_data['mobile_phone'], user_info['mobile_phone'])
                self.assertEqual(expected['data']['type'], user_info['type'])
                self.assertEqual(expected['data']['leave_amount'], user_info['leave_amount'])
                ex.write(case_id+1, sheet_title.index('result')+1, 'Pass')
            except AssertionError as e:
                ex.write(case_id+1, sheet_title.index('result')+1, 'Failed')
                raise e
Beispiel #20
0
    def test_login(self, case_data):
        case_id = case_data['case_id']
        method = case_data['method']
        description = case_data['description']
        dic_data = eval(case_data['data'])
        expected = eval(case_data['expected'])

        # 处理特殊数据
        if dic_data['mobile_phone'] == 'phone_num':
            dic_data['mobile_phone'] = mobile_phone
        elif dic_data['mobile_phone'] == 'wrong_phone':
            # dic_data['mobile_phone'] = old_phone()
            dic_data['mobile_phone'] = config.get('user', 'old_phone')

        if dic_data['pwd'] == 'password':
            dic_data['pwd'] = password
        elif dic_data['pwd'] == 'wrong_pwd':
            dic_data['pwd'] = password + 'w'

        # 发起请求
        res_json = request.get_json(method=method, url=self.url, json=dic_data, headers=self.headers)

        # 日志记录
        log.info(f'{case_id},{method},{description},{dic_data}')
        log.info(f'expected:{expected}')
        log.info(f'result:{res_json}\n')

        # 获取表头
        sheet_title = ex.get_headers()
        result_index = sheet_title.index("result")+1
        msg_index = sheet_title.index('msg')+1
        code_index = sheet_title.index('code')+1
        res_data_index = sheet_title.index('res_data')+1

        # 回写
        ex.write(case_id + 1, msg_index, res_json['msg'])
        ex.write(case_id + 1, code_index, str(res_json['code']))
        ex.write(case_id + 1, res_data_index, str(res_json['data']))

        code = expected['code']
        if code != 0:
            try:
                self.assertEqual(code, res_json['code'])
                self.assertEqual(expected['data'], res_json['data'])
                ex.write(case_id+1, result_index, 'Pass')
            except AssertionError as e:
                ex.write(case_id + 1, result_index, 'Failed')
                raise e
        else:
            try:
                self.assertEqual(code, res_json['code'])

                # 数据库信息 与 返回信息比对
                sql = "select * from member where id=%s;"
                user_info = self.db.fetchone(query=sql, args=[res_json['data']['id'], ])
                self.assertEqual(user_info['leave_amount'], res_json['data']['leave_amount'])
                self.assertEqual(user_info['mobile_phone'], res_json['data']['mobile_phone'])
                self.assertEqual(user_info['reg_name'], res_json['data']['reg_name'])
                self.assertEqual(user_info['type'], res_json['data']['type'])
                self.assertTrue(True, res_json['data']['token_info'])
                ex.write(case_id + 1, result_index, 'Pass')
            except AssertionError as e:
                ex.write(case_id + 1, result_index, 'Failed')
                raise e