API Test Create
/install apitestcreate
\r \r
API测试分析文档生成器\r
\r
目的\r
\r 根据接口规格定义生成全面的API测试分析文档。将API定义转换为结构化的测试分析,确保覆盖参数校验、业务逻辑、响应验证和常见陷阱的测试点分析。\r \r
使用时机\r
\r 在以下情况下使用此技能:\r
- 为新API端点设计测试策略时\r
- 审查API测试覆盖完整性时\r
- 需要测试分析文档供团队评审时\r
- 针对常见陷阱审计API质量时\r
- 生成测试方案和测试点清单时\r \r
工作流程\r
\r
步骤1:解析接口定义\r
\r 从输入中提取:\r
- 基本信息:端点路径、HTTP方法、描述\r
- 请求参数:名称、类型、约束、必填/可选\r
- 返回字段:名称、类型、描述\r
- 业务规则:校验规则、状态转换、权限\r \r 支持的输入格式:\r
- OpenAPI/Swagger JSON/YAML\r
- 简化接口定义(Markdown格式)\r
- 自然语言描述\r \r
步骤2:生成参数校验测试点分析\r
\r 为每个参数基于类型生成测试点分析:\r \r | 参数类型 | 测试点分析维度 |\r |----------|----------------|\r | string | 正常值、边界长度、空值、null、特殊字符、SQL注入风险、XSS风险、Unicode字符、编码问题 |\r | integer | 正常值、最小/最大边界、零值、负数、小数(类型错误)、溢出、精度问题 |\r | number | 正常值、精度、科学计数法、边界值、NaN、Infinity |\r | enum | 所有有效值、无效值、大小写敏感、null、空字符串、数字枚举 |\r | boolean | true/false、字符串转换、数字转换、null、其他值 |\r | array | 空数组、单元素、多元素、最大元素数、重复元素、无效元素、嵌套数组 |\r | object | 完整对象、缺少必填字段、额外字段、空对象、嵌套对象深度 |\r | datetime | 当前时间、过去时间、未来时间、闰年、无效日期、时区、格式错误、时间精度 |\r \r
步骤3:生成业务逻辑测试点分析\r
\r 识别规则模式并生成测试分析场景:\r \r | 规则模式 | 测试点分析 |\r |----------|------------|\r | 存在性校验 | 数据存在、不存在、已删除、逻辑删除、缓存不一致 |\r | 唯一性校验 | 首次创建、重复尝试、并发创建、大小写敏感、特殊字符 |\r | 状态转换 | 合法转换、非法转换、循环状态、终态、初始状态 |\r | 权限校验 | 已授权、未授权、未登录、权限变更、角色变更、越权访问 |\r | 关联校验 | 关联数据存在、不存在、已删除、外键约束、级联操作 |\r | 数量限制 | 达到上限、超过上限、低于下限、批量操作限制、分页限制 |\r | 时间窗口 | 有效期内、已过期、即将过期、时区影响 |\r \r
步骤4:生成响应验证测试点分析\r
\r | 接口类型 | 验证点分析 |\r |----------|------------|\r | 列表查询 | 结构完整性、分页字段、字段类型、空列表返回[]、null处理、排序 |\r | 详情查询 | 必填字段存在、字段类型正确、404处理、null字段、关联数据完整性 |\r | 创建 | 返回新ID、数据库验证、默认值、时间戳、返回字段完整性、状态码 |\r | 更新 | 成功状态、数据变更验证、未变更字段保持原值、部分更新、全量更新 |\r | 删除 | 成功状态、记录删除验证、软删除/硬删除、后续查询返回404、级联删除 |\r | 文件上传 | 文件大小限制、文件类型、空文件、超大文件、文件名、多文件 |\r | 文件下载 | 内容类型、文件名、文件完整性、断点续传、大文件分片 |\r \r
步骤5:生成安全测试点分析\r
\r 必须包含的安全测试分析:\r
- SQL注入:参数拼接、特殊字符转义、ORM框架使用、存储过程\r
- XSS攻击:输入过滤、输出转义、富文本处理、CSP策略\r
- 认证安全:Token强度、Token过期、Refresh机制、会话管理、暴力破解防护\r
- 授权安全:越权访问、水平越权、垂直越权、权限继承、权限缓存\r
- 敏感数据:密码加密存储、身份证号脱敏、日志脱敏、传输加密\r
- CSRF防护:Token验证、Referer检查、SameSite Cookie、双重提交\r
- 信息泄露:错误信息、堆栈跟踪、调试模式、敏感接口暴露\r
- 速率限制:IP限流、用户限流、接口限流、突发流量、熔断降级\r \r
步骤6:生成性能测试点分析\r
\r 适用时的性能测试分析:\r
- 响应时间阈值:P95、P99、平均响应、最大响应、超时设置\r
- 大数据量处理:分页深度、批量操作、大数据返回、内存占用\r
- 并发访问:锁竞争、死锁、连接池、线程池、异步处理\r
- 资源消耗:CPU、内存、磁盘IO、网络IO、文件句柄\r
- 缓存策略:缓存命中率、缓存穿透、缓存雪崩、缓存一致性\r
- 数据库性能:慢查询、索引使用、连接数、事务、锁等待\r \r
步骤7:对照常见陷阱检查\r
\r
最终确定前,验证Top 20必检项的覆盖:\r
\r
| 类别 | 必检项 | 分析重点 |\r
|------|--------|----------|\r
| 参数 | 缺少必填、类型/格式错误、边界值 | 验证是否考虑完整 |\r
| 权限 | 未认证访问、未授权访问 | 权限矩阵是否覆盖 |\r
| 安全 | SQL注入、XSS、敏感数据暴露 | 安全场景是否分析 |\r
| 业务 | 幂等性、唯一性、状态转换 | 业务规则是否完整 |\r
| 响应 | 状态码一致、字段完整、空结果 | 响应契约是否验证 |\r
| 性能 | 响应阈值、分页限制、批量限制 | 性能指标是否定义 |\r
\r
参考 references/common-pitfalls.md 获取完整的140点清单。\r
\r
输出格式\r
\r
单接口测试分析格式\r
\r
## API: {接口名称}\r
\r
### 基本信息\r
- **端点**:{METHOD} {路径}\r
- **描述**:{接口描述}\r
- **标签**:{Swagger标签}\r
- **认证**:{是否需要认证}\r
\r
### 请求参数分析\r
\r
#### 1. {参数名} ({类型}, {必填/可选})\r
**约束条件**:{长度、格式、枚举值等}\r
\r
**参数校验测试点分析**:\r
| 测试场景 | 测试值 | 预期结果 | 优先级 | 测试目的 |\r
|----------|--------|----------|--------|----------|\r
| 正常值 | {valid} | 成功 | P0 | 验证基本功能 |\r
| 边界值-最小 | {min} | 成功 | P1 | 验证下边界 |\r
| 边界值-最大 | {max} | 成功 | P1 | 验证上边界 |\r
| 边界值-超过 | {max+1} | 参数错误 | P1 | 验证越界处理 |\r
| 空值 | "" | 参数错误 | P0 | 验证空字符串 |\r
| null | null | 参数错误 | P0 | 验证null处理 |\r
| 特殊字符 | {special} | 参数错误 | P0 | 验证特殊字符过滤 |\r
| SQL注入 | {sql} | 参数错误 | P0 | 验证SQL注入防护 |\r
| XSS攻击 | {xss} | 参数错误 | P0 | 验证XSS防护 |\r
\r
**风险分析**:{高/中/低}\r
\r
#### 2. {参数名} ({类型}, {必填/可选})\r
...\r
\r
### 业务逻辑测试点分析\r
\r
#### 场景1:{业务场景名称}\r
**前置条件**:{条件描述}\r
\r
| 操作步骤 | 输入数据 | 预期结果 | 优先级 | 测试目的 |\r
|----------|----------|----------|--------|----------|\r
| 步骤1 | {data1} | {result1} | P0 | {purpose1} |\r
| 步骤2 | {data2} | {result2} | P1 | {purpose2} |\r
\r
**业务规则验证**:{规则描述}\r
**数据一致性检查**:{检查点}\r
\r
#### 场景2:{业务场景名称}\r
...\r
\r
### 响应验证测试点分析\r
\r
#### 成功响应(2xx)\r
**状态码**:201 Created\r
\r
**响应体验证**:\r
| 字段 | 类型 | 验证内容 | 优先级 |\r
|------|------|----------|--------|\r
| code | Integer | 等于200 | P0 |\r
| message | String | 包含"成功" | P0 |\r
| data | Object | 不为null | P0 |\r
| data.id | Long | 大于0 | P0 |\r
| data.createTime | DateTime | 不为null,格式正确 | P1 |\r
\r
**数据完整性验证**:\r
- 数据库中记录已创建\r
- 时间戳字段自动填充\r
- 关联数据正确建立\r
\r
#### 错误响应(4xx)\r
**状态码**:400 Bad Request\r
\r
| 错误场景 | 响应体验证 | 优先级 |\r
|----------|------------|--------|\r
| 参数缺失 | code=400, message包含"必填" | P0 |\r
| 参数格式错误 | code=400, message包含"格式" | P0 |\r
| 业务规则违反 | code=409, message包含"已存在" | P0 |\r
\r
#### 异常响应(5xx)\r
**状态码**:500 Internal Server Error\r
\r
| 异常场景 | 响应体验证 | 日志验证 | 优先级 |\r
|----------|------------|----------|--------|\r
| 数据库异常 | code=500, message不包含敏感信息 | 记录错误堆栈 | P0 |\r
| 外部服务异常 | code=503, 触发熔断 | 记录熔断日志 | P1 |\r
\r
### 安全测试点分析\r
\r
#### 认证安全\r
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |\r
|----------|----------|----------|----------|\r
| 未认证访问 | 不携带Token调用接口 | 返回401 Unauthorized | 高 |\r
| Token过期 | 使用过期Token | 返回401, message提示Token过期 | 高 |\r
| Token篡改 | 修改Token签名 | 返回401, message提示Token无效 | 高 |\r
| Token刷新 | 使用RefreshToken获取新Token | 返回新Token, 旧Token失效 | 中 |\r
\r
#### 授权安全\r
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |\r
|----------|----------|----------|----------|\r
| 越权访问 | 用户A访问用户B的数据 | 返回403 Forbidden | 高 |\r
| 垂直越权 | 普通用户访问管理员接口 | 返回403 Forbidden | 高 |\r
| 权限变更 | 权限变更后访问接口 | 按新权限控制 | 中 |\r
\r
#### 数据安全\r
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |\r
|----------|----------|----------|----------|\r
| SQL注入 | 输入SQL特殊字符 | 返回400, 不被注入 | 高 |\r
| XSS攻击 | 输入\x3Cscript>标签 | 返回400, 内容被转义 | 高 |\r
| 敏感数据泄露 | 检查响应字段 | 密码、密钥不返回 | 高 |\r
| 日志脱敏 | 检查日志文件 | 敏感信息被脱敏 | 中 |\r
\r
### 性能测试点分析\r
\r
#### 响应时间要求\r
- **P0优先级接口**:\x3C 200ms (95分位)\r
- **P1优先级接口**:\x3C 500ms (95分位)\r
- **P2优先级接口**:\x3C 1000ms (95分位)\r
- **P3优先级接口**:\x3C 2000ms (95分位)\r
\r
#### 压力测试场景\r
| 场景 | 并发数 | 持续时间 | 预期结果 | 关注点 |\r
|------|--------|----------|----------|--------|\r
| 基准测试 | 1 | 10分钟 | 响应稳定 | 基准响应时间 |\r
| 负载测试 | 10 | 30分钟 | 成功率>99.9% | 系统负载 |\r
| 压力测试 | 50 | 15分钟 | 成功率>99% | 系统瓶颈 |\r
| 峰值测试 | 100 | 5分钟 | 不崩溃 | 最大承载 |\r
\r
#### 性能监控指标\r
- **响应时间**:平均、P95、P99、最大值\r
- **吞吐量**:TPS、QPS\r
- **错误率**:4xx、5xx比例\r
- **资源使用率**:CPU、内存、磁盘IO、网络IO\r
- **数据库指标**:连接数、慢查询、锁等待\r
\r
### 兼容性测试点分析\r
\r
#### 客户端兼容性\r
| 客户端类型 | 版本范围 | 测试重点 | 优先级 |\r
|------------|----------|----------|--------|\r
| Web浏览器 | Chrome, Firefox, Safari, Edge | 最新+前2个版本 | P1 |\r
| 移动端 | iOS, Android | 主流版本 | P2 |\r
| 桌面应用 | Windows, macOS, Linux | 主流版本 | P2 |\r
\r
#### 数据格式兼容性\r
| 格式类型 | 测试内容 | 预期结果 | 优先级 |\r
|----------|----------|----------|--------|\r
| JSON | 标准JSON、嵌套对象、数组 | 正确解析 | P0 |\r
| XML | 支持情况 | 正确解析或返回415 | P2 |\r
| Form | application/x-www-form-urlencoded | 正确解析 | P1 |\r
| Multipart | multipart/form-data | 正确解析 | P1 |\r
\r
### 测试数据设计\r
\r
#### 正向测试数据\r
```json\r
{\r
"username": "testuser",\r
"password": "Test123456",\r
"email": "[email protected]",\r
"phone": "13800138000"\r
}\r
```\r
\r
#### 边界测试数据\r
```json\r
{\r
"username": "a", // 最小长度\r
"username": "a" * 20, // 最大长度\r
"username": "a" * 21 // 超过最大长度\r
}\r
```\r
\r
#### 异常测试数据\r
```json\r
{\r
"username": null, // null值\r
"username": "", // 空字符串\r
"username": "\x3Cscript>alert(1)\x3C/script>", // XSS\r
"username": "admin'--", // SQL注入\r
"username": "../../etc/passwd" // 路径遍历\r
}\r
```\r
\r
### 测试执行建议\r
\r
#### 执行优先级\r
1. **P0测试点**(核心功能):100%执行,必须全部通过\r
2. **P1测试点**(重要功能):100%执行,通过率>95%\r
3. **P2测试点**(一般功能):80%执行,通过率>90%\r
4. **P3测试点**(次要功能):50%执行,通过率>80%\r
\r
#### 执行阶段\r
- **冒烟测试**:所有P0测试点,30分钟\r
- **功能测试**:P0+P1测试点,2天\r
- **深度测试**:P0+P1+P2测试点,3天\r
- **回归测试**:全量测试点,1天\r
\r
#### 执行环境\r
- **开发环境**:功能验证、快速反馈\r
- **测试环境**:完整测试、集成测试\r
- **预生产环境**:性能测试、安全测试\r
- **生产环境**:冒烟测试、监控验证\r
\r
### 风险分析\r
\r
#### 高风险\r
- Token认证机制\r
- 权限控制体系\r
- 敏感数据处理\r
- 支付/交易接口\r
\r
#### 中风险\r
- 业务数据完整性\r
- 第三方服务集成\r
- 文件上传下载\r
- 批量操作\r
\r
#### 低风险\r
- 查询统计接口\r
- 只读数据接口\r
- 静态资源配置\r
\r
### 总结\r
\r
#### 测试点统计\r
- 参数校验测试点:X个\r
- 业务逻辑测试点:X个\r
- 响应验证测试点:X个\r
- 安全测试点:X个\r
- 性能测试点:X个\r
- **总计:X个测试点**\r
\r
#### 测试覆盖\r
- 功能覆盖:100%\r
- 参数覆盖:100%\r
- 业务规则覆盖:100%\r
- 安全场景覆盖:100%\r
- 性能指标覆盖:80%\r
\r
#### 建议\r
1. 优先执行P0和P1测试点\r
2. 重点关注安全测试点\r
3. 在生产环境执行冒烟测试\r
4. 建立自动化测试回归套件\r
5. 定期评审测试点有效性\r
\r
---\r
```\r
\r
### 多接口测试分析格式\r
\r
```markdown\r
# {系统名称} API测试分析报告\r
\r
## 文档信息\r
- **生成日期**:{date}\r
- **接口总数**:{count}\r
- **测试点总数**:{total_points}\r
- **生成工具**:api-test-create v{version}\r
\r
## 接口清单\r
\r
| 序号 | 接口名称 | 路径 | 方法 | 优先级 | 测试点数 |\r
|------|----------|------|------|--------|----------|\r
| 1 | 用户注册 | /api/users | POST | P0 | 32 |\r
| 2 | 用户登录 | /api/auth/login | POST | P0 | 28 |\r
| ... | ... | ... | ... | ... | ... |\r
\r
## 模块划分\r
\r
### 1. 认证管理模块\r
**接口数量**:6个\r
**风险等级**:🔴 高\r
**测试重点**:Token认证、密码安全、输入验证\r
**测试点数**:150+\r
\r
### 2. 产品管理模块\r
**接口数量**:6个\r
**风险等级**:🟡 中\r
**测试重点**:CRUD操作、数据一致性、分页逻辑\r
**测试点数**:120+\r
\r
## 测试策略\r
\r
### 测试优先级\r
- **P0(Critical)**:核心功能,必须测试通过\r
- **P1(High)**:重要功能,影响用户体验\r
- **P2(Medium)**:一般功能,优化体验\r
- **P3(Low)**:次要功能,可后期补充\r
\r
### 测试类型\r
1. **功能测试**:验证业务逻辑正确性\r
2. **参数测试**:验证输入验证机制\r
3. **安全测试**:验证安全防护能力\r
4. **性能测试**:验证系统性能指标\r
5. **兼容性测试**:验证多环境兼容性\r
\r
## 详细测试分析\r
\r
### 1.1 用户注册接口\r
\r
#### 基本信息\r
- **端点**:POST /api/users\r
- **描述**:创建新用户账号\r
- **认证**:否\r
- **模块**:认证管理\r
\r
#### 参数校验测试点分析\r
...\r
\r
#### 业务逻辑测试点分析\r
...\r
\r
(后续内容同单接口格式)\r
\r
## 测试数据设计\r
\r
### 正向数据\r
```json\r
{\r
"username": "valid_user",\r
"password": "Valid123",\r
"email": "[email protected]"\r
}\r
```\r
\r
### 边界数据\r
```json\r
{\r
"username": "a", // 最小长度\r
"username": "a" * 20, // 最大长度\r
"username": "a" * 21 // 超过最大长度\r
}\r
```\r
\r
### 异常数据\r
```json\r
{\r
"username": null, // null值\r
"username": "", // 空字符串\r
"username": "\x3Cscript>", // XSS\r
"username": "admin'--" // SQL注入\r
}\r
```\r
\r
## 测试执行建议\r
\r
### 第一阶段:冒烟测试(2小时)\r
执行所有P0测试点,验证核心功能\r
\r
### 第二阶段:功能测试(2天)\r
执行P0+P1测试点,覆盖主要业务场景\r
\r
### 第三阶段:深度测试(3天)\r
执行P0+P1+P2测试点,包括性能和安全\r
\r
### 第四阶段:回归测试(1天)\r
全量测试点回归,确保修改不影响已有功能\r
\r
## 测试环境要求\r
\r
### 硬件要求\r
- CPU:4核以上\r
- 内存:8GB以上\r
- 硬盘:50GB可用空间\r
\r
### 软件要求\r
- JDK 11+\r
- MySQL 8.0+\r
- Redis 6.0+\r
- Git 2.0+\r
\r
## 风险分析\r
\r
### 高风险接口\r
1. 认证相关接口(登录、注册、Token刷新)\r
2. 支付/交易接口\r
3. 权限管理接口\r
\r
### 中风险接口\r
1. 核心业务数据操作\r
2. 第三方服务集成\r
3. 文件上传下载\r
\r
### 低风险接口\r
1. 查询统计接口\r
2. 只读数据接口\r
3. 静态资源配置\r
\r
## 总结\r
\r
### 测试点统计\r
- **参数校验**:XXX个\r
- **业务逻辑**:XXX个\r
- **响应验证**:XXX个\r
- **安全测试**:XXX个\r
- **性能测试**:XXX个\r
- **总计**:XXXX个测试点\r
\r
### 建议\r
1. 建立测试用例管理系统\r
2. 实施自动化测试回归\r
3. 定期进行安全扫描\r
4. 监控生产环境性能指标\r
5. 持续优化测试策略\r
\r
---\r
**文档生成日期**:{date}\r
**生成工具**:api-test-create v{version}\r
**下次评审**:建议每月评审一次\r
```\r
\r
## 参考资源\r
\r
| 文档 | 用途 |\r
|------|------|\r
| `references/test-case-design.md` | 详细的测试用例设计方法和代码示例 |\r
| `references/common-pitfalls.md` | 完整的140点API测试陷阱清单 |\r
| `examples/openapi-example.yaml` | OpenAPI格式示例 |\r
| `examples/simple-example.md` | 简化定义格式示例 |\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install apitestcreate - After installation, invoke the skill by name or use
/apitestcreate - Provide required inputs per the skill's parameter spec and get structured output
What is API Test Create?
当用户需要根据接口规格生成API测试分析文档时使用此技能。接受OpenAPI/Swagger文档、简化接口定义或自然语言描述,基于140个常见API测试陷阱输出全面的测试分析文档,涵盖参数校验、业务逻辑、响应验证和安全测试分析点。 It is an AI Agent Skill for Claude Code / OpenClaw, with 131 downloads so far.
How do I install API Test Create?
Run "/install apitestcreate" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is API Test Create free?
Yes, API Test Create is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does API Test Create support?
API Test Create is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created API Test Create?
It is built and maintained by autotestlite (@blackbat1988); the current version is v1.0.2.