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

Cypress多URL测试:忽略失败继续执行并标记异常URL

解决方案

要实现单个URL测试失败不中断其余测试,同时清晰标记失败URL,可通过动态生成独立测试用例的方式实现,每个URL对应一个独立的it块,这样单个测试失败不会影响其他测试执行,且测试报告会明确显示失败的URL。

修改后的测试脚本如下:

/// <reference types="cypress"/>

const urlTest = require('../../fixtures/URLs.json')
const estado = 'São Paulo'
const municipio = 'SAO PAULO'

describe('Test de url', () => {
  // 遍历URL数组,为每个URL生成独立测试用例
  urlTest.forEach((param) => {
    it(`Verificar componente de revendedores em: ${param.url}`, () => {
      cy.visit(param.url)
      cy.welcomeBannerAndCookiesAcceptation()

      // 每个测试用例独立设置拦截,避免跨测试干扰
      cy.intercept('POST', '**/WhereToBuyResult').as('searchResultState')
      cy.intercept('POST', '**/CitiesReSellers').as('searchResultTown')
        
      cy.validateMunicipioFieldIsAvailable() 

      cy.getState(estado) 

      cy.wait('@searchResultTown')

      cy.getTown(municipio) 

      cy.wait('@searchResultState')

      cy.validateIfResselersAreVisible() 
    })
  })
})

关键修改点说明:

  • 移除原有的单个it块,改为遍历urlTest数组,为每个URL动态生成独立的it测试用例,每个测试完全独立执行,单个失败不会中断整体流程。
  • 在it的名称中加入当前测试的URL,测试报告中会直接显示哪个URL对应的测试失败,无需额外标记。
  • 每个it内部独立设置cy.intercept,避免不同测试用例之间的拦截规则互相干扰,保证测试独立性。

额外优化(可选)

如果需要在测试失败时自定义日志或标记,可在每个it中添加错误监听:

it(`Verificar componente de revendedores em: ${param.url}`, () => {
  // 监听测试失败事件,输出自定义日志
  cy.on('fail', (error) => {
    cy.log(`URL ${param.url} 测试失败,原因:${error.message}`)
    // 抛出错误确保测试报告标记为失败
    throw error
  })

  // 原有测试步骤...
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:55:18