playwright-cherry-pick
Cherry-pick a commit or PR from main into a release branch (release-<version>) and retitle it as cherry-pick(#<pr>): <original…
当前 test-automation 项目内置的接口自动化编写 skill,物理位置 `.claude/skills/api-test-E10/`。用于在 `\test-automation\E10自动化\接口自动化测试` 中新增、维护、补齐、迁移接口测试方法与 pytest 用例。触发场景包括:新增接口方法、新增接口测试用例、参考 Java Controller 源码或 Jacoco 报告补齐未覆盖接口、维护已有接口方法与用例、补齐参数化、修复接口断言、按指定位置插入代码、按 URL 查重复实现、处理 UTF-8 中文编码、执行 pytest
Claude Code
$ npx -y skills add buer2233/ai-api-test-skill --skill ai-api-test-skill --agent claude-code
Codex
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a codex -y
Cursor
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a cursor -y
Gemini CLI
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a gemini-cli -y
GitHub Copilot
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a github-copilot -y
OpenCode
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a opencode -y
Windsurf
$ npx skills add buer2233/ai-api-test-skill --skill ai-api-test-skill -a windsurf -y
name: api-test-E10 description: 当前 test-automation 项目内置的接口自动化编写 skill,物理位置 `.claude/skills/api-test-E10/`。用于在 `\test-automation\E10自动化\接口自动化测试` 中新增、维护、补齐、迁移接口测试方法与 pytest 用例。触发场景包括:新增接口方法、新增接口测试用例、参考 Java Controller 源码或 Jacoco 报告补齐未覆盖接口、维护已有接口方法与用例、补齐参数化、修复接口断言、按指定位置插入代码、按 URL 查重复实现、处理 UTF-8 中文编码、执行 pytest 并根据真实报错循环修复直到通过。运行时产物统一放在项目根 `api_test_dwp_temp/` 目录下。
随 `test-automation` 项目一起分发的接口自动化编写 skill,把已验证有效的编写习惯、问题处理方式和交付格式沉淀为稳定流程。当前 skill 把“新增”和“维护”拆成两条独立上下文路径,项目根直接由 skill 在 `<project>/.claude/skills/api-test-E10/` 的固定位置推导,运行时产物统一落在项目根的 `api_test_dwp_temp/` 目录下。
当任务涉及在 `E10自动化/接口自动化测试/` 内**新增或维护**接口测试方法/pytest 用例时,优先使用本 skill。同样适用于按 URL 查重、处理中文编码/导入路径/登录态/返回结构差异、根据真实 pytest 报错循环修复等场景。
任何进入接口自动化编写/维护的任务,AI **必须先确认任务类型**,再进入方式选择:
| 任务类型 | 适用场景 | 读取顺序 | |---|---|---| | 新增 | 新接口、新用例、补齐新链路 | 先读 `doc/preflight_gates_new.md`;门禁通过并选定方式后,再读 `doc/coding_style_guide.md` + 对应 `doc/mode_*.md` | | 维护 | 既有用例修复、接口方法调整、链路回溯、参数/断言更新 | 先读 `doc/preflight_gates_maintenance.md`;门禁通过并选定方式后,再读 `doc/coding_style_guide.md` + `doc/maintenance_prompt_context.md` + 对应 `doc/mode_maintenance_*.md` |
若任务类型未明确,先询问“新增还是维护”;若用户已明确表达“维护 / 修复 / 同步最新链路 / 回归更新”等信号,可直接推断为维护。
维护方式④(pytest 报错驱动)依赖两个外部 Skill:
| 依赖 Skill | 使用时机 | |---|---| | `/test-fixing` | 默认优先使用,用于根据 pytest 失败分组、定位根因、做最小补丁并循环验证 | | `/Debugging` | 仅在 `/test-fixing` 无法解决、维护遇到困难,或前后接口信息/调用栈/返回层级不明确时兜底使用;通过断点、执行堆栈、局部变量、请求 payload、接口响应和方法返回值辅助定位 |
进入任一种方式后,AI **必须先 Read 对应的方案文件**,再继续编写接口方法或用例:
| 方式 | 新增任务 | 维护任务 | |---|---|---| | ① 抓包驱动 | `doc/mode_capture_driven.md` | `doc/mode_maintenance_capture_driven.md` | | ② 参考已有用例 | `doc/mode_reference_case.md` | `doc/mode_maintenance_reference_case.md` | | ③ cURL 手工 | `doc/mode_curl_manual.md` | `doc/mode_maintenance_curl_manual.md` | | ④ Java Controller 源码参考 / pytest 报错驱动 | `doc/mode_java_controller_source.md` | `doc/mode_maintenance_pytest_driven.md` | | ⑤ API-TPL 驱动(git-diff-analyse 一期) | `doc/mode_api_tpl.md` | —(维护仍用方式④,目标来自 coverage `cases[]`) |
**硬性要求**:
Mermaid 源文件与导出 PNG 见 `flow_chart/` 目录,当前覆盖前置 hook、入口主流程、前置门禁、新增任务总览、新增四方式、维护任务总览、维护四方式和 pytest 闭环。
**⚠️ 编写任何接口方法或用例代码前,AI 必须先 Read [`doc/coding_style_guide.md`](./doc/coding_style_guide.md) 并严格遵守其中所有规范。**
该文件覆盖:接口方法结构/命名/payload/取值规则,用例结构/编排模式/参数化/断言风格,以及编写前必检清单(风格对齐、接口查重、编码校验)。
编写接口自动化时,优先以以下文件为第一参考(**风格模板,不是功能强绑定模板**):
如果用户指定了别的参考文件或明确要求"参考当前位置上下文",则以用户要求为先。
详见 [`doc/core_principles.md`](./doc/core_principles.md)。
出现失败时,按以下顺序排查:
1. **导入路径问题**:`ModuleNotFoundError` / `ImportError` / `No module named ...` 2. **编码问题**:中文变成成片问号乱码 / 文件解析失败 3. **装饰器误挂 / 插入位置错误** 4. **fixture / 前置依赖问题** 5. **登录态 / token / 会话问题** 6. **接口真实返回与断言不匹配** 7. **接口 payload 结构不匹配**:后端 SQL 报错、字段类型错误、列表/字符串结构不一致 8. **接口方法返回层级误判**:例如某些方法返回 `response["data"]`,不是完整 `response`
> 排查后若确定为环境/网络/登录/会话问题(非代码问题),上报用户并明确说明。
历史踩坑详见 [`doc/high_frequency_experience.md`](./doc/high_frequency_experience.md)(按需加载)。
完成任务后建议按以下结构输出:
【新增/维护接口用例】(N个) 用例名: 中文说明 【新增/维护接口方法】(N个) 方法名: 中文说明 pytest 执行命令 ... 关键日志 ... 报错与修复过程 ... 最终结果 ...
---
当你在当前仓库里做接口自动化编写时,把本文件视为**默认工作手册**。
面向 Python + pytest + requests 接口自动化项目的 AI Skill:让 Codex / Claude Code 按固定门禁、固定流程、固定 pytest 闭环来新增和维护接口自动化用例,流程图参考:flow_chart/flow.md。 它不是一个普通的提示词模板,而是一套可随仓库分发的工程化 Skill:会先校验任务信息,再按“抓包 / 参考用例 / cURL / Java Controller / pytest 报错”选择路径,最后把接口方法、接口用例和测试验证收敛到同一套规范里。
Cherry-pick a commit or PR from main into a release branch (release-<version>) and retitle it as cherry-pick(#<pr>): <original…
Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…
DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…