DEV Community

Cover image for The Best Fiddler Alternative
Hassann
Hassann

Posted on Originally published at apidog.com

The Best Fiddler Alternative

最佳 Fiddler 替代方案

Fiddler 作为免费的 Windows 调试代理,赢得了二十年的良好口碑,它能向你展示你的机器从任何应用程序发出的每一个请求,并已解密。那个 Fiddler 现在是 Fiddler Classic,Telerik 自己的页面也直白地描述了它的状态:仅限 Windows、仅限非商业用途、维护模式,且“不承诺发布版本、补丁或技术支持”。受支持的继任者 Fiddler Everywhere 是跨平台且活跃的,但它是订阅制的:根据 Telerik 定价页面,Lite 版按年计费为每用户每月 $7(按月计费为 $10),Pro 版为 $13(按月计费为 $19),Enterprise 版为每年 $37。只有 10 天的试用期,没有免费版本。

立即试用 Apidog

因此,对于任何在工作中使用它的人来说,“免费 Fiddler”已经不复存在,而诚实的选择替代方案的问题一分为二。Fiddler 是一个系统级的 MITM 代理,而 Apidog 并不是,所以本文不会假装它是。但看看大多数开发者实际上是如何使用 Fiddler 的:针对自己的 API 组合请求、检查响应、使用 AutoResponder 规则伪造后端。这是穿着代理外衣的 API 客户端工作,而对于这部分工作,Apidog 是专门构建的家园:一个完整的请求客户端、替代 AutoResponder 规则的智能 Mock 服务器、有文档记录的端点、自动化测试,最多可供 4 个用户免费使用。对于真正的流量捕获,正确的答案是像 mitmproxy 这样的捕获工具,我们在下文中诚实地列出了它们。

Fiddler 发生了什么

现在有两个产品共用这个名字,但都不是以前的那个划算的选择。

Fiddler Classic 仍然可以免费下载,但请阅读细则:仅限非商业用途、仅限 Windows、维护模式,不承诺发布版本、补丁或支持。它早于 HTTP/2 和 gRPC。如果你用它调试公司 API,你就超出了许可范围;如果你使用 Mac 或 Linux 机器,你从来就不属于这个俱乐部。

Fiddler Everywhere 是 Telerik 希望专业人员使用的版本:macOS、Linux 和 Windows,支持 HTTP/2、WebSockets、gRPC 和 SSE。它保留了旧工作流程的两个部分:用于构建和保存 API 调用的组合请求(Compose Requests),以及用于修改流量和 Mock 响应的规则引擎(AutoResponder 的继任者)。问题在于计费方式。修改流量的规则和团队协作功能属于 Pro 版,每用户每月 $13;$7 的 Lite 版涵盖捕获和检查功能;Enterprise 版控制功能费用为 $37。十天试用期,然后开始计费。

这没什么可指责的——维护一个跨平台的解密代理是一项真正的工作。但这改变了权衡:你不再是在决定是否保留一个免费工具,而是在决定哪个付费工具值得这个席位,这取决于你实际上在做 Fiddler 的哪项工作。

Fiddler 中隐藏的两项工作

在选择替代方案之前,请精确分析你自己的使用情况,因为 Fiddler 包含了两项不同的工作:

工作 1:流量捕获。 你需要看到你无法控制的请求:桌面应用程序的回传调用(phone-home calls)、移动应用程序的未公开 API、解密后的浏览器会话。这需要一个安装了证书的系统级 MITM 代理。Apidog 无法完成这项工作,任何 API 客户端都无法做到。

工作 2:API 工作。 你正在构建或使用你可以控制的 API。你组合请求、检查响应、编写 AutoResponder 规则以便前端可以针对伪造的响应进行开发,并重放会话以重现 bug。这些都不需要代理;它需要一个 API 平台。这是大多数 Fiddler 日常使用时间真正花在的地方——这也是 Everywhere 订阅令人痛心的原因:你在为客户端工作支付代理的价格。

如果你的使用主要是工作 1,请直接跳到捕获工具部分。如果主要是工作 2,请继续阅读;这就是 Apidog 旨在完成的工作。(关于更广泛的情况,请参阅数据包捕获工具与 Apidog。)

答案:Apidog

Apidog 是一个被 500,000 多名开发者使用的 API 开发平台:在一个应用中完成设计、调试、测试、Mock 和文档编写,由一个规范驱动。对于前 Fiddler 用户,有四点很重要:

Apidog 一体化 API 平台

  1. 成熟的组合器(Composer)。 Fiddler 的组合请求构建的是一次性调用。Apidog 的请求客户端涵盖 HTTP、WebSocket、SSE、gRPC 和 GraphQL,具有环境、身份验证助手、Cookie、脚本和代码生成功能,并且你保存的每个请求都可以成为一个带有 Schema 的有文档记录的端点,而不是会话日志中的一行记录。
  2. AutoResponder 规则变成了 Mock 服务器。 这是最强有力的迁移案例,具体映射在下文中。Apidog 的智能 Mock 不是在本地维护一个匹配 URL 并返回固化文件的规则列表,而是从一个真实的 URL 提供感知 Schema 的伪造响应,你的整个团队和 CI 都可以访问该 URL,而且在默认情况下无需编写任何规则。
  3. 重放变成了回归测试。 手动重新发出保存的会话变成了可视化的测试场景:链式请求、断言、Schema 验证、数据驱动的运行,可以通过 Apidog CLI 按计划或在 CI 中执行。
  4. 小团队的价格为零。 免费计划最多支持 4 个用户,并提供无限运行、Mock 和发布的文档。付费计划从每用户每月 $9 起,与单个 Fiddler Everywhere Pro 席位的价格范围相同。

切换在功能上的具体表现

组合和检查请求

日常的请求工作可以直接转化:构建请求、发送、检查状态、Header、Body 和时间。Apidog 增加了代理会话所不具备的功能:用文件夹和环境代替捕获日志,用 Schema 验证使错误的负载明确报错,以及可以转化为文档的历史记录。你失去的是对其他应用流量的被动捕获;那是工作 1,仍然由代理负责。如果你的捕获习惯是“看着我自己的前端调用我自己的 API”,那么浏览器 DevTools 加请求客户端是更轻量级的路径,也就是我们在如何安装和使用 Postman Interceptor 中描述的模式。

AutoResponder 规则到智能 Mock

下面是具体的映射。一个用于前端工作的典型 Fiddler AutoResponder 设置:

# Fiddler AutoResponder
EXACT:https://api.example.com~ →    200 · users-42.json (served from disk)
Enter fullscreen mode Exit fullscreen mode

然后每个端点添加一条规则,保持 Fiddler 运行,并祈祷没有其他人需要在他们的机器上使用相同的伪造后端。固化文件可能如下所示:

{
  "id": 42,
  "name": "Ada Lovelace",
  "email": "ada@example.com"
}
Enter fullscreen mode Exit fullscreen mode

在 Apidog 中:

  1. 定义带有响应 Schema 的 `GET ~ OpenAPI 文件并一次性获取所有端点。
  2. 智能 Mock 立即在稳定的 Mock URL 上提供真实的生成数据。无需编写规则。
  3. 需要固定的负载?将 users-42.json 附加为响应示例。
  4. 需要 id 42 返回 200 而 id 99 返回 404?添加根据参数匹配的期望。

这涵盖了所有 AutoResponder 模式(静态文件、按端点伪造、条件响应),并带来了三个升级:Mock 通过 URL 共享,而不是被困在一台机器的代理中;它保持与规范同步;并且它不会为了伪造一个 API 而将整个系统的流量通过拦截器进行路由。

测试、文档和规范

这是类别的跨越,而不是简单的转换。Fiddler 会话随着窗口的关闭而消失;Apidog 端点则积累成一个 API 定义,在你的域名上生成交互式文档、为消费者提供 Mock 以及为 CI 提供测试场景。如果你的团队真正的比较对象是 Postman 或 Insomnia 而不是 Fiddler,我们在最佳 Postman 替代方案和最佳 Insomnia 替代方案中对这些进行了正面交锋的比较。

Fiddler 与 Apidog 一览

Fiddler Classic vs Fiddler Everywhere vs Apidog

功能 Fiddler Classic Fiddler Everywhere Apidog
价格 免费,仅限非商业用途 $7/$13/$37 每用户/月(按年计费) 最多 4 个用户免费;付费从 $9 起
平台 仅限 Windows Windows, macOS, Linux Windows, macOS, Linux, web
状态 维护模式 活跃 活跃
系统级流量捕获 是 是 否
组合 API 请求 基础组合器 组合请求 完整客户端:HTTP, WebSocket, SSE, gRPC, GraphQL
响应 Mock AutoResponder 规则,本地 规则引擎(Pro 级别),本地 感知 Schema 的智能 Mock 服务器,共享 URL,免费
保存的有文档记录的端点 否 会话和保存的请求 带有已发布文档的基于规范的端点
自动化测试 否 基于重放 可视化场景、断言、数据驱动、CI
CLI / CI 运行 否 否 通过 Apidog CLI 免费
团队协作 否 Pro 级别 免费计划,4 个用户

诚实的席位计算

一个需要流量规则和协作功能的 5 人团队需要 Fiddler Everywhere Pro:$13 × 5 × 12 = 每年 $780。同一个在 Apidog 中进行 API 工作的团队需要为 4 个席位支付 $0,再加上第五个席位按每月 $9 计算的 $108,或者如果每个人都使用付费版,每年需要 $540——仍然低于 Fiddler 的账单。但更公平的表述是适配性,而不是价格:那些 Fiddler 席位购买的是 API 工作不需要的流量捕获,却没有购买它确实需要的规范、文档、共享 Mock 或 CI 测试。只让真正调试外部流量的人支付代理价格。

对于真正的流量捕获,请使用捕获工具

当工作需要 MITM 拦截时,请选择代理;不要强迫 API 客户端扮演这个角色:

  • mitmproxy:免费、开源、跨平台;支持控制台、Web UI 和 Python 脚本;当“免费 Fiddler 替代品”指的是代理部分时,这是默认答案。
  • Charles Proxy:付费一次性许可;是移动应用调试的长期选择,具有节流和重写规则。它自身也存在工具老化的质疑,我们在最佳 Charles Proxy 替代方案中对此进行了介绍。
  • HTTP Toolkit:开放核心,可以一键拦截特定的浏览器、终端和 Docker 容器,而不是整个系统;是该组中设置最简单的。
  • Proxyman:macOS 原生(支持 iOS 设备);是 Apple 专属团队的最佳选择。

捕获代理加上 Apidog 是一个连贯的技术栈:代理用于罕见的流量狩猎,Apidog 用于日常 API 工作。为了将调试代理与另一种代理区分开来,请参阅解释的 API 代理与 API 网关。

Fiddler 何时仍然有意义

如果系统范围的解密捕获是你的日常工作,并且你希望背后有一个受支持的商业产品,那么 Fiddler Everywhere 是正确的工具;每月 $13 对此来说是公平的。Fiddler Classic 对于在个人 Windows 机器上进行爱好者调试仍然是合理的,许可协议亦是如此。而且,拥有多年自定义规则经验的 FiddlerScript 老手面临着导入按钮无法消除的切换成本。当你对 Fiddler 的使用主要是组合器(Composer)和 AutoResponder 时,迁移到 Apidog 就会带来回报:当你通过系统代理伪造自己的后端时,一个带有 URL 的 Mock 服务器无疑是更好的形式。

常见问题

Fiddler 仍然免费吗?

Fiddler Classic 是免费的,但有限制:仅限非商业用途、仅限 Windows、维护模式。Fiddler Everywhere 没有免费版本,只有 10 天的试用期,之后为每用户每月 $7 到 $37。关于免费计划上的商业 API 工作,请参阅最佳 Postman 替代方案的对比,或者从 Apidog 的免费 4 用户计划开始。

Apidog 能像 Fiddler 一样捕获我系统的所有 HTTP 流量吗?

不能。Apidog 是一个 API 开发平台,而不是一个系统级的 MITM 代理,我们不会假装它是。要解密任意应用或移动设备流量,请使用 mitmproxy、Charles、HTTP Toolkit 或 Proxyman;我们的数据包捕获工具指南对它们进行了比较,并展示了每一个与 Apidog 的配合方式。

在 Apidog 中什么可以替代 Fiddler 的 AutoResponder?

智能 Mock 服务器。定义或导入一个端点,Apidog 会立即在共享的 Mock URL 上提供基于 Schema 的伪造响应;为固定的负载附加示例,为条件情况附加期望。与 AutoResponder 规则不同,Mock 与规范共存,并且在没有任何人运行代理的情况下为队友和 CI 工作,并且它们可以通过 Apidog CLI 在你的管道中运行。

如何将我的 Fiddler 工作流程迁移到 Apidog 中?

导入你的 API 的 OpenAPI 文件,以便每个端点一次性获得 Schema、文档和实时 Mock,然后将 AutoResponder 规则移植为响应示例和期望。Fiddler 的 SAZ 会话存档不是集合格式,因此将此迁移视为导入你的规范,而不是你的捕获历史。

Fiddler Everywhere 和 Fiddler Classic 一样吗?

不。Everywhere 是一个重写的跨平台订阅产品;Classic 是已冻结的 Windows 免费软件,Telerik 将商业用户指向了 Everywhere。关于邻近工具对这种分歧的版本,请参见最佳 Charles Proxy 替代方案。

停止为 API 工作支付代理价格

如果 Fiddler 是你的请求组合器和伪造后端,请将该工作迁移到为其量身定制的工具中。导入你的 OpenAPI 规范,在几分钟内获得带有实时智能 Mock 的有文档记录的端点,并将测试连接到 CI。下载 Apidog 或在浏览器中开始;一个 4 人团队无需支付任何费用,而且你一直在细心维护的 AutoResponder 规则将变成你可以共享的 Mock URL。

参考资料

外部来源:

关于 Apidog 博客的更多阅读:

Top comments (0)