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)
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)
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
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)
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
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
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']))
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
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