qa-api-testing
当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景:接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility. Skill: qa-api-testing Owner: kokxi Summary: 当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 触发场景:接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth by
Rank
62
Safety
84
Downloads
1.3k
Updated
Oct 10, 2026
Version
1.8.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.3K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.8.0release · observed Sep 29, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-api-testing- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/snapshot"
Documentation
CLAWHUB
106,880 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: qa-api-testing
description: >-
当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。
触发场景:接口测试、API测试、接口自动化、RESTful测试、GraphQL测试、gRPC测试、契约测试、接口安全测试、需要测试API时。 Use when the user asks about: API testing for REST, GraphQL, gRPC, WebSocket, SOAP, and webhook endpoints — contract validation, auth bypass, idempotency, timeout and retry behavior, and backward compatibility.
license: MIT
allowed-tools: Read Grep Glob Bash WebFetch
metadata:
display-name: "Api Testing"
version: "1.8.0"
when-to-use: "用户说\"接口测试\"、\"API测试\"、\"接口自动化\"、\"RESTful测试\"、\"GraphQL测试\"、\"gRPC测试\"、\"契约测试\"、\"接口安全测试\"、需要测试API时"
related-skills: "{\"upstream\":[\"qa-test-automation-arch\",\"qa-req-deconstruction\"],\"downstream\":[\"qa-ci-cd-testing\",\"qa-execution-observation\"]}"
references: "[\"references/core-flows.md\",\"references/test-cases.md\",\"references/tooling.md\",\"references/scenarios.md\",\"assets/case-template.md\"]"
input-format: "{\"required\":[{\"name\":\"接口文档\",\"type\":\"string\",\"description\":\"API接口文档或契约文件\"},{\"name\":\"自动化架构\",\"type\":\"object\",\"description\":\"来自qa-test-automation-arch的自动化架构设计\"}],\"optional\":[{\"name\":\"测试策略\",\"type\":\"object\",\"description\":\"来自qa-test-strategy-design的测试策略\"}]}"
output-format: "{\"traceability\":[\"每个接口测试用例带唯一ID:TC_{接口模块缩写}_{功能缩写}_{序号}(如 TC_API_LOGIN_001)\",\"关联接口契约ID\"],\"structure\":[{\"test_cases\":\"接口测试用例(固定 9 列 Markdown 表格:用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级)\"},\"用例级别:P0≤20%(核心流程)/ P1≤40%(主要功能)/ P2≤30%(次要功能)/ P3≤10%(边缘场景)\",\"覆盖率:标注口径(基于现有接口文档/契约),禁止\\\"全覆盖/100%\\\"绝对化表述;未覆盖接口标注\\\"未覆盖+原因\\\"\",\"占比取整:每维允许偏差 ≤1 条;接口数 <5 时以每维至少 1 条兜底并注明实际分布\"],\"api_test_plan\":\"接口测试方案\",\"mock_strategy\":\"Mock策略\",\"automation_scripts\":\"自动化脚本设计\",\"security_checks\":\"安全测试清单\"}"
error-recovery-guidance: "{\"on_failure\":\"接口异常时记录完整请求/响应信息,增加重试机制\",\"retry_behavior\":\"修复网络/环境问题后重新执行接口测试\"}"
categories: "[\"Development\",\"Testing\"]"
depth-requirement: "{\"reference_value\":\"见正文「深度要求」表:简单接口=接口数×5 / 中等=×10 / 复杂=×15\",\"minimum\":\"六维全覆盖(功能/安全/异常/性能/契约/兼容);接口数 <5 时以每维至少 1 条兜底,替代不可行的百分比配额\"}"
---
# 接口测试专项
## 核心原则
接口 Bug 大多不在状态码,而在**数据结构不一致、字段类型错配、空值处理与并发副作用**。
200 只能证明"通路是通的",证明不了"数据是对的"。
## 1. 先定位接口类型(决定重心)
| 接口类型 | 典型代表 | 测试重点 | 协议特点 |
|---------|---------|---------|---------|
| **RESTful** | CRUD API、微服务接口 | 状态码、HTTP方法语义、RESTful规范符合度 | 无状态、资源导向、Cache |
| **GraphQL** | 聚合查询、数据中台 | 查询复杂度、N+1问题、权限细粒度 | 单一端点、按需查询 |
| **gRPC** | 内部服务通信、高吞吐场景 | 消息格式、流处理、超时重试 | Protobuf、双向流、高性能 |
| **WebSocket** | 实时推送、消息通知 | 连接管理、心跳、消息顺序 | 长连接、全双工、有状态 |
| **SOAP** | 企业级系统、金融/医疗 | WSDL契约验证、XML报文结构、WS-Security | XML、强契约、RPC风格 |
| **Webhook** | 支付回调、事件通知 | 验签、幂等性、超时重试、回调顺序 | HTTP回调、被动触发、需主动Mock |
## 2. 深度要求
| 复杂度 | 用例数要求 | 说明 |
|--------|-----------|------|
| 简单接口 | 接口数×5 | 单一功能接口 |
| 中等接口 | 接口数×10 | 多参数接口 |
| 复杂接口 | 接口数×15 | 多依赖/多状态接口 |
**必须覆盖的6个维度**:
| 维度 | 占比 | 说明 |
|------|----_meta.json
{
"ownerId": "kn71y9b23csfx0ykgm55d5m9x5891zt8",
"slug": "qa-api-testing",
"version": "1.8.0",
"publishedAt": 1790655922458
}references/core-flows.md
# 接口测试核心流程详图
> 本文件是 [SKILL.md](../SKILL.md) 的详细展开:承载六维测试范围的树状详图、交付前检查清单与 Mock 策略。
> 典型用例模板见 [test-cases.md](test-cases.md),工具选型见 [tooling.md](tooling.md),场景示例见 [scenarios.md](scenarios.md)。
> 1-7 节是"这一维测什么范围",第 8 节是"交付前逐项查什么" —— 按需加载对应小节,不必通读。
## 目录
1. [功能测试](#1-功能测试) · 2. [安全测试](#2-安全测试) · 3. [异常测试](#3-异常测试)
4. [性能测试](#4-性能测试) · 5. [契约测试](#5-契约测试) · 6. [兼容性测试](#6-兼容性测试)
7. [Mock 策略](#7-mock-策略) · 8. [交付前检查清单](#8-交付前检查清单)
## 1. 功能测试
```text
测试维度:
├─ 正向测试:正常输入返回正确结果
├─ 反向测试:异常输入返回正确错误
├─ 边界测试:边界值处理正确
├─ 参数测试:参数组合覆盖
└─ 业务测试:业务规则验证
测试用例设计:
├─ 入参校验:类型、长度、格式、必填
├─ 返回校验:状态码、响应体、响应头
├─ 业务校验:数据正确性、状态变更
└─ 异常校验:错误码、错误信息
```
## 2. 安全测试
```text
测试维度:
├─ 认证测试:Token/Session/OAuth
├─ 授权测试:角色权限、资源访问
├─ 注入测试:SQL注入、XSS、命令注入
├─ 数据安全:敏感数据加密、脱敏
└─ 速率限制:限流、防刷
常见漏洞:
├─ 越权访问:水平越权、垂直越权
├─ 认证绕过:Token伪造、Session固定
├─ 注入攻击:SQL注入、命令注入
└─ 敏感泄露:密码明文、敏感信息暴露
```
## 3. 异常测试
```text
测试维度:
├─ 超时场景
│ ├─ 连接超时:TCP连接建立超时
│ ├─ 读取超时:响应数据返回超时
│ └─ 超时重试:超时后的重试行为是否符合预期
│
├─ 重试机制
│ ├─ 幂等性:重复请求是否产生副作用
│ ├─ 退避策略:重试间隔是否合理
│ └─ 重试上限:达到最大重试次数后的行为
│
├─ 故障容错
│ ├─ 降级策略:下游服务异常时是否降级
│ ├─ 熔断机制:连续失败是否触发熔断
│ └─ 限流效果:超出限流阈值时的响应
│
└─ 数据异常
├─ 空响应:返回空数据时的处理
├─ 部分数据:数据不完整时的处理
└─ 数据损坏:返回数据格式错误时的处理
```
## 4. 性能测试
```text
测试维度:
├─ 响应时间:P50/P95/P99
├─ 并发能力:并发请求处理
├─ 吞吐量:TPS/QPS
├─ 稳定性:长时间运行
└─ 资源消耗:CPU/内存/连接
测试方法:
├─ 基准测试:单请求性能基线
├─ 负载测试:预期负载下表现
├─ 压力测试:极限负载下表现
└─ 波动测试:流量波动下表现
性能基准建议(可配置,无基准时先建基线):
├─ P95 响应时间 < 500ms(按业务场景调整)
├─ 并发基线:压测确定 TPS 上限,阈值设为上限的 80%
└─ 无历史基准时:先做基准测试建立基线,再断言相对退化 < 20%
```
## 5. 契约测试
```text
测试维度:
├─ 消费者驱动
│ ├─ 消费者期望:API是否满足消费者的调用期望
│ ├─ 请求-响应匹配:请求参数和响应结构的匹配
│ └─ 消费者契约集:所有消费者的契约汇总验证
│
├─ 生产者验证
│ ├─ 接口实现验证:实际接口是否符合契约约定
│ ├─ 回归检查:接口变更是否破坏已有契约
│ └─ 版本策略:契约版本管理与兼容性保证
│
└─ 自动化集成
├─ CI集成:契约测试是否纳入流水线
├─ 变更通知:契约变更时是否通知相关方
└─ 契约仓库:契约文件是否统一管理
```
## 6. 兼容性测试
```text
测试维度:
├─ 版本兼容
│ ├─ 向后兼容:新版本是否支持旧版本客户端
│ ├─ 向前兼容:旧版本是否能处理新版本响应
│ └─ 版本迁移:接口版本迁移方案是否平滑
│
├─ 协议兼容
│ ├─ 多协议支持:REST/GraphQL/gRPC行为是否一致
│ ├─ 序列化格式:JSON/XML/Protobuf兼容性
│ └─ 编码格式:UTF-8/ASCII等编码处理
│
└─ 集成兼容
├─ 上游依赖:依赖服务变更后的适配能力
├─ 中间件兼容:网关/代理/负载均衡的影响
└─ 客户端兼容:不同SDK版本/语言的兼容性
```
## 7. Mock 策略
### Mock 时机
```text
需要Mock的场景:
├─ 第三方服务:支付、短信、地图
├─ 不稳定服务:外部依赖
├─ 开发中服务:接口未就绪
├─ 特殊场景:异常、超时、限流
└─ 测试数据:特定数据构造
```
### Mock 工具
```text
├─ WireMock:Java生态,功能全面
├─ MockServer:轻量级,易于使用
├─ Postman Mock:在线Mock服务
├─ MSW:前端Mock,拦截请求
└─ 自建Mock:Python/Node.js脚本
```
> 能力对照与选型默认值见 [tooling.md](tooling.md)。
>
> ⚠️ **Mock 的边界**:Mock 返回的响应是你自己写的,它只能证明"我方在下游异常时怎么表现",
> 不能替代真实联调,也不能用它验证"下游返回的数据是否正确"。
---
## 8. 交付前检查清单
> 逐项打勾,不适用项写"不适用 + 原因",不要静默跳过。
### 功能测试检查
- [ ] 正向测试:正常输入返回正确结果
- [ ] 反向测试:异常输入返回正确错误
- [ ] 边界测试:边界值处理正确
- [ ] 参数测试:参数组合覆盖
- [ ] 业务测试:业务规则验证
### 安全测试检查
- [ ] 认证测试:Token/Session/OAuth
- [ ] 授权测试:角色权限、资源访问
- [ ] 注入测试:SQL注入、XSS、命令注入
- [ ] 数据安全:敏感数据加密、脱敏
- [ ] 速率限制:限流、防刷
### 异常测试检查
- [ ] 超时测试:请求超时处理
- [ ] 重试测试:失败重试机制
- [ ] 降级测试:服务降级处理
- [ ] 熔断测试:熔断机制验证
### 性能测试检查
- [ ] 响应时间:P50/P95/P99
- [ ] 并发能力:并发请求处理
- [ ] 吞吐量:TPS/QPS
- [ ] 稳定性:长时间运行
### 契约测试检查
- [ ] 消费references/scenarios.md
# 接口测试场景示例(5 个) > 本文是 `qa-api-testing` 的**场景示例**。用户描述的具体情况命中下列任一场景时读本文, > 对照它确认测试重心是否放对;情况不匹配时按 [`core-flows.md`](core-flows.md) 自行展开。 > 接口类型速查见 `SKILL.md`,用例起点见 [`test-cases.md`](test-cases.md)。 场景的作用是**校正测试重心**,不是提供用例。 --- ## 场景:测试一个第三方支付回调接口(Webhook) 重心在**异常 + 安全 + 契约**。回调是被动触发的接口,你控制不了调用方,只能靠自己防。 - **Mock 策略**:模拟支付网关超时、签名错误、重复回调(Mock 工具见 [`tooling.md`](tooling.md)) - **异常测试**:回调超时重试机制、幂等性验证(同一 event_id 连续 2-3 次) - **安全测试**:回调签名验证(篡改 body / 伪造签名)、回调地址白名单 - **契约测试**:请求/响应格式是否与网关文档一致 **别漏**:回调的幂等性是资损直接相关的。同一个 `event_id` 被重放必须只入账一次 —— 这在 [`test-cases.md`](test-cases.md) 的 Webhook 专项里有现成用例。 --- ## 场景:升级版本后部分接口报错 重心切到**兼容性**(占比 5%,但此时是 100% 重心)。 典型触发点: - 新版本响应中**新增了必填字段**,旧客户端解析失败 - 接口 URL 路径变更,旧版本路由失效 - 返回数据格式从 XML 改为 JSON,旧客户端不兼容 **做法**:列出破坏性变更清单 → 逐个对照在用消费者 → 产出兼容性影响分析 + 版本迁移方案。 **注意**:新增字段在 JSON 客户端里通常是安全的(未声明字段被忽略), 真正危险的是**改类型、删字段、改枚举值**——这三类才是必须发版通知的破坏性变更。 --- ## 场景:接口偶发 500 / 超时 重心在**异常 + 可靠性**。先分流再定用例。 - 先分清是**被测接口自身**问题还是**下游依赖**问题(看错误栈最深处的服务名) - 下游超时 → 验证降级/熔断/兜底数据是否生效,错误码是否友好 - 自身问题 → 验证边界入参是否触发了未处理分支 - 写操作伴随超时 → 幂等性验证(重试是否产生重复副作用) **做法**:可注入延迟/错误(WireMock 或网关故障注入)→ 复现 → 按上面两条分流 → 出用例。 --- ## 场景:GraphQL 接口查询变慢 重心在**性能 + 安全**。GraphQL 的两个固有风险面: - **查询复杂度**:构造深度嵌套 / 大量别名的 query 触发资源耗尽 - **N+1 查询**:列表 + 关联对象时 DB 查询数随列表长度线性爆炸 - **性能**:确认是否用了 DataLoader/批量加载;P95 达标且 DB 查询数不随列表长度线性增长 - **安全**:depth/complexity limit 是否生效 - 字段级权限:用低权角色查询高权字段(如他人 email),应返回 null 或权限错误 见 [`test-cases.md`](test-cases.md) 的 GraphQL 专项。 --- ## 场景:支付订单接口被恶意刷单 重心在**安全 + 性能**。这是资损直接相关的组合场景。 - **越权**:用用户 A 的 token 请求 B 的订单 → 应 403/404,不返回 B 的任何数据 - **限流**:短时间高频请求触发 429 + Retry-After,且超限请求不产生业务副作用 - **注入**:金额/数量字段传 SQL/XSS 片段 → 应被参数化或拒绝 - **批量赋值**:请求体里多塞一个 `amount` 字段 → 不得直接生效 - **响应最小化**:响应不得包含密码哈希、内部主键、无关用户数据 见 [`test-cases.md`](test-cases.md) 的 OWASP API Top 10 对照表。
references/test-cases.md
# 接口测试六维典型用例库(39 条)
> 本文件是 [SKILL.md](../SKILL.md) 的详细展开:承载 9 列标准格式的六维典型用例库、OWASP API Top 10 对照与协议专项用例(GraphQL/gRPC/WebSocket/SOAP/Webhook)。
> 各维度的测试范围详图与交付检查清单见 [core-flows.md](core-flows.md),工具选型见 [tooling.md](tooling.md),场景示例见 [scenarios.md](scenarios.md)。
> 用例为可复用模板:实际输出须按被测接口的字段、业务规则改写预置条件、测试步骤与预期结果,不得照抄编号与模块名。
## 分布与加载
39 条按用途分三块,**按需加载,不必通读**:
| 区块 | 条数 | 什么时候读 |
|------|------|-----------|
| 六维用例(功能5/安全6/异常4/性能3/契约4/兼容4) | 26 | 任何 REST 接口都要用 |
| OWASP API Top 10 对照表 | — | 做安全维度时读,避免只测注入而漏接口特有风险 |
| 协议专项(GraphQL3/gRPC2/WebSocket2/SOAP3/Webhook3) | 13 | **仅当**被测接口是该协议时读 |
## 9 列标准格式与编号规则
| 列 | 填写要求 |
|----|---------|
| 用例编号 | `TC_{接口模块缩写}_{功能缩写}_{序号}`,如 `TC_API_LOGIN_001`;本库模板暂用维度缩写(FUNC/SEC/EXC/PERF/PACT/COMPAT) |
| 测试类型 | 功能测试/安全测试/异常测试/性能测试/契约测试/兼容性测试 |
| 功能模块 | 接口所属业务模块(如 登录接口/订单接口/支付回调) |
| 测试标题 | 动词开头,明确验证点 |
| 用例级别 | P0≤20%(核心流程)/ P1≤40%(主要功能)/ P2≤30%(次要功能)/ P3≤10%(边缘场景) |
| 预置条件 | 数据+环境+权限+账号状态,具体到可执行 |
| 测试步骤 | 操作→预期反应,一步一验证,含请求方法/路径/关键参数 |
| 预期结果 | 可量化、可验证(状态码+响应结构+业务结果+副作用) |
| 风险等级 | 高/中/低(按资损/安全/可用性影响评定) |
> 覆盖率表述必须标注口径(基于现有接口文档/契约),禁止"全覆盖/100%"绝对化;未覆盖接口标注"未覆盖+原因"。
## 一、功能测试典型用例(占比 40%)
| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |
|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| TC_API_FUNC_001 | 功能测试 | 通用模板 | 正常请求返回正确数据结构 | P0 | 有效账号与鉴权凭证 | 发送合法请求(含全部必填参数) | 返回 200,响应体结构与契约定义一致,业务数据正确 | 高 |
| TC_API_FUNC_002 | 功能测试 | 通用模板 | 必填参数缺失返回明确错误 | P0 | 接口文档已定义必填项 | 逐一去掉每个必填参数后请求 | 返回 400 与明确错误码/字段提示,不产生数据变更 | 高 |
| TC_API_FUNC_003 | 功能测试 | 通用模板 | 参数类型不匹配被拒绝 | P1 | 接口文档已定义字段类型 | 数值字段传字符串、布尔字段传数字等类型错配 | 返回 400 与类型错误提示,服务端无异常堆栈泄露 | 中 |
| TC_API_FUNC_004 | 功能测试 | 分页查询 | 分页边界值处理正确 | P1 | 测试数据 ≥1 页容量 | 分别请求 size=0/1/最大值/最大值+1、page=0/末页/末页+1 | 边界内正常返回,越界返回空集或明确错误,无 500 | 中 |
| TC_API_FUNC_005 | 功能测试 | 列表查询 | 多筛选参数组合结果正确 | P1 | 造数覆盖各筛选维度 | 两两组合及全量组合筛选条件 | 结果集与条件交集一致,排序/去重正确 | 中 |
## 二、安全测试典型用例(占比 20%)
| 用例编号 | 测试类型 | 功能模块 | 测试标题 | 用例级别 | 预置条件 | 测试步骤 | 预期结果 | 风险等级 |
|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| TC_API_SEC_001 | 安全测试 | 资源类接口 | 水平越权访问被拒绝(BOLA) | P0 | 用户 A、B 两套有效凭证,资源归属清晰 | 用 A 的 Token 请求 B 的资源 ID | 返回 403/404,不返回 B 的任何数据 | 高 |
| TC_API_SEC_002 | 安全测试 | 管理类接口 | 垂直越权调用被拒绝(BFLA) | P0 | 普通用户与管理员各一套凭证 | 用普通用户 Token 调用管理员接口 | 返回 403,接口不执行任何管理动作 | 高 |
| TC_API_SEC_003 | 安全测试 | 认证入口 | 无效/伪造凭证被拒绝 | P0 | 已知合法 Token 及签名算法 | 分别用无 Token、过期 Token、篡改签名请求受保护接口 | 一律返回 401,响应不含内部信息 | 高 |
| TC_API_SEC_004 | 安全测试 | 输入参数 | 注入攻击被拦截 | P0 | 常规账号 | 在参数中注入 SQL/XSS/命令片段后请求 | 注入被过滤或参数化处理,返回参数错误而非执行结果 | 高 |
| TC_API_SEC_005 | 安全测试 | 响应数据 | 敏感字段脱敏(防过度暴露) | P0 | 返回体含手机号/身份证/邮箱等字段 | 请求查询类接口并检查响应字段 | 敏感字段掩码显示,不返回密码哈希、内部 ID 等多余字段 | 高 |
| TC_API_SEC_006 | 安全测试 | 开放接口 | 限流与防刷生效 | P1 | 未鉴权或低权限入口 | 短时间高频请求触发限流阈值 | 返回 429 与 Retry-After,超限请求不产生业务副作用 | 中 |
### OWASP API Top 10(2023)对照
安全维度的用例设计应对照 OWASP API Security Top 10 逐项检查,避免只测注入而漏掉接口特有风险:
| OWASP 条目 | 对应测试点 |
|-----------|-----------|
| API1 对象级授权失效(BOLA) | TC_API_SEC_001:遍历资源 ID 验证归属校验 |
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/kokxi/skills/qa-api-testing",
"sourceUrl": "https://clawhub.ai/kokxi/skills/qa-api-testing",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T17:34:32.101Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T17:34:32.101Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.3K downloads",
"href": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceUrl": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T17:34:32.101Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.8.0",
"href": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceUrl": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T04:25:22.458Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-api-testing/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.8.0",
"description": "**Changelog for qa-api-testing v1.8.0** - Major structure upgrade: split documentation into modular reference files for clearer scope and maintainability. - Added: Five new documentation files covering core flows, test cases, scenarios, tooling, and a case table template. - Removed: The obsolete skill-card.md file. - Revised: SKILL.md with updated input/output formats, coverage rules for small API sets, and detailed when-to-load guidance for each reference. - Enhanced: Broader protocol type support and explicit instructions for contract, compatibility, and performance coverage. - Improved: Output self-check criteria for robust and consistent test case delivery.",
"href": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceUrl": "https://clawhub.ai/kokxi/qa-api-testing",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T04:25:22.458Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
