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

Github Action运行缓慢致Cypress测试用例失败,求解决方案

解决Github Action中Cypress测试因速度慢失败的问题

一、关于指定运行服务器

GitHub托管的Runner无法指定具体某台服务器,但可以选择更高资源规格的托管Runner来提升运行速度——这类Runner拥有更多CPU和内存,能有效缓解运行缓慢的问题。比如将runs-on改为大规格版本:

runs-on: ubuntu-22.04-large

如果对运行环境有完全自定义的需求,也可以使用自托管Runner:用自己的服务器部署Runner,就能完全掌控服务器配置和网络环境,但需要自行负责服务器的维护和稳定性。

二、设置超时时间

可以从两个层面设置超时,避免因速度慢导致测试中断:

1. Job级别超时

在Job配置中添加timeout-minutes,自定义整个测试Job的最长运行时间(默认是360分钟):

jobs:
  cypress-run:
    runs-on: ubuntu-22.04-large
    timeout-minutes: 60  # 根据实际测试时长调整
    steps:
      # 后续步骤保持不变

2. Cypress测试本身超时

通过环境变量或命令参数,调整Cypress的各类超时设置(比如默认命令超时、页面加载超时)。可以在env中添加相关变量:

- name: Cypress run
  uses: cypress-io/github-action@v6
  with:
    record: true
    browser: chrome
    spec: cypress/e2e/Customer.cy.js
  env:
    CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    CYPRESS_DEFAULT_COMMAND_TIMEOUT: 15000  # 将命令超时调整为15秒(默认4秒)
    CYPRESS_PAGE_LOAD_TIMEOUT: 60000       # 页面加载超时调整为60秒(可按需修改)

也可以直接在with中通过command参数传递Cypress运行参数:

- name: Cypress run
  uses: cypress-io/github-action@v6
  with:
    record: true
    browser: chrome
    spec: cypress/e2e/Customer.cy.js
    command: npx cypress run --default-command-timeout 15000 --page-load-timeout 60000
  env:
    CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

额外优化建议

  • 启用Cypress缓存,减少每次运行的依赖安装时间:
- name: Cache Cypress dependencies
  uses: actions/cache@v3
  with:
    path: |
      ~/.cache/Cypress
      node_modules
    key: ${{ runner.os }}-cypress-${{ hashFiles('package-lock.json') }}
  • 可以尝试使用更轻量的浏览器(比如Firefox),或确认Chrome无头模式的配置是否存在额外资源消耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:52:31