前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress你应该知道的一些不足之处

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

作者头像
苦叶子
发布2020-05-20 15:56:14
1.2K0
发布2020-05-20 15:56:14
举报
文章被收录于专栏:开源优测

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

下面我们一起学习下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入门测试框架,一个很简单的入门级框架,针对零基础的人员而写的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档