← ClaudeAtlas

api-test-suite-builderlisted

当需要为 REST API 批量补齐集成/契约测试时使用;扫描 Next.js/Express/FastAPI/Django REST 路由并生成覆盖鉴权、入参校验、错误码、分页、文件上传、限流的可运行测试套件(Vitest+Supertest 或 Pytest+httpx);不适用于纯前端 UI、单元测试或 GraphQL/gRPC;触发词:生成 API 测试、集成测试套件、契约测试
findscripter/everything-skills · ★ 0 · API & Backend · score 68
Install: claude install-skill findscripter/everything-skills
## 何时使用 适用: - 新增 API:实现前先生成测试脚手架,走 TDD。 - 遗留无测试的 API:扫描路由,补齐基线覆盖。 - 契约评审:核对现有测试是否与当前路由定义一致。 - 发版前回归:确保每条���由至少有冒烟测试。 - 安全审计准备:生成对抗性入参(注入、越权、超限)测试。 支持的框架:Next.js App Router、Express、FastAPI、Django REST Framework。 产物形态:Node 端 Vitest + Supertest;Python 端 Pytest + httpx。 不该用(负边界): - 纯前端 UI / 组件渲染测试(用 E2E 或组件测试工具)。 - 函数级单元测试(本技能聚焦端到端的接口行为)。 - 非 REST 协议:GraphQL、gRPC、WebSocket 不在覆盖范围。 - 性能/压测(限流测试只验证 429 行为,不做吞吐基准)。 ## 步骤 1. 扫描路由:用下方命令枚举全部端点及其 HTTP 方法,形成路由清单。 2. 阅读每个 handler,明确:请求体 schema、鉴权要求(中间件/装饰器)、返回类型与状态码、业务规则(归属权、角色校验)。 3. 按路由分组生成测试文件,套用「鉴权矩阵」「入参校验矩阵」。 4. 测试命名描述化:`returns 401 when token is expired`,而非 `auth test 3`。 5. 测试数据一律用工厂/fixture,绝不硬编码 ID。 6. 断言响应结构(字段、形状),而不仅是状态码;并断言敏感字段(password、secret)不出现在响应中。 ## 指令 路由探测(按框架选用): Next.js App Router: ```bash find ./app/api -name "route.ts" | while read f; do route=$(echo $f | sed 's|./app||' | sed 's|/route.ts||') methods=$(grep -oE "export (async )?function (GET|POST|PUT|PATCH|DELETE)" "$f" | \ grep -oE "(GET|POST|PUT|PATCH|DELETE)") echo "$methods $route" done ``` Express: ```bash grep -rn "router\.\|app\." src/ --include="*.ts" | \ grep -oE "\.(get|post|put|delete|patch)\(['\"][^'\"]+['\"]" | \ sed "s/\.\(.*\)('\(.*\)'/\U\1 \2/" ``` FastAPI: ```bash grep -rn "@\(app\|router\)\.\(get\|post\|put\|delete\|patch\)" . --include="*.py" | \ grep -oE "@(app|router)\.(get|post|put|delete|patch)\(['\"][^'\"]*['\"]" ``` Django REST: ```bash grep -rn "path\|re_path\|url(" . --include="*.py" | grep "urlpatterns"