def test_register(self, item): logger.info(f"正在执行{item.api}接口的第{item.case_id}条测试用例--{item.title}") new_method = item.method new_url = do_read_yaml.read_config("requests", "url") + item.url new_data = eval(do_handle_params.handle_params(item.data)) if item.title == "缺少必要的请求头": # 为测试用例缺少必要的请求头准备 headers = None else: headers = do_read_yaml.read_config("requests", "headers") result = self.do_requests.http_requests(method=new_method, url=new_url, data=new_data, headers=headers) row = item.case_id + 1 column = do_excel.get_title().index( do_read_yaml.read_config("excel", "result_column")) + 1 actul_column = do_excel.get_title().index( do_read_yaml.read_config("excel", "actul_column")) + 1 pass_value = do_read_yaml.read_config("excel", "pass_value") fail_value = do_read_yaml.read_config("excel", "fail_value") try: self.assertEqual( eval(item.expected)["code"], result.json()["code"]) except AssertionError as e: logger.error( f"正在执行{item.api}接口的第{item.case_id}条测试用例--{item.title}执行失败,异常为{e}" ) do_excel.write_data(row, column, fail_value) raise e else: logger.info(f"测试用例执行成功--{item.title}") do_excel.write_data(row, column, pass_value) finally: # 写入测试实际结果 do_excel.write_data(row, actul_column, result.text) # 设置单元格背景颜色 do_excel.write_color()
def test_add(self, item): global token # 声明全局变量 logger.info(f"正在执行{item.api}接口的第{item.case_id}条测试用例--{item.title}") # 最终的url地址 new_url = do_read_yaml.read_config("requests", "url") + item.url # 经过转化的最终数据 new_data = do_handle_params.handle_params(item.data) # 添加请求头 if item.title == "缺少必要的请求头": # 为测试用例缺少必要的请求头准备 headers = None else: headers = do_read_yaml.read_config("requests", "headers") # 请求头中添加token headers.update(token) if " 充值成功" in item.title: # 获取充值前金额: self.before_value = float( do_mysql.read_mysql(do_read_yaml.read_config("mysql", "recharge_sql"), phone=item.data["mobile_phone"])[ "leave_amount"]) do_mysql.close() # 发起请求 result = self.do_requests.http_requests(method=item.method, url=new_url, data=new_data, headers=headers) if " 充值成功" in item.title: # 获取充值后金额: after_value = float( do_mysql.read_mysql(do_read_yaml.read_config("mysql", "recharge_sql"), phone=item.data["mobile_phone"])[ "leave_amount"]) try: self.assertEqual(eval(item.data)["amount"], float(after_value) - float(self.before_value)) except AssertionError as e: logger.error(f"充值后,数据库中数据异常!{e}") raise e do_mysql.close() row = item.case_id + 1 column = do_excel.get_title().index(do_read_yaml.read_config("excel", "result_column")) + 1 actul_column = do_excel.get_title().index(do_read_yaml.read_config("excel", "actul_column")) + 1 pass_value = do_read_yaml.read_config("excel", "pass_value") fail_value = do_read_yaml.read_config("excel", "fail_value") try: self.assertEqual(eval(item.expected)["code"], result.json()["code"]) self.assertEqual(eval(item.expected)["msg"], result.json()["msg"]) except AssertionError as e: logger.error(f"正在执行{item.api}接口的第{item.case_id}条测试用例--{item.title}执行失败,异常为{e}") do_excel.write_data(row, column, fail_value) raise e else: logger.info(f"测试用例执行成功--{item.title}") do_excel.write_data(row, column, pass_value) finally: do_excel.write_data(row, actul_column, result.text) do_excel.write_color() # 如果是正常登录用例,则更新到全局变量token中 if "正常登录" in item.title: token["Authorization"] = "Bearer " + result.json()["data"]["token_info"]["token"]