fix(exchange,case_validator),refactor(),feat(model): 解决 Pydantic 模型初始化与变量占位符的类型冲突,优化变量替换逻辑,重构 CaseInfo 模型并引入延迟校验机制
- 引入 SmartInt 和 SmartDict 类型,支持 YAML 占位符与业务类型的自动转换。 - 优化 CaseInfo 互斥校验逻辑,确保 request 与 api_action 二选一。 - 统一使用 Pydantic V2 的 model_config 规范。 - 将变量替换时机提前至模型实例化之前,支持占位符在校验前完成真实值注入, 保证了 int/bool 等字段的类型转换正确性。 - 优化断言渲染时机,支持响应提取值关联。
This commit is contained in:
25
test_cases/po_model_test.yaml
Normal file
25
test_cases/po_model_test.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
feature: 用户管理
|
||||
story: 状态查询
|
||||
title: ${title} # 引用参数化里的变量
|
||||
epic: 混合模式示例
|
||||
|
||||
# 【关键改动】:不再写具体的 url, method, headers
|
||||
# 而是指定要调用的 API 类和方法
|
||||
api_action:
|
||||
class: UserAPI
|
||||
method: get_connector_info
|
||||
params: # 传给 get_connector_info 方法的参数
|
||||
username: ${username}
|
||||
password: ${password}
|
||||
|
||||
extract:
|
||||
msg: ["json", "$.msg", 0]
|
||||
|
||||
validate:
|
||||
equals:
|
||||
业务状态码校验: ["${msg}", "Success."]
|
||||
|
||||
parametrize:
|
||||
- ["title", "username", "password", "msg"]
|
||||
- ["测试1", "user1", "pass1", "Success."]
|
||||
- ["测试2", "user2", "pass2", "Fail."]
|
||||
Reference in New Issue
Block a user