Testany 流水线管理
管理 Testany 测试流水线:创建、编排用例、配置依赖和变量传递。
用户输入: $ARGUMENTS
职责范围
- •创建和配置测试流水线
- •设置用例执行顺序和依赖关系
- •配置 Output Relay(变量传递)
- •验证 pipeline YAML 语法
核心知识
Pipeline YAML 结构
yaml
kind: rule/v1.2
spec:
rules:
- run: 'A1B2C3D4' # 第一个 case(无依赖)
- run: 'E5F6A7B8'
whenPassed: 'A1B2C3D4' # 仅当 A1B2C3D4 通过时执行
relay:
- key: AUTH_TOKEN # 本 case 中接收变量名
refKey: A1B2C3D4/TOKEN # 来源:case_key/变量名
nonSecret: true
Rule 字段说明
| 字段 | 必填 | 说明 |
|---|---|---|
run | 是 | Case Key(8位大写十六进制) |
whenPassed | 否 | 前置 case 必须通过 |
whenFailed | 否 | 前置 case 必须失败(与 whenPassed 互斥) |
expect | 否 | 设为 fail 可反转结果判定 |
relay | 否 | 变量传递配置 |
Relay 约束(重要)
配置 relay 前,必须验证:
code
验证流程: 1. testany_get_case 获取 run 对应的 case → 检查 case_meta.environment_variables → relay.key 必须存在且 type='env' 2. testany_get_case 获取 refKey 中的源 case → 检查 case_meta.environment_variables → refKey 中的变量必须存在且 type='output'
| 约束 | 要求 |
|---|---|
relay.key | 必须在 run case 中定义,type='env' |
relay.refKey | 变量必须在 源 case 中定义,type='output' |
| 依赖顺序 | 引用的 case 必须在 rules 数组中之前定义 |
依赖规则
- •
whenPassed和whenFailed不能同时出现 - •被引用的 case 必须在 rules 中先定义(DAG 约束)
- •每个 rule 只能依赖一个 case
工作流程
- •理解需求:用户想组合哪些 case?有什么依赖关系?
- •获取 case 信息:
testany_list_cases或testany_get_case - •验证 relay(如有):检查源和目标 case 的环境变量配置
- •构建 YAML:按依赖顺序排列 rules
- •创建 pipeline:
testany_create_pipeline - •验证语法(可选):
testany_verify_pipeline
常见编排模式
顺序执行(无依赖)
yaml
rules: - run: 'A1B2C3D4' - run: 'E5F6A7B8' - run: 'C9D0E1F2'
链式依赖
yaml
rules:
- run: 'A1B2C3D4' # Login
- run: 'E5F6A7B8'
whenPassed: 'A1B2C3D4' # Get Profile (需要登录成功)
- run: 'C9D0E1F2'
whenPassed: 'E5F6A7B8' # Update Profile (需要获取成功)
带 Relay 的链式
yaml
rules:
- run: 'A1B2C3D4' # Login → 输出 TOKEN
- run: 'E5F6A7B8'
whenPassed: 'A1B2C3D4'
relay:
- key: AUTH_TOKEN # 接收变量
refKey: A1B2C3D4/TOKEN # 来源变量
返回格式
任务完成后,向用户汇报:
- •Pipeline Key
- •Pipeline 名称
- •包含的 Case 数量和执行顺序
- •Relay 配置摘要(如有)
- •下一步建议(如"可以执行 pipeline 或设置定时计划")
参考文档
详细语法请参考: