最近,我偶然发现了一种名为Cypress的现代端到端测试框架,该框架将于今年公开发布。乍一看,它确实很棒-有有趣的内置功能,例如从开箱即用中模拟网络请求,显式等待特定的AJAX请求,直接通过赛普拉斯直接进行API调用的直接方法, -在仪表板和许多其他仪表板中(好,我已经买了)。

而且,有意思的是,赛普拉斯并不是建立在硒的基础上的,硒具有很多优点,但也具有潜在的重要性目前的缺点-似乎无法在IE,Safari或Firefox中运行赛普拉斯测试。

另一方面,我们为基于Protractor的Angular应用程序提供了一个庞大的测试代码库。赛普拉斯是测试AngularJS应用程序的正确工具吗?与不在WebDriver之上构建赛普拉斯相关的潜在问题是什么?在决定是否切换到Cypress时,我们还应考虑哪些其他事项?

评论

首先,我听说过-听起来很有趣。不过,值得关注的是,如果您查看自述页面的历史记录,他们会不断更改公开测试版的日期,并且已经“即将进入公开测试版”已有两年了(例如github.com/cypress-io/cypress / commit /…)。我可能会拭目以待,看看他们是否真正做到了,然后再购买可能在5年后仍可能出现的工具。

@ c32hedge啊,对,好电话!可能还为时过早。.我在考虑使用赛普拉斯尝试单独进行一些测试,例如,进行一些高级隔离的内部烟雾测试。谢谢。

以下是有关您所问问题的中型文章:Cypress.io与量角器:端到端测试之战希望对您有所帮助!

#1 楼

开源:Cypress.IO看起来很有希望,但是我一直在开始在生产项目中使用它。我主要的理由是它是一家商业公司,我不能确定他们是否遵守其开源承诺。我认为开发工具应该是开源的。如果由于预算限制我不确定我是否可以将其用于将来的项目或公司,我不想花费我的时间和公司的资源。

主要的问题是他们会去吗?完全开放源代码还是功能高级模型。他们的业务模型可能是诸如云并行测试运行之类的额外服务,但是目前他们的业务模型还是未知的。

他们一直说他们将开源,但是我们一直在等待。
/>
跨浏览器支持:

对跨浏览器支持的支持已在其功能列表中。最糟糕的情况是,它们围绕WebDriver构建了包装器。我仍然想知道自动化跨浏览器测试在当今有多么重要。我希望框架能够解决这个问题,最近我还没有遇到很多跨浏览器的问题。但是那时我不支持较旧的IE和/或移动应用程序。如果您仅支持最新的现代浏览器,那么也许仅在Chrome上进行测试就足够了。

页面对象:

我还担心如何构造代码以实现可维护性。对于新的测试框架,我希望具有该内置组件。


是否可以使用Page Object模式?就页面对象而言,您应该能够使用常规的JavaScript函数和
.as()别名来实质上重新创建页面对象为您提供的内容。

https://docs.cypress.io/faq/questions/using-cypress-faq.html#Can-I-use-the-Page-Object-pattern


赛普拉斯还没有。 .as()的结构看起来很有趣,但我认为最终我会围绕柏树构建自己的包装纸,感觉这超出了目的。我也想知道它是否可以与他们的视觉测试运行器一起使用。

用法:

一些咨询公司正在使用它并进行展示。这是荷兰最近的一次聚会。他们已经在通讯中推进了至少一年。

结论:

我会一直等到它发布或冒供应商锁定的风险。

#2 楼

开源:

我是Cypress.io的开发人员。赛普拉斯最近发布了其公开测试版,现已开放源代码。赛普拉斯仪表板服务(Cypress Dashboard Service)用于在CI中运行测试时显示测试记录和数据,它对开源项目和免费提供。根据私人项目的使用情况付费(类似于GitHub)。我们已尝试在此定价时尽可能透明。如果您还有其他问题,也可以直接与我们联系-support@cypress.io。在发布确切的价格之前,我们目前正在做一些价格发现,但是它将类似于其他开发工具。

跨浏览器支持

我们同意,跨浏览器支持的重要性不如从前,但我们仍然打算提供跨浏览器支持。它可以在我们的路线图上找到,可以在我们的文档和GitHub存储库中找到。

结论:

我们在未来的路线图上有很多东西,对此感到非常兴奋到目前为止,我们在开源之后已经看到了许多贡献。通常,我们鼓励您尝试一下。 npm install cypress --save-dev-花费5分钟即可启动并运行测试。

#3 楼

敏捷。逐步进行尝试。

我至少会给它一个机会,方法是制作一个快速的烟雾套件,然后从中查看进展情况,并将按照步骤进一步采取步骤结果。