Cypress 里的 Flaky test 管理
鼠标 hover 上去,看到提示信息:This test both passed and failed when retried within a run
何谓 Flaky test?Cypress 官网有如下定义:
当一个测试可以在多次重试尝试中通过和失败而没有任何代码更改时,它被认为是不稳定的。
例如,执行了一个测试并失败,然后再次执行该测试,代码没有任何更改,但这次它通过了。
当之前测试过的代码测试失败时,这是一个强烈的信号,表明代码出现了新的错误。 之前,测试通过,代码正确; 现在测试失败并且代码无法正常工作。 一个好的测试套件的目标是使这个信号尽可能清晰和定向。
然而,flaky 测试则不同。 flaky 测试是使用相同的代码显示通过和失败结果的测试。 鉴于此,测试失败可能意味着也可能不意味着存在新问题。 并尝试通过使用相同版本的代码重新运行测试来重现失败,可能会也可能不会导致测试通过。 我们开始认为这些测试不可靠,最终它们失去了价值。 如果根本原因是生产代码中的不确定性,则忽略测试意味着忽略生产错误。
一个统计数据供大家参考:
Google 在其持续集成系统上运行了大约 420 万个测试。 其中,大约 63,000 个在一周内出现了不稳定的运行。 虽然这占 Google 测试的不到 2%,但它仍然对 Google 工程师造成很大的拖累。
以上数据来自这篇博客。
测试重试是使 Cypress Dashboard 能够检测不稳定测试的基本机制。 因此,需要启用测试重试才能利用 cypress 表板提供的任何不稳定的测试管理功能。
带有不稳定测试的测试运行将在仪表板“最新运行”页面中标有不稳定测试的数量。 Flaky 测试运行也可以通过此页面中的“Flaky”过滤器过滤进和过滤出。
如下图所示:
https://github.com/SAP/spartacus/pull/14401
点 view details,再选择某个具体的 cypress job 查看明细:
由测试重试触发的多次测试运行尝试中的任何失败都将导致给定的测试用例被标记为不稳定。
第一次尝试失败,第二次尝试成功:
关于 Spartacus 里 flaky test 的讨论。
Protractor 是除了 Cypress 之外另一个 Angular 端到端测试框架:
对于 Spartacus UI 来说,页面的几乎每个部分都是动态创建的 (我们需要先进行后端调用)。
Protractor 底层是否调用 Selenium?
一篇如何用 Selenium 编写更稳定的测试的文章,值得一读。
更多Jerry的原创文章,尽在:“汪子熙”:
Cypress 里的 Flaky test 管理相关推荐
- 计算机配置里 无 管理模板,组策略里打开后没有管理模板
组策略里打开后没有管理模板 对于大部分计算机用户来说,管理计算机基本上是借助某些第三方工具,甚至是自己手工修改注册表来实现.其实Windows XP组策略已经把这些功能集于一体,通过组策略及相关工具完 ...
- 用java里的junit框架_使用Java JUnit框架里的@SuiteClasses注解管理测试用例
使用Java JUnit框架里的@SuiteClasses注解管理测试用例 发布时间:2020-08-13 13:43:08 来源:ITPUB博客 阅读:96 作者:i042416 Suppose y ...
- Cypress 里的 ensureAttached 检测原理
下面是我用 Cypress 开发的端到端测试.click 调用里的 force:true 参数是我后来加上去的. 如果不添加,会遇到错误消息: 在方法 $Cy.ensureAttached 里面跑出来 ...
- 个人财务管理系统有源码怎么用_微信里的客户怎么管理?用鱼汛微信管理系统...
鱼汛工作手机是一款[1]销售微信管理系统,具有微信分析.电话分析.客户分析.绩效分析.安全管控.使用管控等六大功能,真正实现安全,高效,可管理! 鱼汛手机能为企业带来什么价值? 随着沟通方式的变革,微 ...
- 同一公司里,为什么搞管理的总是比搞技术的工资高?
大家好,我是老杨. 回答文章标题的这个问题之前,我觉得很有必要先来讲一个故事. 有一家发电厂的巨型电机出了故障,修理工怎么也找不出毛病在哪儿,于是,特地请来了一位专家级别的工程师前来指点. 工程师在现 ...
- 话里话外:为什么管理咨询业必须走专业化服务之路
咨询就是给别人专业的建议.好的咨询,可以让人家做出正确的决策.少走弯路. 专业服务公司之所以能够生存,除了有市场需求外,还在于服务提供商能够提供"价廉物美&quo ...
- git图文工具_全网最详细的Windows里Git client客户端管理工具SourceTree的下载与安装(图文详解)...
不多说,直接上干货! 很多人用Git命令行不熟练,那么可以尝试使用SourceTree进行操作. 安装之前的必备 (1)Git的安装 (2)net Framework 4.5 win7/8需要.net ...
- 话里话外:家族化管理模式和职业化管理模式孰优孰劣
中国改革开放三十年,在民营企业中有大批老板现今五六十岁,现在或未来都要考虑为企业选好接班人的问题.他们该如何传位呢?"世袭制"古已有之,"能者居之"亦古已有之. ...
- 话里话外:参展管理信息化年会 聚会谈咨询需求有市场
早上6点赶飞机回沪,落地后立刻领教上海的闷热.回家换了件衣服,14:00前赶到上海复旦皇冠假日酒店参加由畅想网组织的中国管理信息化年会. 和前年比,这届规模差不多,有五六百人(去年在无锡办 ...
最新文章
- Spring之AOP由浅入深
- 二、安装Spark集群
- Activity两个启动方法的区别
- 你知道用git打补丁吗?
- 库克“一语成谶”:又有 30 万台安卓设备被“感染”了!| 文末福利
- html转为纯文本并且保留换行,使用jsoup将html转换为纯文本时,如何保留换行符?...
- kicad最小布线宽度默认是多少_超实用PCB布线技巧,菜鸟和老司机都应该知道!...
- jquery文本和值text、html、attr、val
- mui 怎么调用系统键盘_电脑开机关机的几种方法,计算机电源键鼠标键盘网络唤醒图文教程...
- 学子商城实训项目总结
- springboot利用拦截器和过滤器获取post请求参数
- Android——自定义带刻度的SeekBar单向拖动条
- 引用变量和对象--作为初学者的混淆
- 如何在线打开Xmind文件 — 百度脑图在线工具
- 英国内政部(Home Office)间谍机构(spy powers)假装它是Ofcom咨询中的一名私人公民1514378282474...
- hive URI ${systemjava.io.tmpdir%7D$%7Bsystemuser.name%7D
- matlab黑白棋盘格,请不要一再错过!黑白棋盘格魔法瓷砖(组图)
- python图像处理---python的图像处理模块Image
- 决策树之ID3 ,C4.5 ,CART,理论+实例
- python天天向上续。尽管每天坚持,但人的能力发展并不是无限的,它符合特定模型。实例1的修改。改造实例代码1.1。回文数。