有什么方法可以限制对 Chrome DevTools 中特定 API 的调用,同时让其他人不受限制?

Any way to throttle calls to a specific API in Chrome DevTools while leaving others unthrottled?

我有一个与几个不同 API 通信的单页应用程序,我希望限制对特定应用程序发出的请求以进行测试。是否可以使用 Chrome DevTools 将网络节流特定于域?

我知道您可以在 Chrome 中限制网络并通过“网络条件”选项卡模拟慢速连接(例如常规 3G 连接),但这会影响所有请求。我希望只影响一个特定的 API 来模拟其他服务真的很慢但其他服务都很好的情况。

不,ChromeDevTools 网络节流不允许您进行选择性节流。

如果您想模拟特定服务变慢并且您在本地计算机上安装了这些服务 运行,我建议您安装一个节流代理(例如 Charles proxy)。

如果部署了这些服务,但您仍想模拟缓慢的响应,我会尝试修改 /etc/hosts 以指向本地 charles 代理。

如果您可以更改 URL,则有一个网站 http://www.deelay.me/ that is a delay proxy for HTTP resources. For example, if you want URL http://example.com/example to be delayed by 5 seconds, change it to http://www.deelay.me/5000/http://example.com/example

现在有人为此构建了一个 chrome 扩展 - URL Throttler

Chrome 开发人员工具不允许 select 对网络请求进行节流。我发现了这个 reddit post - https://www.reddit.com/r/chrome/comments/ogun3w/limitations_of_chrome_devtools_throttle_network/ 其中涵盖了延迟网络请求的 3 种方法。

  1. 使用浏览器 DevTools 网络限制功能限制网络流量
  2. Public只有可用的 API,它们会延迟响应并使用浏览器扩展将您的实际请求重定向到那些 Public API
  3. Chrome 为网络请求增加实际延迟的扩展

所有这三种方法在这篇文章中都有很好的解释 - https://requestly.io/blog/2021/07/02/adding-delay-to-network-requests/

为了进行特定于域的请求限制,您可以使用方法 3。您可以配置 Requestly Delay Network Request 规则来添加延迟。

您可以按照以下步骤操作

  1. https://requestly.io
  2. 请求获取
  3. 打开https://app.requestly.io/rules
  4. 创建规则和Select Delay Request 规则类型
  5. 像这样配置延迟请求规则

注意事项 - 您在应用延迟请求时应该具体,因为它会使您的浏览体验非常缓慢。如果在多个请求上添加延迟时需要请求类型,则应添加过滤器

在请求类型上添加过滤器

只需单击延迟请求规则中的过滤器图标,然后您就可以 select 请求类型,例如 - JS CSSXHR

多次使用。这行得通。

参考资料

免责声明:我按要求构建(并且仍在用心构建)

network-spinner-devtool 是一个浏览器开发工具扩展,具有 URL 级别的配置和控制能力,允许在发送 http 请求之前或接收响应之后引入延迟(仅在 firefox 中支持)。

同时支持Chrome和火狐浏览器

也可以从 Chrome 网上商店安装 Chrome DevTools