不稳定测试管理
你将学到
- 如何在Cypress Cloud中检测和管理不稳定测试
- 如何启用不稳定检测和告警
- 使用不稳定测试管理功能的优势
通过启用测试重试,Cypress Cloud能够从CI/CD流 水线记录的Cypress测试运行中检测、标记和跟踪不稳定测试。
当测试在多次重试尝试中无需代码更改即可交替通过和失败时,该测试被视为不稳定。例如,测试执行失败后,在未修改代码的情况下再次执行却通过了。
Cypress能够自动重试失败测试,以减少不稳定测试导致整个测试运行或CI构建失败的情况。
不稳定检测
Cypress Cloud高级功能
测试不稳定检测功能仅适用于团队版Cypress Cloud计划用户。
应对不稳定测试的一种方法是系统化地检测和监控它们,评估其严重性以帮助确定修复优先级。
启用测试重试
测试重试是Cypress Cloud检测不稳定测试的_基础机制_。因此,**必须启用测试重试**才能使用任何不稳定测试管理功能。
若需对测试重试标记为不稳定的测试结果有更多控制,可使用实验性测试重试功能(Cypress 13.4.0
及以上版本支持)。
标记不稳定测试
包含不稳定测试的测试运行会在Cypress Cloud"最新运行"页面被标记出不稳定测试数量。该页面还支持通过"Flaky"过滤器筛选不稳定测试运行。

任何因测试重试导致的多次运行失败都会导致对应测试用例被标记为不稳定。
不稳定测试分析
Cypress Cloud高级功能
测试不稳定分析功能仅适用于团队版Cypress Cloud计划用户。
不稳定测试分析页面通过以下维度全景展示项目的不稳定状况:
- 随时间变化的不稳定测试数量趋势图
- 项目整体不稳定程度
- 按严重性分组的不稳定测试数量
- 可筛选的所有不稳定测试日志(按严重性排序)
测试不稳定的严重性由出现频率或不稳定率决定。该指标可用于优先处理需要修复的问题。

点击分析页面的任意不稳定测试用例,将显示详情面板,包含:
- 最近不稳定运行的历史记录
- 该测试用例运行中最常见的错误
- 相关测试用例变更日志
- 随时间变化的失败率与不稳定率趋势图
这些测试用例级别的详细信息为调试根本原因提供了深度上下文。

失败率 vs 不稳定率
启用测试重试后,理解失败率与不稳定率的区别至关重要。不稳定测试分析页面会跟踪每个测试用例的这两个指标:

被标记为不稳定的测试用例可能在多次重试后最终通过。单个重试尝试的测试结果状态与最终测试状态是相互独立的。
例如:项目配置了最多3次重试。前两次尝试失败,但第三次通过,最终状态为通过。
基于此概念,可能出现最终失败率为零但仍存在不稳定的情况:

不稳定告警
Cypress Cloud高级功能
测试不稳定告警功能仅适用于团队版Cypress Cloud计划用户。
Cypress Cloud可通过源代码管理(GitHub、GitLab、BitBucket)、Slack和Microsoft Teams集成发送告警,帮助及时掌握不稳定情况。
GitHub
在项目的GitHub集成设置中可启用通过PR评论和状态检查的不稳定告警:

启用后,GitHub PR评论将在测试摘要中显示相关不稳定测试数量,并包含突出显示具体不稳定测试的"Flakiness"模块。

Slack
在Slack集成设置中可启用不稳定告警:

启用后,当检测到不稳定测试时Cypress Cloud将发送Slack消息:

另请参阅
- 阅读我们关于应对测试不稳定的博客文章。