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

测试套件测试用例排列:如何避免Cypress中相同步骤重复代码?

Cypress重复测试用例优化方案

核心实现逻辑

你需要的是参数化测试(表格驱动测试) + 公共步骤提取的组合方案,完全不用重复写相同的步骤代码。


方案1:测试套内置公共前置+遍历生成用例

把所有用例共同的long steps of click abcd步骤抽到当前测试套的beforeEach钩子中,该钩子会在所有测试用例执行前自动运行,无需每个用例单独编写。再把不同的测试参数做成数组,遍历自动生成所有用例:

describe('选择项测试套件', () => {
  // 公共前置步骤,所有用例执行前自动触发
  beforeEach(() => {
    // 此处替换为你实际的点击abcd长步骤代码
    cy.get('#abcd').click()
    // 其余公共步骤全部放在这里即可
  })

  // 定义所有测试参数组合,新增用例只需要加这部分配置
  const testCases = [
    { firstVal: '1a', secondVal: '2a', caseDesc: '选中1a+2a' },
    { firstVal: '1a', secondVal: '2b', caseDesc: '选中1a+2b' },
    { firstVal: '1b', secondVal: '2a', caseDesc: '选中1b+2a' },
    { firstVal: '1b', secondVal: '2b', caseDesc: '选中1b+2b' },
  ]

  // 遍历参数自动生成测试用例
  testCases.forEach(item => {
    it(`测试用例:${item.caseDesc}`, () => {
      // 仅需要编写每个用例独有的选择逻辑
      cy.get('#第一个选择器id').select(item.firstVal)
      cy.get('#第二个选择器id').select(item.secondVal)
      // 补充你的断言逻辑即可
    })
  })
})

方案2:公共步骤全局复用(多测试套共用场景)

如果这段长步骤需要在多个测试套中使用,可以将其封装为Cypress自定义全局命令:

  1. 在cypress/support/commands.js文件中定义命令:
Cypress.Commands.add('execAbcdClickSteps', () => {
  // 此处替换为你实际的点击abcd长步骤代码
  cy.get('#abcd').click()
  // 其余公共步骤全部放在这里即可
})
  1. 任何测试用例中都可以直接调用该命令,无需重复编写逻辑:
it('测试用例示例', () => {
  cy.execAbcdClickSteps() // 直接调用公共步骤
  cy.get('#选择器').select('1a')
  // 其余用例逻辑
})

额外优化:自动生成全排列组合

如果后续选项数量变多,不需要手动写所有组合,可以自己实现一个全排列函数自动生成testCases数组,进一步减少重复配置工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 17:54:03