feat(executor): 重构用例加载与执行逻辑,支持参数化变量优先级
- 引入 CaseEntity 包装器,实现数据模型与执行上下文解耦。 - 移除加载阶段的 deepcopy,优化大规模参数化用例的内存占用。 - 实现 perform 阶段的局部变量注入,确保参数化数据优先级高于全局缓存。
This commit is contained in:
@@ -12,25 +12,30 @@ request:
|
||||
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0
|
||||
Referer: http://119.91.19.171:40065/users/login
|
||||
Accept-Encoding: gzip, deflate
|
||||
json_body: { username:${ username },password:${ password } }
|
||||
extract: # 提取变量
|
||||
msg:
|
||||
- "json"
|
||||
- "$.msg"
|
||||
- 0
|
||||
|
||||
validate:
|
||||
- check: status_code # 检查的对象(或是变量名)
|
||||
assert: equals # 断言方法
|
||||
expect: 200 # 期望值
|
||||
msg: "校验接口状态码" # 描述(可选)
|
||||
|
||||
- check: $.msg
|
||||
assert: contains
|
||||
expect: "Success"
|
||||
validate:
|
||||
- check: status_code
|
||||
assert: ${status_assert} # <--- 动态断言方法
|
||||
expect: ${status_expect} # <--- 动态期望值
|
||||
msg: "校验接口状态码"
|
||||
|
||||
- check: message
|
||||
assert: ${msg_assert} # <--- 动态断言方法
|
||||
expect: ${msg_expect} # <--- 动态期望值
|
||||
msg: "检查返回消息"
|
||||
|
||||
parametrize: # 数据驱动测试
|
||||
- [ "title","username","password","msg" ] # 变量名
|
||||
- [ "测试1","user1","pass1","200" ] # 变量值
|
||||
- [ "测试2","user2","pass2","300" ] # 变量值
|
||||
- [ "测试3","user3","pass3","200" ] # 变量值
|
||||
- [ "测试4","user4","pass4","200" ] # 变量值
|
||||
# 定义列名,包括了断言方法和期望值
|
||||
- [ "title", "username", "password", "status_assert", "status_expect", "msg_assert", "msg_expect" ]
|
||||
# 定义每一行的数据,现在可以为每次运行指定不同的断言逻辑
|
||||
- [ "场景1: 成功-状态码相等-消息包含Success", "user1", "pass1", "equals", 200, "contains", "Success" ]
|
||||
- [ "场景2: 失败-状态码不相等-消息不包含Error", "user2", "pass2", "not_equals", 200, "not_contains", "Error" ]
|
||||
- [ "场景3: 成功-状态码大于199-消息相等", "user3", "pass3", "greater_than", 199, "equals", "Success" ]
|
||||
- [ "场景4: 失败-状态码小于500-消息为空", "user4", "pass4", "less_than", 500, "is_empty", "" ]
|
||||
Reference in New Issue
Block a user