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

Cypress中首个测试用例失败后如何配置非递归式重试重载

Cypress 测试重试(retries)配置方法

Cypress 内置的重试能力完全可以实现落地页用例失败后自动重载重跑,不需要手写递归逻辑,失败1-2次自动重跑的需求可以通过两种粒度的配置实现:

单测试用例粒度配置(推荐,仅对首页加载用例生效)

直接在对应的it块传入配置项指定重试次数即可。重试触发时Cypress会自动重新执行整个用例逻辑,包括beforeEach等前置钩子中的页面访问操作,天然适配网络波动导致的首页加载失败场景。修改后的用例代码如下:

it('should load home page', { retries: { runMode: 2, openMode: 2 } }, () => {
  cy.waitUntil(() =>
    cy.contains('Home', { timeout: 500000 }).should('exist')
  );
});

配置参数说明:

  • runMode:通过cypress run命令执行(一般为CI流水线自动化执行场景)时的最大重试次数,设置为2代表首次执行失败后最多重跑2次,累计最多执行3次,完全匹配失败1-2次自动重载的需求
  • openMode:通过cypress open打开可视化界面本地调试时的最大重试次数,可根据调试习惯调整,不需要本地调试重试可设为0

全局配置(所有测试用例统一生效)

如果需要给全量用例统一配置重试规则,可以在Cypress配置文件中添加全局配置:

Cypress 10+ 版本(cypress.config.js)

const { defineConfig } = require("cypress");

module.exports = defineConfig({
  retries: {
    runMode: 2,
    openMode: 0,
  },
  e2e: {
    // 原有e2e测试相关配置
  },
});

Cypress 10 以下旧版本(cypress.json)

{
  "retries": {
    "runMode": 2,
    "openMode": 0
  }
}

注意:如果仅需要首个落地页加载用例配置重试,优先选择单用例粒度的配置方式,避免其他用例无意义重试增加整体测试执行耗时。重试触发时会自动重新执行对应用例关联的所有钩子函数,如果你的页面访问cy.visit()逻辑写在beforeEach钩子中,不需要额外编写页面刷新代码,重试时会自动重新触发页面加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:01:22