AgentSkillsCN

pipeline

管理 Testany 流水线——创建、编排用例,配置依赖关系与变量传递。

SKILL.md
--- frontmatter
name: pipeline
description: 管理 Testany 流水线 - 创建、编排用例、配置依赖和变量传递

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 字段说明

字段必填说明
runCase 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 数组中之前定义

依赖规则

  1. whenPassedwhenFailed 不能同时出现
  2. 被引用的 case 必须在 rules 中先定义(DAG 约束)
  3. 每个 rule 只能依赖一个 case

工作流程

  1. 理解需求:用户想组合哪些 case?有什么依赖关系?
  2. 获取 case 信息testany_list_casestestany_get_case
  3. 验证 relay(如有):检查源和目标 case 的环境变量配置
  4. 构建 YAML:按依赖顺序排列 rules
  5. 创建 pipelinetestany_create_pipeline
  6. 验证语法(可选):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 或设置定时计划")

参考文档

详细语法请参考: