You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress中阻止不必要的XHR请求运行?

Cypress 阻止多余XHR请求运行方案

方案1:拦截并中止无效请求(Cypress 6.0及以上版本适用)

使用官方内置的cy.interceptAPI可匹配所有XHR、fetch类型的请求,按需拦截不需要的请求:

  • 屏蔽特定第三方请求(适用于埋点、广告、统计类不影响主业务的请求):
// 可放在beforeEach钩子中全局生效,也可在单条用例前单独配置
cy.intercept('https://www.google-analytics.com/**', {statusCode: 204})
cy.intercept('https://hm.baidu.com/**', {forceNetworkError: true})
  • 配置白名单仅放行业务域请求:
cy.intercept('*', (req) => {
  // 仅匹配你的业务域名,其余所有请求直接销毁
  if(!req.url.includes('你的业务域名.com')) {
    req.destroy()
  }
})

方案2:仅隐藏XHR日志(无需阻止请求实际运行)

如果你只是不想在测试运行器的命令列表中看到大量XHR记录,不需要真的拦截请求,可以在全局配置文件中添加日志过滤规则:

  1. 打开cypress/support/e2e.js文件(Cypress 10以下版本为cypress/support/index.js)
  2. 添加如下代码:
Cypress.on('log:added', (log) => {
  if (log.instrument === 'command' && ['request', 'intercept'].includes(log.name)) {
    log.display = false
  }
})

注意事项

不要随意屏蔽业务主流程依赖的XHR请求,否则会导致页面功能异常,测试结果失效,仅建议屏蔽不影响页面正常交互的第三方请求。


问题参考截图


内容的提问来源于stack exchange,提问作者AlexWhite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:39:01