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 }

关键信息

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

概览

API 契约压力测试器是一款专为开发者和测试人员设计的自动化工具。它能够解析 OpenAPI 3.x 规范(支持 YAML 和 JSON),自动为接口的各个字段生成边界值和异常测试用例。你可以选择仅生成离线测试计划,或配置基础 URL 直接向真实后端发起请求,从而快速发现实际响应与 API 契约定义不一致的问题,提升接口健壮性。

适用场景

  • 在 API 开发完成后,需要验证后端实现是否严格遵守 OpenAPI 契约定义时。
  • 在接入 CI/CD 流程前,希望批量生成接口边界值测试用例以补充自动化测试覆盖率时。
  • 重构遗留系统接口时,需要快速探测未处理的异常输入(如超长字符串、非法枚举或越界数值)。

工作原理

  • 在文本框中粘贴完整的 OpenAPI 3.x 规范文档(YAML 或 JSON 格式)。
  • 配置基础 URL 和授权头(可选),并设置每字段最大用例数及请求超时时间。
  • 勾选“执行真实请求”以向后端发送测试,或保持关闭仅生成测试计划。
  • 点击运行,工具将解析契约并输出包含缺失字段、类型错误及越界值等场景的详细 JSON 测试报告。

使用场景

后端开发人员在交付接口前,进行快速的自我契约审查,确保所有必填项和边界条件都已正确校验。
测试工程师利用生成的异常用例数据,快速构建针对新业务 API 的健壮性测试脚本。
技术负责人定期对线上或预发环境的 API 进行自动化巡检,排查未在 OpenAPI 文档中声明的 HTTP 状态码。

用户案例

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

测试工程师
背景原因
团队正在推行契约驱动开发,测试工程师需要为新的用户注册接口编写异常测试用例。
解决问题
手动根据 API 文档梳理所有字段的边界值(如长度限制、枚举值)非常耗时且容易遗漏。
如何使用
将注册接口的 OpenAPI YAML 粘贴到规范输入框,关闭“执行真实请求”,设置每字段最大用例数为 3。
示例配置
{"executeRequests": false, "maxCasesPerField": 3}
效果
工具秒级输出 JSON 格式的测试计划,包含针对 email 长度不足、role 枚举非法等边界测试用例,可直接导入测试平台。

2. 验证订单查询接口的健壮性

后端开发
背景原因
订单查询接口刚刚重构完成,包含多个可选的查询参数(如分页、状态枚举、时间戳)。
解决问题
需要确认后端代码是否对所有非法的查询参数进行了拦截,并返回了契约中定义的 400 错误码。
如何使用
输入 OpenAPI 规范,填写测试环境的基础 URL,开启“执行真实请求”,并填入有效的 Bearer Token 授权头。
示例配置
{"baseUrl": "https://api.test.com", "executeRequests": true, "authorizationHeader": "Bearer eyJhb..."}
效果
工具自动向测试环境发送了数十个包含非法分页参数和错误枚举的请求,报告高亮了返回 500 内部错误的未处理异常,帮助开发快速修复。

用 Samples 测试

development

相关专题

常见问题

支持哪些 OpenAPI 版本?

当前工具专门针对 OpenAPI 3.x 规范设计,支持 YAML 和 JSON 格式的文档解析。

工具会测试哪些类型的异常输入?

包括缺失必填字段、空字符串、长度越界字符串、非法枚举值、越界数值以及与文档定义不符的数据类型。

必须填写基础 URL 吗?

不需要。如果留空或关闭“执行真实请求”,工具只会离线生成契约测试计划,不会发起任何网络请求。

如何处理需要鉴权的接口?

你可以在“授权头”字段中直接填写原始的鉴权信息(例如 Bearer <token>),工具在发起真实请求时会自动携带该请求头。

为什么有些请求体字段没有生成用例?

当前版本主要覆盖 path、query、header 以及基于 application/json 的请求体字段。如果使用了其他 Content-Type,可能无法完全解析。

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]