优化allure步骤,及部分代码

This commit is contained in:
zy7y 2021-05-17 18:29:38 +08:00
parent 2f97664f84
commit c8161ea594
3 changed files with 18 additions and 18 deletions

View File

@ -9,9 +9,8 @@
""" """
import requests import requests
from tools import allure_step, allure_title, logger, extractor from tools import allure_step, allure_title, logger, allure_step_no
from tools.data_process import DataProcess from tools.data_process import DataProcess
from tools.read_file import ReadFile
class BaseRequest(object): class BaseRequest(object):
@ -19,6 +18,10 @@ class BaseRequest(object):
@classmethod @classmethod
def get_session(cls): def get_session(cls):
"""
单例模式保证测试过程中使用的都是一个session对象
:return:
"""
if cls.session is None: if cls.session is None:
cls.session = requests.Session() cls.session = requests.Session()
return cls.session return cls.session
@ -36,24 +39,18 @@ class BaseRequest(object):
# allure报告 用例标题 # allure报告 用例标题
allure_title(case_title) allure_title(case_title)
# 处理url、header、data、file、的前置方法 # 处理url、header、data、file、的前置方法
url = ReadFile.read_config( url = DataProcess.handle_path(path, env)
f'$.server.{env}') + DataProcess.handle_path(path)
allure_step('请求地址', url)
header = DataProcess.handle_header(header) header = DataProcess.handle_header(header)
allure_step('请求头', header)
data = DataProcess.handle_data(data) data = DataProcess.handle_data(data)
allure_step('请求', data) allure_step('请求', data)
file = DataProcess.handler_files(file_obj) file = DataProcess.handler_files(file_obj)
allure_step('上传文件', file_obj)
# 发送请求 # 发送请求
res = cls.send_api(url, method, parametric_key, header, data, file) response = cls.send_api(url, method, parametric_key, header, data, file)
allure_step('响应耗时(s)', res.elapsed.total_seconds())
allure_step('响应内容', res.json())
# 保存用例的实际响应 # 保存用例的实际响应
if is_save == "": if is_save == "":
DataProcess.save_response(case_number, res.json()) DataProcess.save_response(case_number, response)
allure_step('存储实际响应', DataProcess.response_dict) return response, expect, sql
return res.json(), expect, sql
@classmethod @classmethod
def send_api( def send_api(
@ -63,7 +60,7 @@ class BaseRequest(object):
parametric_key, parametric_key,
header=None, header=None,
data=None, data=None,
file=None) -> object: file=None) -> dict:
""" """
:param method: 请求方法 :param method: 请求方法
:param url: 请求url :param url: 请求url
@ -99,6 +96,9 @@ class BaseRequest(object):
else: else:
raise ValueError( raise ValueError(
'可选关键字为params, json, data') '可选关键字为params, json, data')
response = res.json()
logger.info( logger.info(
f'\n最终请求地址:{res.url}\n请求方法:{method}\n请求头:{header}\n请求参数:{data}\n上传文件:{file}\n响应数据:{res.json()}') f'\n最终请求地址:{res.url}\n请求方法:{method}\n请求头:{header}\n请求参数:{data}\n上传文件:{file}\n响应数据:{response}')
return res allure_step_no(f'响应耗时(s): {res.elapsed.total_seconds()}')
allure_step('响应结果', response)
return response

View File

@ -36,7 +36,7 @@ database:
user: root user: root
# 不用''会被解析成int类型数据 # 不用''会被解析成int类型数据
password: '123456' password: '123456'
db_name: test db_name: apiautotest
charset: utf8mb4 charset: utf8mb4
# 数据库所在的服务器配置 # 数据库所在的服务器配置

Binary file not shown.