api-testcase-generator
Skill48 starsChanged 2 months agoMITView on GitHub
API接口自动化测试用例生成器 - 根据Swagger/OpenAPI文档生成接口测试用例与自动化脚本。
- Installs packages
In this repository15 other files it gives its agents.
- api-index-sync-apifoxmcpSkill
- api-script-gen-with-apifoxmcpSkill
- defect-report-generatorSkill
- docxSkill
- fireworks-tech-graphSkill
- knowledge-base-managerSkill
- pdfSkill
- requirement-auditorSkill
- skill-creatorSkill
- testcase-generatorSkill
- testcase-reviewSkill
- wechat-article-rewriterSkill
- wechat-article-writerSkill
- wechat-multi-article-rewriterSkill
- xlsxSkill
The file
Files
API接口自动化测试用例生成器
快速参考
输入格式
| 类型 | 支持格式 |
| Swagger/OpenAPI | .json, .yaml, .yml |
| 在线文档 | 任意可访问的Swagger URL |
输出格式
| 格式 | 文件后缀 | 适用场景 |
| Pytest + Requests | .py | Python自动化测试框架 |
| Postman Collection | .json | 手动/API测试 |
| JMeter | .jmx | 性能/接口测试 |
| Excel 用例 | .xlsx | 用例评审/管理 |
用例类型
| 类型 | 说明 |
| 单接口测试 | 每个接口独立测试 |
| 场景链路测试 | 多接口按业务链路串联 |
| 正向测试 | 正常业务流程验证 |
| 异常测试 | 错误参数、越权、超时等 |
核心功能
1. Swagger/OpenAPI 解析
自动解析 Swagger/OpenAPI 文档,提取:
- 接口路径 (Paths) 与 HTTP 方法
- 请求参数 (Query/Body/Path/Header)
- 响应状态码与 Schema
- 认证方式 (Bearer Token, API Key, OAuth2)
2. 场景链路生成
自动分析:
- 通过响应 Schema 中的 ID 字段与路径参数匹配推断依赖
- 识别 CRUD 模式(Create → Read → Update → Delete)
- 识别认证链路(Login → Business API → Logout)
手动指定:
- 执行过程中询问用户是否需要补充/调整场景链路
- 支持用户自定义接口调用顺序与数据传递规则
3. 断言策略
默认断言:
- HTTP 状态码匹配(2xx/4xx/5xx)
- 响应 Content-Type 校验
业务断言规则库(references/assertion-rules.md):
- 创建资源 → 调用查询接口确认存在
- 更新资源 → 调用查询接口确认变更
- 删除资源 → 调用查询接口确认不存在(404)
- 列表查询 → 响应为数组且包含操作项
- 登录 → 响应包含 Token 且后续请求认证通过
自定义断言:
- 支持用户通过注释或规则文件扩展断言
4. 多格式输出
根据用户需求或项目现有框架选择输出格式:
- Pytest: 生成可直接运行的 Python 测试代码,支持 conftest.py 配置
- Postman: 生成 Collection v2.1 格式,含 Tests 断言脚本
- JMeter: 生成 JMX 文件,含断言与变量传递
- Excel: 生成标准测试用例文档,含步骤、预期结果、优先级
工作流程
1. 解析 Swagger → 提取接口定义与模型
2. 分析依赖 → 自动推断接口调用链路
3. 询问用户 → 确认/补充场景与输出格式
4. 加载断言规则 → 应用状态码与业务断言
5. 生成测试用例 → 按选定格式输出文件详细步骤
步骤 1:解析 Swagger
读取用户提供的 Swagger JSON/YAML 或 URL,调用脚本解析:
python scripts/swagger_parser.py --input swagger.json --output parsed_api.json输出 parsed_api.json 包含:
- 接口列表(路径、方法、参数、响应)
- 模型定义(Schema)
- 自动推断的依赖关系
步骤 2:分析与询问
加载 parsed_api.json 后,向用户展示:
- 识别到的接口数量与模块分布
- 自动推断的场景链路(如 CRUD、登录流程)
- 询问是否需要:
- 调整/补充场景链路
- 选择输出格式(Pytest/Postman/JMeter/Excel)
- 指定现有测试框架路径(用于适配)
步骤 3:生成测试用例
确认需求后,调用生成脚本:
python scripts/generate_testcases.py \
--input parsed_api.json \
--format pytest \
--scenarios scenarios.json \
--output ./api_tests/参数说明:
--input: 解析后的 API JSON 文件--format: 输出格式(pytest,postman,jmeter,excel)--scenarios: 场景链路配置 JSON(可选,默认使用自动分析结果)--output: 输出目录
断言规则库
参考 references/assertion-rules.md 获取完整规则。
常见业务断言模式
| 操作类型 | 断言内容 |
| POST 创建 | 状态码 201/200;响应体包含创建字段;调用 GET 确认存在 |
| GET 查询 | 状态码 200;响应体为对象/数组;关键字段非空 |
| PUT/PATCH 更新 | 状态码 200;响应体字段已更新;调用 GET 确认变更 |
| DELETE 删除 | 状态码 200/204;调用 GET 返回 404 |
| LIST 列表 | 状态码 200;响应为数组;分页字段正确 |
| LOGIN 登录 | 状态码 200;响应包含 token;使用 token 访问受保护接口成功 |
场景链路模式
参考 references/scenario-patterns.md 获取完整模式。
常见场景
| 场景 | 链路示例 |
| CRUD 完整流程 | Create → Get → Update → Get → Delete → Get(404) |
| 认证业务流 | Login → Create → List → Logout → AccessDenied |
| 数据准备流 | Login → CreateData → RunTest → DeleteData → Logout |
| 批量操作流 | Login → CreateA → CreateB → List → DeleteAll → Logout |
脚本说明
swagger_parser.py
解析 Swagger/OpenAPI 文件,输出结构化 JSON。
python scripts/swagger_parser.py --input swagger.json --output parsed_api.jsongenerate_testcases.py
根据解析结果生成指定格式的测试用例。
python scripts/generate_testcases.py \
--input parsed_api.json \
--format pytest \
--output ./output/适配现有框架
若用户项目已存在测试框架,Skill 支持:
- 代码注入模式:生成用例代码插入现有
tests/目录 - 配置文件模式:读取现有
pytest.ini/conftest.py/package.json适配配置 - 基类继承模式:生成的 Pytest 类继承项目现有的 BaseTest 类
询问用户时收集:
- 现有框架类型(Pytest/Unittest/JMeter/Postman)
- 基类/配置路径
- 认证方式与统一处理逻辑
依赖库
确保本地 Python 环境已安装:
| 库名 | 安装命令 |
requests | pip install requests |
pyyaml | pip install pyyaml |
openpyxl | pip install openpyxl |
jinja2 | pip install jinja2 |
示例
示例1:Swagger生成Pytest脚本
- 用户提供
swagger.json - 解析并自动识别 CRUD 链路
- 询问用户确认输出格式为 Pytest
- 生成
test_user_api.py:test_create_user→ 创建用户并断言 201test_get_user→ 查询用户并断言存在test_update_user→ 更新用户并断言变更test_delete_user→ 删除用户并断言 404
- 代码可直接运行:
pytest test_user_api.py
示例2:生成场景化Excel用例
- 用户提供在线 Swagger URL
- 解析后识别登录与订单模块
- 用户手动指定场景:
Login → CreateOrder → GetOrder → CancelOrder - 生成 Excel 用例,含:
- 步骤:接口调用顺序
- 数据传递:Token、OrderId 变量传递说明
- 断言:每步状态码与业务校验点
注意事项
- Swagger 完整性:文档中未定义的字段或响应可能导致生成用例不完整
- 安全认证:生成的用例默认包含认证占位符,需用户补充真实 Token/密钥
- 数据隔离:场景链路中建议为每个测试生成独立数据,避免数据污染
- 人工评审:自动生成的场景链路建议人工确认业务逻辑正确性
- 环境配置:生成的脚本需配置
base_url与认证信息后方可执行
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

