分类

API 契约压力测试器

根据 OpenAPI 3.x 规范批量生成边界值测试请求,并可选发送到真实后端以发现契约不一致。

把 OpenAPI 3.x 文档粘贴到“OpenAPI 规范”中,支持 YAML 和 JSON。

需要提供的内容:

  • 包含 paths、parameters、requestBody 和 responses 的有效 OpenAPI 3.x 文档
  • 如果请求体用了 components.schemas 引用,也可以一并填写
  • 如果你希望真的向后端发起边界请求,则再填写 Base URL

各字段说明:

  • OpenAPI 规范:粘贴完整 YAML 或 JSON 契约
  • 基础 URL:留空时只生成测试计划;填写如 https://api.example.com 时可执行真实请求
  • 执行真实请求:开启后,工具会把生成的异常值或边界值请求发到 Base URL
  • 授权头:可选,直接填写原始值,例如 Bearer
  • 每字段最大用例数:限制每个参数或请求体字段生成多少条边界用例
  • 请求超时(毫秒):限制每条真实请求最多执行多久

会测试的内容:

  • 缺失必填字段
  • 空字符串、过短字符串、过长字符串
  • 非法枚举值
  • 小于 minimum 或大于 maximum 的数字
  • 与文档类型不符的标量或数组值

说明:

  • 关闭“执行真实请求”时,工具只生成契约测试计划。
  • 开启后,报告会标记实际返回的 HTTP 状态码是否在 OpenAPI responses 中有定义。
  • 当前覆盖 path、query、header 和 JSON body 字段,请求体以 application/json 为主。

示例结果

1 个示例

为注册接口生成边界测试

在接入 mock server 或 CI 契约检查前,先审查 minLength、enum 与数值约束。

{
  "summary": {
    "endpoints": 1,
    "generatedCases": 7,
    "executedCases": 0,
    "mismatches": 0
  },
  "cases": [
    {
      "fieldPath": "body.email",
      "title": "Missing required field"
    },
    {
      "fieldPath": "body.role",
      "title": "Invalid enum member"
    }
  ]
}
查看输入参数
{ "openApiSpec": "openapi: 3.0.0\npaths:\n /users:\n post:\n requestBody:\n required: true\n content:\n application/json:\n schema:\n type: object\n required: [email, role]\n properties:\n email: { type: string, minLength: 5 }\n role: { type: string, enum: [admin, member] }\n age: { type: integer, minimum: 18 }\n responses:\n \"201\": { description: created }\n \"400\": { description: bad request }\n", "executeRequests": false, "maxCasesPerField": 3 }

关键信息

分类
Development
输入类型
textarea, text, checkbox, number
输出类型
json
样本覆盖
4
支持 API
Yes

概览

API 契约压力测试器是一款专为开发者与测试人员设计的实用工具。它能够解析 OpenAPI 3.x 规范(YAML 或 JSON),自动为接口字段生成边界值测试用例。您可以选择仅预览生成的测试数据,或配置基础 URL 和授权头,将请求直接发送至真实后端,从而快速发现 API 实现与契约定义之间的不一致问题,提升接口健壮性。

适用场景

  • 在后端接口开发完成后,需要验证实际响应是否严格遵守 OpenAPI 契约定义时。
  • 在 CI/CD 流程或自动化测试前,需要快速生成大量边界值(如超长字符串、非法枚举、越界数值)测试用例时。
  • 重构遗留 API 时,确保新代码的输入校验逻辑与原有的 API 文档规范保持一致。

工作原理

  • 在输入框中粘贴您的 OpenAPI 3.x 规范文档(支持 YAML 或 JSON 格式)。
  • 设置每字段最大用例数,工具将解析规范中的约束条件(如 minLength、enum、minimum)并自动生成边界值请求。
  • (可选)勾选执行真实请求,填入基础 URL 和授权头(如 Bearer Token),工具会向目标服务器发送测试。
  • 获取 JSON 格式的测试报告,查看生成的用例详情、执行结果以及契约不匹配的错误汇总。

使用场景

后端开发人员在交付接口前,通过自动生成的异常数据自测输入校验逻辑是否完善。
测试工程师根据 API 文档快速提取边界测试场景,减少手动编写测试用例的时间。
技术负责人定期对线上或测试环境的 API 进行契约一致性扫描,防止未记录的接口变更。

用户案例

1. 为用户注册接口生成边界测试

测试工程师
背景原因
团队正在开发一个新的用户注册接口,文档中规定了邮箱长度、角色枚举和年龄下限。
解决问题
手动编写覆盖所有字段约束(如必填缺失、非法枚举、数值越界)的测试用例非常繁琐。
如何使用
将注册接口的 OpenAPI YAML 粘贴到规范输入框中,设置“每字段最大用例数”为 3,保持“执行真实请求”为关闭状态。
示例配置
maxCasesPerField: 3, executeRequests: false
效果
工具输出包含 7 个边界测试用例的 JSON 报告,清晰列出了“缺少必填字段”、“无效枚举成员”等测试场景,可直接导入自动化测试平台。

2. 验证测试环境 API 的契约一致性

后端开发者
背景原因
刚完成订单模块的重构,需要确保新的接口实现没有破坏原有的 API 契约。
解决问题
需要向真实的测试服务器发送各种边界请求,以验证后端的错误处理和状态码是否符合文档定义。
如何使用
粘贴订单模块的 OpenAPI JSON,勾选“执行真实请求”,填入测试环境的基础 URL 和授权头,设置超时时间为 10000 毫秒。
示例配置
baseUrl: https://api.test.com, executeRequests: true, authorizationHeader: Bearer token123, timeoutMs: 10000
效果
工具自动向测试环境发送生成的异常请求,并返回执行报告,指出哪些接口在接收非法参数时返回了 500 错误而不是契约定义的 400 错误。

用 Samples 测试

development

相关专题

常见问题

支持哪些版本的 OpenAPI 规范?

目前仅支持 OpenAPI 3.x 版本的 YAML 或 JSON 格式文档,暂不支持 Swagger 2.0。

工具会生成哪些类型的边界值测试?

工具会根据规范中的约束(如必填项缺失、字符串长度越界、数值超出最大/最小值、无效的枚举值等)自动生成对应的异常请求数据。

是否必须发送真实请求?

不需要。默认情况下工具仅生成并输出测试用例 JSON。只有勾选“执行真实请求”并配置 URL 后,才会向后端发送数据。

如何测试需要登录鉴权的接口?

您可以在“授权头”配置项中填入有效的认证信息(例如 Bearer <您的Token>),工具在发送真实请求时会自动携带该请求头。

请求超时时间可以调整吗?

可以,默认超时时间为 8000 毫秒,您可以在配置中将其调整为 500 到 30000 毫秒之间的任意值。

API 文档

请求端点

POST /zh/api/tools/api-contract-stress-tester

请求参数

参数名 类型 必填 描述
openApiSpec textarea -
baseUrl text -
executeRequests checkbox -
authorizationHeader text -
maxCasesPerField number -
timeoutMs number -

响应格式

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON数据: JSON数据

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-api-contract-stress-tester": {
      "name": "api-contract-stress-tester",
      "description": "根据 OpenAPI 3.x 规范批量生成边界值测试请求,并可选发送到真实后端以发现契约不一致。",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-contract-stress-tester",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]