test-orchestrator
暂无简介
- License 许可
- Apache-2.0
- 最近更新
- 2026-10-18
- Stars
- ★ 581
- Forks
- 9
03 SKILL.md 正文
Skill: Test Orchestrator
基于业务场景和时序图设计 API 编排测试用例(Phase 3 Step 3b),覆盖正常/异常/边界场景,自动识别外部依赖并应用测试策略,作为端到端 API 验收标准。仅适用于涉及 API 的项目。
与 test-writer 的关系
本 Skill 负责测试金字塔的顶层——API 编排测试(HTTP 请求级别),执行于 Phase 3 Step 3b。
底层的单元测试和场景测试(函数调用级别)由 test-writer Skill 在 Step 3a 完成。Step 3a 是所有项目的必选步骤,Step 3b(本 Skill)仅在项目涉及 API 时执行。
触发条件
- 用户要求设计 API 编排测试
- 用户提到 "Phase 3 Step 3b"、"API 编排"、"编排测试"
- Step 3a(test-writer)完成后,AI 引导用户继续进入 Step 3b
- 用户需要验收已部署的 API 代码
前置依赖
logos/resources/test/中包含测试用例规格文档(Step 3a 已完成)logos/resources/prd/3-technical-plan/2-scenario-implementation/中包含场景时序图logos/resources/api/中包含 API 规格(OpenAPI YAML)logos-project.yaml中包含external_dependencies(如有)
如果项目不涉及 API(纯 CLI 工具、纯前端等),跳过此 Skill。
核心能力
- 从时序图和 API YAML 设计正常流程编排
- 基于异常用例(EX-N.M)设计异常流程编排
- 设计边界用例(合法但非主路径的变体)
- 定义变量提取和传递机制
- 识别外部依赖并应用测试策略:读取
logos-project.yaml的external_dependencies,在涉及外部服务的步骤中自动插入mock字段 - 执行编排并验证结果
执行步骤
Step 1: 读取场景上下文
读取以下文件建立完整上下文:
- 场景时序图(
logos/resources/prd/3-technical-plan/2-scenario-implementation/) - API YAML(
logos/resources/api/) logos-project.yaml—— 重点读取external_dependencies字段
Step 2: 识别外部依赖
将 external_dependencies 中的 used_in 与当前场景编号匹配。如果当前场景涉及外部依赖:
- 记录该依赖的
test_strategy和test_config - 如果某个依赖声明了
used_in但缺少test_strategy,主动询问用户测试策略
如果 logos-project.yaml 中没有 external_dependencies 字段,但时序图中存在对外部服务的调用(如发送邮件、请求支付等),也应主动提醒用户补充。
Step 3: 设计正常流程编排
按时序图的 Step 编号,逐步设计 API 调用链:
- 每步包含 method、url、headers、body、expected_status
- 涉及外部依赖的步骤,插入
mock字段(见输出规范) - 上一步响应中需要传递的变量,使用
extract定义提取规则
Step 4: 设计异常流程编排
为每个 EX 异常用例设计独立的编排,确保:
- 异常场景也能覆盖外部依赖的失败情况
- 使用
mock字段模拟外部服务异常(如超时、返回错误等)
Step 5: 设计边界用例编排
识别合法但非主路径的变体(如密码长度刚好在边界值、空字段等),补充编排。
Step 6: 输出编排 JSON
按场景输出可执行的编排 JSON 文件。
输出规范
- 文件格式:JSON
- 存放位置:
logos/resources/scenario/ - 按场景分文件:
user-auth.json、payment-flow.json - 编排中的每一步对应时序图的 Step 编号
mock 字段结构
当某一步涉及外部依赖时,在该 step 中添加 mock 字段:
{
"step": "Step 2: 获取邮件验证码",
"mock": {
"dependency": "邮件服务",
"strategy": "test-api",
"config": "GET /api/test/latest-email?to={email}",
"extract": { "code": "response.body.code" }
},
"method": "GET",
"url": "/api/test/latest-email?to={{email}}",
"expected_status": 200,
"extract": {
"verification_code": "body.code"
}
}
mock 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
dependency |
string | 对应 external_dependencies 中的 name |
strategy |
string | 测试策略(test-api / fixed-value / env-disable / mock-callback / mock-service) |
config |
string | 测试策略的具体配置,来自 test_config |
extract |
object | 从 mock 响应中提取变量(可选) |
不同策略的编排表现:
test-api:该步骤的 url 替换为后门 API 地址fixed-value:该步骤不发起实际请求,直接在extract中注入固定值env-disable:该步骤标记为跳过,附带注释说明前提条件mock-callback:在前一步完成后插入一个额外的 mock 回调请求mock-service:该步骤的 url 替换为本地 mock 服务地址
实践经验
- 正常编排是骨架:先完成正常流程编排,确保主路径可以跑通
- 异常编排是保障:每个外部调用至少 1 个异常编排
- 变量传递:前一步的响应中提取变量(如 token、user_id),传给后续步骤
- 测试数据:编排开始前准备测试数据,结束后清理,保证幂等性
- 并发测试:关键场景需要考虑并发情况(如:两人同时注册同一邮箱)
- 外部依赖先查清单:开始设计编排前先读
logos-project.yaml的external_dependencies,没有声明的外部调用要主动提醒用户补充 - mock 策略不要自行决定:测试策略由 S12 技术架构设计(Phase 3 Step 0, architecture-designer)确定,编排测试阶段只负责消费,不要擅自更改
- 与
openlogos verify的关系:API 编排测试也可产出与spec/test-results.md相同格式的 JSONL 结果。编排测试运行后,结果同样写入logos/resources/verify/test-results.jsonl,openlogos verify统一读取并判定验收
推荐提示词
以下提示词可以直接复制给 AI 使用:
帮我设计编排测试基于 API 规格帮我生成 S01 的编排测试帮我把所有场景的正常路径编排出来帮我给 S02 补充异常路径的编排测试
04 同仓库更多 Skills
ui-ux-pro-max
UI/UX design intelligence. 67 styles, 96 palettes, 57 font pairings, 25 charts, 13 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples.
test-writer
暂无简介
test-orchestrator
暂无简介
slice-planner
暂无简介
scenario-architect
暂无简介
project-init
暂无简介