- 引入 SmartInt 和 SmartDict 类型,支持 YAML 占位符与业务类型的自动转换。 - 优化 CaseInfo 互斥校验逻辑,确保 request 与 api_action 二选一。 - 统一使用 Pydantic V2 的 model_config 规范。 - 将变量替换时机提前至模型实例化之前,支持占位符在校验前完成真实值注入, 保证了 int/bool 等字段的类型转换正确性。 - 优化断言渲染时机,支持响应提取值关联。
39 lines
842 B
Python
39 lines
842 B
Python
#!/usr/bin/env python
|
|
# coding=utf-8
|
|
|
|
"""
|
|
@desc: Pytest 配置文件,用于设置全局 Fixture 和钩子函数
|
|
"""
|
|
|
|
import pytest
|
|
from pathlib import Path
|
|
import logging
|
|
|
|
from core import settings
|
|
from commons.files import YamlFile
|
|
from core.models import CaseInfo
|
|
from core.session import Session
|
|
from core.exchange import Exchange
|
|
from core.settings import EXTRACT_CACHE
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def session():
|
|
"""全局共享的 Session Fixture"""
|
|
return Session(settings.base_url)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def exchanger():
|
|
"""全局共享的 Exchange Fixture"""
|
|
return Exchange(EXTRACT_CACHE)
|
|
|
|
|
|
# @pytest.fixture(scope="session")
|
|
# def case_engine(session, exchanger):
|
|
# """全局共享的 CaseEngine Fixture"""
|
|
# return CaseEngine(session, exchanger)
|
|
|
|
|