功能

三块能力,一份请求定义

调试时保存的请求、写在请求上的断言、压测时逐次统计的判据、生成文档时用到字段说明—— 在 APITools 里它们是同一份数据。下面的每一条都是当前版本实际有的行为。

01 / 接口调试

把"能通"变成"对"

请求发出去之后,能看到的远不止一个响应体:实际发出的请求头(含自动补上的那些)、 重定向链路、分段耗时时间线、TLS 证书信息都在。断言则让"这次返回对不对"变成可重复的判据。

  • 请求构建 Query / 请求头 / 认证(Bearer、Basic、API Key、OAuth2)/ 请求体:JSON、form-data(含文件上传)、x-www-form-urlencoded、raw、GraphQL、二进制
  • 变量替换 {{baseUrl}}、{{token}} 走环境;另有内置动态变量 {{$timestamp}}、{{$uuid}}、{{$randomString:12}}
  • 断言 状态码 / 响应时间 / 响应体 / 响应头 / JSON 字段,JSON 路径如 $.data.list[0].id,支持 [*] 通配
  • 卡在哪一段能问出来 超时会直接告诉你是 DNS、TCP 连接、TLS 握手,还是"响应头已到、响应体一直不结束"
  • 代码片段 一键生成 cURL / JavaScript / Python / Java
# 断言区(调试与压测共用同一份判据)
status            == 200
responseTime      <  800            # ms
body            contains  "orderId"
jsonpath  $.code  ==  0
jsonpath  $.data.items[*].id   exists

# 请求卡住时,失败信息会把阶段直接写出来
# 请求超时 (30000ms),卡在:已收到响应头,但响应体
# 一直没结束(已收 18432 字节):目标多半是流式/长连接接口
为什么这点重要。"别的工具 700 毫秒就有结果"而这里一直转,绝大多数情况不是卡死, 而是对方把响应头先回来了、响应体还在慢慢推。别的工具不等结束就把首字节显示出来, 这里则会把"卡在 body 阶段"写进失败信息里,方向一目了然。
02 / 压力测试

实时看着曲线跑完

压测走 SSE 推流,指标每 250ms 刷一次;每秒采样画吞吐曲线,跑完给一份可导出的报告。 长连接复用(keep-alive)打开,长跑不会被服务端超时掐断。

  • 两种模式 按时长(固定并发 / 阶梯加压)或按总请求数;支持预热次数、目标 RPS 限速、请求间隔
  • 实时指标 QPS、成功率、在途请求、平均 / P95 / P99 / P99.9、峰值 QPS
  • 报告 状态码分布、错误码分布、断言明细、失败现场样本,可导出 JSON
  • 不会白跑 目标不可达时提前结束,而不是硬撑满时长
  • 精度边界写在界面上 并发上限 2000;样本超过 20 万时分位由对数直方图插值(误差约 2%),界面会标注
压测只应对你有权限的目标使用;生产环境建议只压只读接口。
12,480QPS(峰值 13,102)
99.98%成功率
43 msP95
每秒采样 · 吞吐30s
QPS P95 折线 失败占比
03 / 文档生成

从你保存的响应里把字段说明推出来

不用手抄字段表:拿你已经保存的响应示例,自动推类型与必填。 数组元素里只有部分对象才有的字段,会被判成非必填——这正是手工维护最容易写错的地方。

  • 一次三种格式 Markdown / 独立 HTML(带侧边目录,可直接发给别人)/ OpenAPI 3.0(可导入 Postman、Apifox)
  • 可选包含 请求与响应示例、响应字段表、请求头、Query 参数、断言、cURL 示例
  • 凭据不外泄 文档里的认证信息保留 {{token}} 变量写法,不会把真实 token 写进文件

下载后自己试一遍

# 导出 OpenAPI 3.0 的片段
paths:
  /orders:
    post:
      summary: 创建订单
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: [amount, currency]
              properties:
                amount:   { type: integer, example: 19900 }
                currency: { type: string,  example: "CNY" }
                note:     { type: string }   # 仅部分样本出现 ⇒ 非必填
Markdown 独立 HTML OpenAPI 3.0
其它

日常里真正会用到的小东西

集合树 · 历史 · 环境

三段式左侧栏,全部落盘到本机的 data/*.json;环境切换后变量即时生效。

请求名随手改

编辑区顶部就能改名,回车或点别处生效:已保存的请求会同步左侧集合树里的名字,未保存的临时请求也会用这个名字保存。

导入 / 导出

导出全部集合与环境;导入支持合并进现有集合,不会把你已有的东西覆盖掉。

深浅两套主题

前端自带浅色 / 深色两套配色,跟随你的使用场景切换。

内置回声接口

本机 /api/echo 接受任意方法:没有可用的测试服务时,也能把调试、断言、压测、文档生成全部跑通。

改完即生效

静态文件一律 no-store,改一行刷新就能看到,不会出现"页面还在跑旧副本"。

这个项目的关键承诺都写成了自动断言(176 条,四道关卡),包括"关掉窗口就退出"、 "data 目录随时能删"这类运行期才生效的行为。 看看关卡都是怎么建的。

功能就这些,没有隐藏的付费项

全部能力都在一个包里:调试、压测、文档生成、断言、环境管理。下载下来就是完整的。