← 返回
未分类

API Test Create

当用户需要根据接口规格生成API测试分析文档时使用此技能。接受OpenAPI/Swagger文档、简化接口定义或自然语言描述,基于140个常见API测试陷阱输出全面的测试分析文档,涵盖参数校验、业务逻辑、响应验证和安全测试分析点。
当需要根据接口规格生成API测试分析文档时使用此技能。接受OpenAPI/Swagger文档、简化接口定义或自然语言描述,基于140个常见API测试陷阱输出完整测试分析文档,覆盖参数校验、业务逻辑、响应验证及安全测试要点。
blackbat1988 blackbat1988 来源
未分类 clawhub v1.0.2 1 版本 99705.9 Key: 无需
★ 0
Stars
📥 339
下载
💾 0
安装
1
版本
#latest

概述

API测试分析文档生成器

目的

根据接口规格定义生成全面的API测试分析文档。将API定义转换为结构化的测试分析,确保覆盖参数校验、业务逻辑、响应验证和常见陷阱的测试点分析。

使用时机

在以下情况下使用此技能:

  • 为新API端点设计测试策略时
  • 审查API测试覆盖完整性时
  • 需要测试分析文档供团队评审时
  • 针对常见陷阱审计API质量时
  • 生成测试方案和测试点清单时

工作流程

步骤1:解析接口定义

从输入中提取:

  1. 基本信息:端点路径、HTTP方法、描述
  2. 请求参数:名称、类型、约束、必填/可选
  3. 返回字段:名称、类型、描述
  4. 业务规则:校验规则、状态转换、权限

支持的输入格式:

  • OpenAPI/Swagger JSON/YAML
  • 简化接口定义(Markdown格式)
  • 自然语言描述

步骤2:生成参数校验测试点分析

为每个参数基于类型生成测试点分析:

| 参数类型 | 测试点分析维度 |

|----------|----------------|

| string | 正常值、边界长度、空值、null、特殊字符、SQL注入风险、XSS风险、Unicode字符、编码问题 |

| integer | 正常值、最小/最大边界、零值、负数、小数(类型错误)、溢出、精度问题 |

| number | 正常值、精度、科学计数法、边界值、NaN、Infinity |

| enum | 所有有效值、无效值、大小写敏感、null、空字符串、数字枚举 |

| boolean | true/false、字符串转换、数字转换、null、其他值 |

| array | 空数组、单元素、多元素、最大元素数、重复元素、无效元素、嵌套数组 |

| object | 完整对象、缺少必填字段、额外字段、空对象、嵌套对象深度 |

| datetime | 当前时间、过去时间、未来时间、闰年、无效日期、时区、格式错误、时间精度 |

步骤3:生成业务逻辑测试点分析

识别规则模式并生成测试分析场景:

| 规则模式 | 测试点分析 |

|----------|------------|

| 存在性校验 | 数据存在、不存在、已删除、逻辑删除、缓存不一致 |

| 唯一性校验 | 首次创建、重复尝试、并发创建、大小写敏感、特殊字符 |

| 状态转换 | 合法转换、非法转换、循环状态、终态、初始状态 |

| 权限校验 | 已授权、未授权、未登录、权限变更、角色变更、越权访问 |

| 关联校验 | 关联数据存在、不存在、已删除、外键约束、级联操作 |

| 数量限制 | 达到上限、超过上限、低于下限、批量操作限制、分页限制 |

| 时间窗口 | 有效期内、已过期、即将过期、时区影响 |

步骤4:生成响应验证测试点分析

| 接口类型 | 验证点分析 |

|----------|------------|

| 列表查询 | 结构完整性、分页字段、字段类型、空列表返回[]、null处理、排序 |

| 详情查询 | 必填字段存在、字段类型正确、404处理、null字段、关联数据完整性 |

| 创建 | 返回新ID、数据库验证、默认值、时间戳、返回字段完整性、状态码 |

| 更新 | 成功状态、数据变更验证、未变更字段保持原值、部分更新、全量更新 |

| 删除 | 成功状态、记录删除验证、软删除/硬删除、后续查询返回404、级联删除 |

| 文件上传 | 文件大小限制、文件类型、空文件、超大文件、文件名、多文件 |

| 文件下载 | 内容类型、文件名、文件完整性、断点续传、大文件分片 |

步骤5:生成安全测试点分析

必须包含的安全测试分析

  • SQL注入:参数拼接、特殊字符转义、ORM框架使用、存储过程
  • XSS攻击:输入过滤、输出转义、富文本处理、CSP策略
  • 认证安全:Token强度、Token过期、Refresh机制、会话管理、暴力破解防护
  • 授权安全:越权访问、水平越权、垂直越权、权限继承、权限缓存
  • 敏感数据:密码加密存储、身份证号脱敏、日志脱敏、传输加密
  • CSRF防护:Token验证、Referer检查、SameSite Cookie、双重提交
  • 信息泄露:错误信息、堆栈跟踪、调试模式、敏感接口暴露
  • 速率限制:IP限流、用户限流、接口限流、突发流量、熔断降级

步骤6:生成性能测试点分析

适用时的性能测试分析

  • 响应时间阈值:P95、P99、平均响应、最大响应、超时设置
  • 大数据量处理:分页深度、批量操作、大数据返回、内存占用
  • 并发访问:锁竞争、死锁、连接池、线程池、异步处理
  • 资源消耗:CPU、内存、磁盘IO、网络IO、文件句柄
  • 缓存策略:缓存命中率、缓存穿透、缓存雪崩、缓存一致性
  • 数据库性能:慢查询、索引使用、连接数、事务、锁等待

步骤7:对照常见陷阱检查

最终确定前,验证Top 20必检项的覆盖:

| 类别 | 必检项 | 分析重点 |

|------|--------|----------|

| 参数 | 缺少必填、类型/格式错误、边界值 | 验证是否考虑完整 |

| 权限 | 未认证访问、未授权访问 | 权限矩阵是否覆盖 |

| 安全 | SQL注入、XSS、敏感数据暴露 | 安全场景是否分析 |

| 业务 | 幂等性、唯一性、状态转换 | 业务规则是否完整 |

| 响应 | 状态码一致、字段完整、空结果 | 响应契约是否验证 |

| 性能 | 响应阈值、分页限制、批量限制 | 性能指标是否定义 |

参考 references/common-pitfalls.md 获取完整的140点清单。

输出格式

单接口测试分析格式

## API: {接口名称}

### 基本信息
- **端点**:{METHOD} {路径}
- **描述**:{接口描述}
- **标签**:{Swagger标签}
- **认证**:{是否需要认证}

### 请求参数分析

#### 1. {参数名} ({类型}, {必填/可选})
**约束条件**:{长度、格式、枚举值等}

**参数校验测试点分析**:
| 测试场景 | 测试值 | 预期结果 | 优先级 | 测试目的 |
|----------|--------|----------|--------|----------|
| 正常值 | {valid} | 成功 | P0 | 验证基本功能 |
| 边界值-最小 | {min} | 成功 | P1 | 验证下边界 |
| 边界值-最大 | {max} | 成功 | P1 | 验证上边界 |
| 边界值-超过 | {max+1} | 参数错误 | P1 | 验证越界处理 |
| 空值 | "" | 参数错误 | P0 | 验证空字符串 |
| null | null | 参数错误 | P0 | 验证null处理 |
| 特殊字符 | {special} | 参数错误 | P0 | 验证特殊字符过滤 |
| SQL注入 | {sql} | 参数错误 | P0 | 验证SQL注入防护 |
| XSS攻击 | {xss} | 参数错误 | P0 | 验证XSS防护 |

**风险分析**:{高/中/低}

#### 2. {参数名} ({类型}, {必填/可选})
...

### 业务逻辑测试点分析

#### 场景1:{业务场景名称}
**前置条件**:{条件描述}

| 操作步骤 | 输入数据 | 预期结果 | 优先级 | 测试目的 |
|----------|----------|----------|--------|----------|
| 步骤1 | {data1} | {result1} | P0 | {purpose1} |
| 步骤2 | {data2} | {result2} | P1 | {purpose2} |

**业务规则验证**:{规则描述}
**数据一致性检查**:{检查点}

#### 场景2:{业务场景名称}
...

### 响应验证测试点分析

#### 成功响应(2xx)
**状态码**:201 Created

**响应体验证**:
| 字段 | 类型 | 验证内容 | 优先级 |
|------|------|----------|--------|
| code | Integer | 等于200 | P0 |
| message | String | 包含"成功" | P0 |
| data | Object | 不为null | P0 |
| data.id | Long | 大于0 | P0 |
| data.createTime | DateTime | 不为null,格式正确 | P1 |

**数据完整性验证**:
- 数据库中记录已创建
- 时间戳字段自动填充
- 关联数据正确建立

#### 错误响应(4xx)
**状态码**:400 Bad Request

| 错误场景 | 响应体验证 | 优先级 |
|----------|------------|--------|
| 参数缺失 | code=400, message包含"必填" | P0 |
| 参数格式错误 | code=400, message包含"格式" | P0 |
| 业务规则违反 | code=409, message包含"已存在" | P0 |

#### 异常响应(5xx)
**状态码**:500 Internal Server Error

| 异常场景 | 响应体验证 | 日志验证 | 优先级 |
|----------|------------|----------|--------|
| 数据库异常 | code=500, message不包含敏感信息 | 记录错误堆栈 | P0 |
| 外部服务异常 | code=503, 触发熔断 | 记录熔断日志 | P1 |

### 安全测试点分析

#### 认证安全
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |
|----------|----------|----------|----------|
| 未认证访问 | 不携带Token调用接口 | 返回401 Unauthorized | 高 |
| Token过期 | 使用过期Token | 返回401, message提示Token过期 | 高 |
| Token篡改 | 修改Token签名 | 返回401, message提示Token无效 | 高 |
| Token刷新 | 使用RefreshToken获取新Token | 返回新Token, 旧Token失效 | 中 |

#### 授权安全
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |
|----------|----------|----------|----------|
| 越权访问 | 用户A访问用户B的数据 | 返回403 Forbidden | 高 |
| 垂直越权 | 普通用户访问管理员接口 | 返回403 Forbidden | 高 |
| 权限变更 | 权限变更后访问接口 | 按新权限控制 | 中 |

#### 数据安全
| 测试场景 | 测试操作 | 预期结果 | 风险等级 |
|----------|----------|----------|----------|
| SQL注入 | 输入SQL特殊字符 | 返回400, 不被注入 | 高 |
| XSS攻击 | 输入<script>标签 | 返回400, 内容被转义 | 高 |
| 敏感数据泄露 | 检查响应字段 | 密码、密钥不返回 | 高 |
| 日志脱敏 | 检查日志文件 | 敏感信息被脱敏 | 中 |

### 性能测试点分析

#### 响应时间要求
- **P0优先级接口**:< 200ms (95分位)
- **P1优先级接口**:< 500ms (95分位)
- **P2优先级接口**:< 1000ms (95分位)
- **P3优先级接口**:< 2000ms (95分位)

#### 压力测试场景
| 场景 | 并发数 | 持续时间 | 预期结果 | 关注点 |
|------|--------|----------|----------|--------|
| 基准测试 | 1 | 10分钟 | 响应稳定 | 基准响应时间 |
| 负载测试 | 10 | 30分钟 | 成功率>99.9% | 系统负载 |
| 压力测试 | 50 | 15分钟 | 成功率>99% | 系统瓶颈 |
| 峰值测试 | 100 | 5分钟 | 不崩溃 | 最大承载 |

#### 性能监控指标
- **响应时间**:平均、P95、P99、最大值
- **吞吐量**:TPS、QPS
- **错误率**:4xx、5xx比例
- **资源使用率**:CPU、内存、磁盘IO、网络IO
- **数据库指标**:连接数、慢查询、锁等待

### 兼容性测试点分析

#### 客户端兼容性
| 客户端类型 | 版本范围 | 测试重点 | 优先级 |
|------------|----------|----------|--------|
| Web浏览器 | Chrome, Firefox, Safari, Edge | 最新+前2个版本 | P1 |
| 移动端 | iOS, Android | 主流版本 | P2 |
| 桌面应用 | Windows, macOS, Linux | 主流版本 | P2 |

#### 数据格式兼容性
| 格式类型 | 测试内容 | 预期结果 | 优先级 |
|----------|----------|----------|--------|
| JSON | 标准JSON、嵌套对象、数组 | 正确解析 | P0 |
| XML | 支持情况 | 正确解析或返回415 | P2 |
| Form | application/x-www-form-urlencoded | 正确解析 | P1 |
| Multipart | multipart/form-data | 正确解析 | P1 |

### 测试数据设计

#### 正向测试数据

{

"username": "testuser",

"password": "Test123456",

"email": "test@example.com",

"phone": "13800138000"

}


#### 边界测试数据

{

"username": "a", // 最小长度

"username": "a" * 20, // 最大长度

"username": "a" * 21 // 超过最大长度

}


#### 异常测试数据

{

"username": null, // null值

"username": "", // 空字符串

"username": "", // XSS

"username": "admin'--", // SQL注入

"username": "../../etc/passwd" // 路径遍历

}


### 测试执行建议

#### 执行优先级
1. **P0测试点**(核心功能):100%执行,必须全部通过
2. **P1测试点**(重要功能):100%执行,通过率>95%
3. **P2测试点**(一般功能):80%执行,通过率>90%
4. **P3测试点**(次要功能):50%执行,通过率>80%

#### 执行阶段
- **冒烟测试**:所有P0测试点,30分钟
- **功能测试**:P0+P1测试点,2天
- **深度测试**:P0+P1+P2测试点,3天
- **回归测试**:全量测试点,1天

#### 执行环境
- **开发环境**:功能验证、快速反馈
- **测试环境**:完整测试、集成测试
- **预生产环境**:性能测试、安全测试
- **生产环境**:冒烟测试、监控验证

### 风险分析

#### 高风险
- Token认证机制
- 权限控制体系
- 敏感数据处理
- 支付/交易接口

#### 中风险
- 业务数据完整性
- 第三方服务集成
- 文件上传下载
- 批量操作

#### 低风险
- 查询统计接口
- 只读数据接口
- 静态资源配置

### 总结

#### 测试点统计
- 参数校验测试点:X个
- 业务逻辑测试点:X个
- 响应验证测试点:X个
- 安全测试点:X个
- 性能测试点:X个
- **总计:X个测试点**

#### 测试覆盖
- 功能覆盖:100%
- 参数覆盖:100%
- 业务规则覆盖:100%
- 安全场景覆盖:100%
- 性能指标覆盖:80%

#### 建议
1. 优先执行P0和P1测试点
2. 重点关注安全测试点
3. 在生产环境执行冒烟测试
4. 建立自动化测试回归套件
5. 定期评审测试点有效性

---

多接口测试分析格式

# {系统名称} API测试分析报告

## 文档信息
- **生成日期**:{date}
- **接口总数**:{count}
- **测试点总数**:{total_points}
- **生成工具**:api-test-create v{version}

## 接口清单

| 序号 | 接口名称 | 路径 | 方法 | 优先级 | 测试点数 |
|------|----------|------|------|--------|----------|
| 1 | 用户注册 | /api/users | POST | P0 | 32 |
| 2 | 用户登录 | /api/auth/login | POST | P0 | 28 |
| ... | ... | ... | ... | ... | ... |

## 模块划分

### 1. 认证管理模块
**接口数量**:6个
**风险等级**:🔴 高
**测试重点**:Token认证、密码安全、输入验证
**测试点数**:150+

### 2. 产品管理模块
**接口数量**:6个
**风险等级**:🟡 中
**测试重点**:CRUD操作、数据一致性、分页逻辑
**测试点数**:120+

## 测试策略

### 测试优先级
- **P0(Critical)**:核心功能,必须测试通过
- **P1(High)**:重要功能,影响用户体验
- **P2(Medium)**:一般功能,优化体验
- **P3(Low)**:次要功能,可后期补充

### 测试类型
1. **功能测试**:验证业务逻辑正确性
2. **参数测试**:验证输入验证机制
3. **安全测试**:验证安全防护能力
4. **性能测试**:验证系统性能指标
5. **兼容性测试**:验证多环境兼容性

## 详细测试分析

### 1.1 用户注册接口

#### 基本信息
- **端点**:POST /api/users
- **描述**:创建新用户账号
- **认证**:否
- **模块**:认证管理

#### 参数校验测试点分析
...

#### 业务逻辑测试点分析
...

(后续内容同单接口格式)

## 测试数据设计

### 正向数据

{

"username": "valid_user",

"password": "Valid123",

"email": "test@example.com"

}


### 边界数据

{

"username": "a", // 最小长度

"username": "a" * 20, // 最大长度

"username": "a" * 21 // 超过最大长度

}


### 异常数据

{

"username": null, // null值

"username": "", // 空字符串

"username": "