61 lines
2.5 KiB
Python
61 lines
2.5 KiB
Python
# -*- coding: utf-8 -*-
|
||
# @Time : 2023/12/18 9:16
|
||
# @Author : floraachy
|
||
# @File : case_denpence_handle
|
||
# @Software: PyCharm
|
||
# @Desc:
|
||
|
||
# 第三方库导入
|
||
import allure
|
||
from loguru import logger
|
||
# 本地应用/模块导入
|
||
from utils.requests_utils.api_workflow import get_api_data, api_work_flow
|
||
from utils.data_utils.data_handle import data_handle
|
||
from config.path_config import INTERFACE_DIR
|
||
from config.global_vars import GLOBAL_VARS
|
||
|
||
|
||
def case_dependence_handle(case_dependence, source):
|
||
"""
|
||
处理用例依赖,支持接口依赖,环境变量依赖,SQL依赖。关键字:interface, sql, env_vars
|
||
"""
|
||
if case_dependence is None:
|
||
logger.debug(f"跳过用例依赖处理 --> case_dependence={case_dependence}")
|
||
return
|
||
if case_dependence.get("interface"):
|
||
interfaces = case_dependence["interface"]
|
||
if isinstance(interfaces, str):
|
||
api_data = get_api_data(api_file_path=INTERFACE_DIR, key=interfaces)
|
||
with allure.step(f"依赖接口:{api_data['title']}({interfaces})"):
|
||
result = api_work_flow(req_data=api_data, source=source)
|
||
GLOBAL_VARS.update(result)
|
||
|
||
elif isinstance(interfaces, list):
|
||
for interface in interfaces:
|
||
api_data = get_api_data(api_file_path=INTERFACE_DIR, key=interface)
|
||
with allure.step(f"依赖接口:{api_data['title']}({interface})"):
|
||
result = api_work_flow(req_data=api_data, source=source)
|
||
GLOBAL_VARS.update(result)
|
||
else:
|
||
logger.warning(f"依赖接口格式错误,跳过依赖接口处理~ --> interface 仅支持str和list格式")
|
||
|
||
else:
|
||
logger.warning(f"依赖接口为空,跳过依赖接口处理~")
|
||
|
||
# 依赖SQL处理
|
||
if case_dependence.get("sql"):
|
||
logger.warning(f"暂时不支持依赖sql处理,后续更新")
|
||
pass
|
||
|
||
# 环境变量处理
|
||
if case_dependence.get("env_vars"):
|
||
if isinstance(case_dependence["env_vars"], dict):
|
||
for key, value in case_dependence["env_vars"].items():
|
||
new_value = data_handle(value, GLOBAL_VARS)
|
||
with allure.step(f"依赖环境变量 --> {key}={new_value}"):
|
||
GLOBAL_VARS.update({key: new_value})
|
||
else:
|
||
logger.warning(f"依赖环境变量格式错误,跳过依赖环境变量处理~ --> env_vars仅支持dict格式")
|
||
else:
|
||
logger.warning(f"依赖环境变量为空,跳过依赖环境变量处理~")
|