专栏首页开源优测Cypress你应该知道的一些不足之处

Cypress你应该知道的一些不足之处

每当出一个新的工具,很多人都会跟风学习,甚至盲目的迷信,以至于忽略了其本质,任何工具都有不足之处,对于用户而言,不足是正常的,我们需要了解之,然后在实践中发挥其长处,规避不足,从而实现在企业实践中的最佳实践!!!

下面我们一起学习下Cypress的不足的地方,以便在进一步掌握Cypress,以便出现谜一样的自信。

Cypress是一个优秀的前端测试框架,但其并不保证百分百的承诺保证Cypress API都能精确1:1实现。

这就意味着,有可能出现某些API未能按其说明的进行了实现,当然笔者以为这种可能性及可能带来的风险应该是相对较小的,但使用者应该知道这个现实情况。

Cypress还有那些不足呢?

1. Cypress不能同时(并行地)运行多个命令

2. 使用者不能“意外的”忘记return或chain命令

3. 对于失败的命令,不能添加.catch错误处理

上面3点意味着,我们在应用Cypress进行实践时,要失去一些控制性、一些灵活性。

为什么会有上述3点的限制呢? 更大的根源可能是Cypress意图提供一个创建一致的、可靠的测试,期望这些测试在每次运行时的执行完全相同。

众所皆知的是:凡是软件开发,为了一致性、可靠性,一般都要失去一定的控制性、灵活性,而就这几天笔者学习Cypress的情况来看,这个取舍、权衡是值得的。

我们看下Cypress为什么不能同时(并行地)运行多个命令?

在Cypress中,为了保证确保每次都以相同的方式执行所有命令,很多Cypress命令都会以某种方式改变浏览器的状态。

例如request()命令自动获取并设置与远程服务器之间的cookie;

clearcookies()会清除所有浏览器cookies;

.click()使应用程序对单击事件作出响应。

而上面的命令都是不是幂等的,它们都是有副作用的,所以Cypress的命令必须以受控的、串行的方式运行,这也就说明了为什么不能同时(并行地)运行多个Cypress命令。

我们看下对于失败命令,为什么不能添加.catch错误处理?

在Cypress中,对于失败的命令,没有内置的错误恢复功能。一个命令和它的断言最终都通过,或如果一个失败,则所有剩余的命令都不运行,测试失败。

注:这个机制,让我想起了2012年时,我开源的的goose入门测试框架,也是遵循这个基本原则,一个失败则后续命令全部不运行!!!

对于刚学python进行自动化测试的人员,可以尝试看看goose入门测试框架,一个很简单的入门级框架,针对零基础的人员而写的。

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

    作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识...

    前朝楚水
  • 关于gradle你应该知道的一些小事

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统...

    砸漏
  • 你不知道的Cypress系列(2) -- ”该死"的PO模型​!

    自从我的新书<前端自动化测试框架 -- Cypress从入门到精通>上市以来,这本书受到了大量同学热情的追捧和讨论。在跟同学们的交流中,我也了解到, 原来除了国...

    iTesting
  • 你应该知道的关于 CPU 的一些基本知识~

    当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取...

    用户6543014
  • 你不知道的Cypress系列(3) -- 是时候重构自己的思维了!

    在跟同学们的交流中,我也了解到, 原来除了国外优秀的公司(例如Adobe, 迪士尼,AutoDesk等等), 国内也有很多公司在尝试使用Cypress提升测试效...

    iTesting
  • 你应该知道的那些Jupyter Notebook奇技

    Jupyter Notebook是一个在线编辑器,可以在网页上编辑程序,在编辑的过程中,每次编辑一行代码就可以运行一行代码,运行的结果也可以显示在代码的下方,方...

    石晓文
  • 你不知道的Cypress系列(6) -- 多Tab的小秘密

    自从Cypress出现后,市面上Web端自动化测试框架就只剩下了两个: 一个是吊打一切的Cypress, 另一个是其它。虽然Cypress这么优秀,但它也有一些...

    iTesting
  • 关于操作系统的一些事,这些你应该要知道~

    谭庆波
  • 你应该知道这些有意思的代码

    Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推...

    用户6543014

扫码关注云+社区

领取腾讯云代金券