协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
api-script-gen-with-apifoxmcp【开发与工程】接口自动化脚本生成器。根据用户描述,基于接口索引 knowledge-base/02-api-docs/api-index.md 定位接口,通过 Apifox MCP 实时拉取最新接口详情,在 api-auto-test 框架的 api/services/tests 三层内编写接口自动化脚本。支持单接口用例和多接口串联场景用例(需用户提供串联顺序),异常用例仅在用户明确要求时生成。触发词:"编写接口自动化"、"生成接口脚本"、"接口自动化用例"、"写个场景用例"、"接口串联"、"生成XX模块的自动化脚本"。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
根据用户描述生成接口自动化脚本。接口索引、框架位置与编写边界全部固定,见下文。
| 资源 | 路径 |
|---|---|
| 接口索引 | knowledge-base/02-api-docs/api-index.md(全部 ~270 个端点的路由→模块→ref 映射表) |
| 自动化框架 | api-auto-test/ |
| 编码规范 | 本 skill 的 references/coding_standards.md(编写代码前必读) |
重要:
read_project_oas_ijy213 读取全量接口。read_project_oas_ref_resources_ijy213 按 ref 路径实时拉取,确保参数和响应结构永远是最新的。api/、services/、tests/ 下新增或修改文件。
core/、config/、common/、utils/、conftest.py 一律只读复用,禁止改动。xxx_api.py / xxx_service.py 时在原文件内追加方法,
禁止新建重复文件;已有方法能满足需求时直接复用,禁止重写。
在列表/响应中按字段查找或提取嵌套字段时,复用 utils/jsonpath_utils
(jsonpath_first_match / jsonpath_get / jsonpath_find),
禁止在 service 层新增 find_xxx_in_list 这类专用查找方法。admin fixture,
禁止在用例中自行 AuthService().login(管理员账号) 重复登录;auth_service fixture,
禁止在用例中自行实例化 AuthService()。从用户描述中提取关键词(业务动作、资源名、模块名),搜索 knowledge-base/02-api-docs/api-index.md:
/api/devices/{id}/shelve/api/reservations/* 相关接口immediate-use 接口确认:
对第 1 步匹配到的每个接口,调用 Apifox MCP 拉取最新详情:
调用 read_project_oas_ref_resources_ijy213
path = 索引中 ref 列的值(如 /paths/_api_devices_shelve.json)
从返回的 OpenAPI schema 中提取:
- operationId / summary(接口功能描述)
- parameters(query/path/header 参数及必填性)
- requestBody(JSON schema,注意 camelCase 字段名)
- responses(成功响应的数据结构)
注意:
read_project_oas_ijy213 全量读取;api/、services/ 下是否已有该模块文件及可复用方法;references/coding_standards.md,严格按规范编码。UserContext,负责 snake_case→camelCase 字段映射、可选参数过滤、
body 拼装、parse_response 解析、数据提取;| 接口索引模块 | tests 目录 |
|---|---|
| user-auth | tests/auth/ |
| dashboard | tests/home/ |
| device-center(市场/查询类) | tests/market/ |
| device-center(生命周期/维护类)、operations | tests/op/ |
| my | tests/my/ |
| system-settings | tests/sys/ |
归属不确定时,参考已有测试文件位置;仍无法判断再询问用户。
在 api-auto-test/ 目录下执行采集检查(不实际调接口):
python -m pytest tests/<目录>/<新文件>.py --collect-only -q
采集通过(无导入/语法错误)即完成;如有报错先修复。除非用户明确要求,不要真正运行用例。
简要列出:新增/修改的文件、覆盖的接口(method + path)、用例清单(allure title)、
场景用例的串联顺序;如有依赖环境数据的 pytest.skip 条件一并说明。