它是一个skills,能根据需求文档快速实现测试用例的生成
概览
这是一个 Claude Code Skill(技能),可以根据你的需求文档或接口文档,自动生成功能测试用例和接口测试用例。 :上传 API 文档 → 自动生成 30+ 测试用例 → 导出为 pytest/Postman/JMeter 等格式 Claude Code 会输出: - 测试用例统计(总数、优先级分布、测试类型) - 生成的文件列表 - 部分用例预览 Generated by TestCase Generator Skill for Claude Code
README
测试用例生成器 (TestCase Generator)
一、简介
这是一个 Claude Code Skill(技能),可以根据你的需求文档或接口文档,自动生成功能测试用例和接口测试用例。
一句话功能:上传 API 文档 → 自动生成 30+ 测试用例 → 导出为 pytest/Postman/JMeter 等格式
二、安装方法
2.1 克隆或下载 Skill
# 1. 进入 Claude Skills 目录
cd ~/.claude/skills
# 2. 克隆本仓库(或手动复制文件夹)
git clone https://github.com/your-username/testcase-generator.git
# 或者手动复制:将整个 testcase-generator 文件夹复制到 ~/.claude/skills/ 下
2.2 安装依赖(可选)
cd ~/.claude/skills/testcase-generator/scripts
# 安装 Python 依赖
pip install openpyxl pyyaml
# 可选依赖
pip install requests jinja2
2.3 验证安装
cd ~/.claude/skills/testcase-generator/scripts
python main.py --help
# 应该看到帮助信息
三、支持的输入格式
3.1 接口文档
| 格式 | 扩展名 | 说明 |
|---|---|---|
| Postman Collection | .json |
Postman 导出的接口集合 |
| OpenAPI / Swagger | .json, .yaml, .yml |
标准 OpenAPI 2.0/3.0 规范 |
| HAR 格式 | .har |
浏览器抓包导出的 HTTP 归档 |
| Markdown API 文档 | .md |
Markdown 格式的 API 文档 |
| JSON Schema | .json |
JSON Schema 格式定义 |
3.2 需求文档
| 格式 | 扩展名 | 说明 |
|---|---|---|
| Markdown | .md |
功能需求描述文档 |
| Text | .txt |
简单的文本需求 |
四、使用方法
4.1 准备你的文档
将你的接口文档或需求文档放到任意目录,例如:
/Users/yourname/projects/myapi/
├── openapi.yaml # Swagger/OpenAPI 文档
├── postman.json # Postman 集合
└── requirements.md # 需求文档
4.2 在 Claude Code 中调用
在 Claude Code 对话框中,直接输入:
使用 testcase-generator skill,根据我的 openapi.yaml 生成测试用例,模块名称叫 UserAPI,base URL 是 https://api.example.com
4.3 Claude Code 会自动执行
# Claude Code 内部执行类似这样的命令:
cd ~/.claude/skills/testcase-generator/scripts
python main.py \
-i /path/to/your/openapi.yaml \
-o markdown \
-m UserAPI \
-b https://api.example.com \
-v
4.4 获取生成的测试用例
Claude Code 会输出:
- 测试用例统计(总数、优先级分布、测试类型)
- 生成的文件列表
- 部分用例预览
五、命令行用法(进阶)
如果你想直接使用命令行:
5.1 基本命令
cd ~/.claude/skills/testcase-generator/scripts
# 语法
python main.py -i -o -m -b
5.2 参数说明
| 参数 | 简写 | 说明 | 示例 |
|---|---|---|---|
--input |
-i |
输入文件路径(必填) | -i api.yaml |
--output |
-o |
输出格式 | -o markdown |
--module |
-m |
模块名称 | -m UserAPI |
--base-url |
-b |
API 基础 URL | -b https://api.example.com |
--output-dir |
-d |
输出目录 | -d ./output |
--verbose |
-v |
显示详细信息 | -v |
5.3 输出格式选项
| 格式 | 说明 | 用途 |
|---|---|---|
markdown |
Markdown 文档 | 用例评审、文档归档 |
excel |
Excel 文件 | 手动测试执行 |
pytest |
Python 测试代码 | 自动化测试 |
postman |
Postman Collection | Postman 导入 |
jmeter |
JMeter JMX 文件 | 性能测试 |
json |
JSON 原始数据 | 程序处理 |
all |
所有格式 | 全面覆盖 |
5.4 使用示例
# 示例 1:从 Postman 集合生成 Markdown 文档
python main.py -i ~/api.postman_collection.json -o markdown -m AuthAPI
# 示例 2:从 Swagger 生成 Excel 和 pytest 代码
python main.py -i swagger.yaml -o all -m Payment -b https://api.payment.com
# 示例 3:生成 JMeter 性能测试计划
python main.py -i openapi.json -o jmeter -m LoadTest -b https://api.example.com
# 示例 4:生成所有格式到指定目录
python main.py -i api.json -o all -m User -b https://api.example.com -d ./testcases
六、输入文档示例
6.1 Postman Collection 示例
{
"info": {
"name": "用户服务",
"description": "用户相关接口"
},
"item": [
{
"name": "用户登录",
"request": {
"method": "POST",
"url": {
"raw": "{{baseUrl}}/api/v1/user/login",
"host": ["{{baseUrl}}"],
"path": ["api", "v1", "user", "login"]
},
"body": {
"mode": "raw",
"raw": "{\"username\": \"test\", \"password\": \"123456\"}"
}
}
}
]
}
6.2 OpenAPI/Swagger 示例
openapi: 3.0.0
info:
title: 用户服务 API
version: 1.0.0
servers:
- url: https://api.example.com
paths:
/api/v1/user/login:
post:
summary: 用户登录
parameters:
- name: username
in: body
required: true
schema:
type: string
- name: password
in: body
required: true
schema:
type: string
responses:
'200':
description: 登录成功
七、输出示例
7.1 Markdown 输出预览
# 测试用例报告
## 基本信息
| 字段 | 值 |
|------|-----|
| 模块名称 | UserAPI |
| Base URL | https://api.example.com |
| 生成时间 | 2024-01-24 11:00:00 |
| 用例总数 | 30 |
## 接口测试用例
| 用例编号 | 用例标题 | 优先级 | 接口名称 |
|----------|----------|--------|----------|
| API_USERAPI_001 | 验证用户登录正常请求成功 | P0 | 用户登录 |
| API_USERAPI_002 | 验证用户登录缺少必填参数 | P0 | 用户登录 |
| API_USERAPI_003 | 验证用户登录SQL注入攻击 | P0 | 用户登录 |
7.2 pytest 代码预览
"""UserAPI 测试用例
自动化生成的 pytest 测试代码
"""
import pytest
import requests
BASE_URL = "https://api.example.com"
class TestValidation:
"""响应验证工具类"""
@staticmethod
def validate_response(response, expected_status=200):
assert response.status_code == expected_status
class TestUserLogin:
"""用户登录测试类"""
def test_verify_user_login_success(self, base_url, headers):
"""验证用户登录正常请求成功"""
url = f"{base_url}/api/v1/user/login"
response = requests.post(url, headers=headers, json={"username": "test"})
assert response.status_code == 200
TestValidation.validate_json(response)
八、测试用例类型
生成的测试用例覆盖以下维度:
| 类型 | 说明 | 优先级 |
|---|---|---|
| 正向测试 | 正常参数请求、必填参数验证 | P0-P1 |
| 反向测试 | 缺少参数、类型错误、越界、无效 JSON | P0-P2 |
| 安全测试 | SQL 注入、XSS、未授权、Token 过期 | P0-P1 |
| 性能测试 | 响应时间、并发请求、负载测试 | P1-P2 |
| 兼容性测试 | 浏览器兼容、移动端兼容 | P1 |
九、在 Claude Code 中的使用示例
9.1 简单调用
> 使用 testcase-generator,根据我的 ~/api.yaml 生成测试用例
9.2 指定参数
> 使用 testcase-generator,解析 ~/Documents/postman_collection.json,
模块名称叫 PaymentAPI,base URL 是 https://api.payment.com,
输出为 pytest 和 postman 格式
9.3 查看帮助
> testcase-generator 有哪些输入格式支持?
十、常见问题
Q1: 生成的用例可以直接用吗?
答: 生成的用例是模板,需要根据实际业务调整测试数据和预期结果。
Q2: 支持中文吗?
答: 完全支持中文,包括用例标题、描述、文档内容。
Q3: Swagger 文件有引用($ref)能解析吗?
答: 支持解析 Swagger 中的 $ref 引用。
Q4: 生成的 pytest 代码可以直接运行吗?
答: 基本框架可直接运行,但认证逻辑需要自行补充。
Q5: 可以生成功能测试用例吗?
答: 可以,通过 Markdown 格式的需求文档生成功能测试用例。
十一、文件结构
testcase-generator/
├── SKILL.md # 本文档
├── references/
│ └── testcase_examples.md # 用例模板示例
└── scripts/
├── main.py # 主入口(推荐使用)
├── testcase_generator.py # 兼容旧版本
├── parsers/ # 文档解析器
│ ├── __init__.py
│ ├── postman.py
│ ├── swagger.py
│ ├── markdown.py
│ ├── har.py
│ └── json_schema.py
├── generators/ # 用例生成器
│ ├── __init__.py
│ ├── api_generator.py
│ └── functional_generator.py
├── formatters/ # 输出格式化器
│ ├── __init__.py
│ ├── markdown.py
│ ├── excel.py
│ ├── pytest.py
│ ├── postman.py
│ └── jmeter.py
└── utils/ # 工具函数
├── __init__.py
└── validators.py
十二、版本历史
| 版本 | 日期 | 更新内容 |
|---|---|---|
| 2.0.0 | 2024-01 | 完整重构,支持多种文档和输出格式 |
| 1.0.0 | 2023-06 | 初始版本,仅支持 Postman 和 Excel |
十三、联系方式
如有问题或建议,请提交 Issue 或 Pull Request。
Generated by TestCase Generator Skill for Claude Code
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add zhangchenglo/testcase-generator-skills