feature-link-test-writer
API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
GitHub Release 发布操作规范。在需要发布版本、上传安装包到 GitHub Release 时激活,确保使用正确的命令和流程。
确认/删除等交互弹框统一使用 showTolyPopPicker 底部弹出样式。在需要弹出确认框、删除确认、操作选择时激活,确保交互风格一致。
后端服务启动与数据库操作规范。在需要启动后端服务、运行 API 测试、执行数据库迁移或遇到连接错误时激活,确保使用正确的命令和流程。
功能归档规范。在归档功能版本、更新功能网、创建存档快照时激活,确保节点编号正确、网络图完整。
使用 tolyui_mediax 实现媒体预览。适用于图片九宫格展示、全屏预览、手势缩放、视频播放、Hero 动画等场景。
Flutter Widget/Page 组件代码评审技能。在需要审查组件代码质量、发现设计问题时激活,确保输出结构化的问题清单和改进建议。
| name | feature-link-test-writer |
| description | API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。 |
| metadata | {"model":"manual","last_modified":"Tue, 13 May 2026 00:00:00 GMT"} |
你是一名 API 测试链编写者。基于已有的后端接口(design.md 或 routes.rs),为指定功能模块编写测试链 Python 脚本,脚本运行后自动测试所有接口并生成接口文档。
{module}.py)docs/features/{feature}/api/
├── {module}/
│ ├── request/
│ │ └── {module}.py # Python 测试脚本
│ └── doc/
│ ├── 00_link.md # 大纲表格,可跳转到各接口文档
│ ├── 01_{name}.md # 接口文档(自动生成)
│ ├── 02_{name}.md
│ └── ...
├── {module2}/
│ ├── request/
│ │ └── {module2}.py
│ └── doc/
│ └── ...
└── ...
命名规则:
{feature} = 功能域(如 im/group){module} = 具体模块(如 group、conversation){name} = 接口简称(如 create_group、search)01_、02_...00_link.md 固定为大纲doc/ 目录每个脚本包含三部分:
subprocess 调用 curl.exe(Windows 自带,避免 Python requests 依赖)-s 静默模式,-w "\n%{http_code}" 获取状态码{"status": int, "body": str, "data": dict/list, "curl": str}curl 字段是完整可复制的 curl 命令(带真实 token)# ANSI 颜色
CYAN = "\033[36m"
GREEN = "\033[32m"
RED = "\033[31m"
YELLOW = "\033[33m"
RESET = "\033[0m"
def step(n, desc): print(f"{CYAN}========== [{n}] {desc} =========={RESET}") # 不加空行
def fail(msg): print(f"{RED}[FAIL] {msg}{RESET}"); sys.exit(1)
def ok(): print(f"{GREEN}[PASS]{RESET}")
write_doc(...) # 生成单个接口文档 md
write_link() # 生成 00_link.md 大纲
脚本放在 {module}/request/ 下,文档输出到 {module}/doc/:
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
DOCS_DIR = os.path.join(SCRIPT_DIR, "..", "doc")
os.makedirs(DOCS_DIR, exist_ok=True)
step(1, "POST /conversations - create private")
j = json.dumps({"peer_user_id": uid_b})
r = Curl.post(f"{BASE}/conversations", j, token_a)
if r["status"] != 200: fail(f"create failed: {r['status']}")
conv_id = r["data"]["id"]
print(f"conversation_id: {conv_id}")
ok()
write_doc("01_create_private.md", "POST", "/conversations",
"创建私聊会话。", j, r["status"], r["body"], token_a,
params_desc=[
{"name": "peer_user_id", "type": "int", "required": "是", "desc": "对方用户 ID"},
])
每个 NN_{name}.md 包含:
# {METHOD} {path}
{一句话中文描述}
## Parameters
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| peer_user_id | int | 是 | 对方用户 ID |
```json
{请求体}
{status_code}{实际响应}
{完整可执行的 curl 命令,带真实 token}
{备注}(可选)
关键要求:
- 描述和备注使用中文
- 有请求参数时,先展示参数表格,再展示 JSON 请求体
- curl 必须是完整可执行的,带真实 token
- Response 是实际运行的真实响应
- 错误场景的响应如果为空,写 `(empty body)`
## 00_link.md 格式
```markdown
# {module} - API test link
Base URL: `{base_url}`
| # | Interface | Status | Result | Doc |
|---|-----------|--------|--------|-----|
| 1 | `POST /conversations` | `200` | PASS | [01_create_private.md](01_create_private.md) |
| 2 | ... | ... | ... | ... |
如果模块需要认证,在 pre 步骤中:
现有模板文件:
docs/features/im/friend/api/friend/request/friend.pydocs/features/im/group/api/group/request/group.py编写新模块时,复制模板的 Curl 类和测试框架函数,只需替换测试步骤。
用户触发:/link-test-writer {module_name} {design.md路径或routes.rs路径}
AI 执行:
{module}.py