您在帖子中涉及很多内容。我想尝试帮助您进行一些通用分类,这些分类可能有助于您了解使用不同技术会得到什么。
BDD(行为驱动开发):
这与其说是一种技术,不如说是一种测试的“方式”。名称和首字母缩写词类似于 TDD,但方法非常不同。TDD 是在开始编码之前编写一组测试的想法,并且您编写的代码应该在通过这些测试时完成。最常由开发人员在开发过程中完成。一个非常重要的区别是 TDD 确实测试了实现。BDD 没有。您想否定实现,只测试行为,或应用程序的面向用户的功能。这并不意味着它始终是最终用户。您可以使用 BDD 样式测试来测试后端。重要的是,使用 BDD,您关心输出并且不应该测试实现。
Cypress vs Cucumber:
这是两个不同的东西。赛普拉斯可以使用 Cucumber(这里是一个包的链接,可以帮助你做到这一点) 默认情况下,它使用 Mocha,这是另一种 BDD 语法,您可以使用它来组织您的测试...重要提示:Cucumber 是一种语法,您的代码由 GIVEN、WHEN 或 THENS 引用,它们代表 Preconditions?setup,下面的操作测试和预期的结果。Cucumber 最酷的地方在于,这些 GIVEN/WHEN/THEN “步骤”调用了您的代码。为什么重要的是有人阅读测试,他们可以确定如果 GWT 步骤是不同测试中的相同步骤,那么两者都会使用相同的底层代码......很酷,是吧?Cucumber 是一种编写高度可读测试并允许其他人读取或编写测试的方式,现在底层代码将是相同的。您可以通过重新组织 GWT 来编写新的测试!您还可以使用 RegEx 表达式来允许测试用例参数化。您甚至可以将这些参数连接到数据表!这是一个例子
Cypress.IO 与 Selenium 有何不同?
这可能是一篇完整的文章。我将介绍对我来说最重要的区别。架构......这是这篇文章中图表的链接. 这有什么意义?被测应用程序在由 cypress 控制的容器内运行。这允许测试人员存根请求(向内数据)和窥探或模拟数据(向外数据)。这超出了明显的网络流量。您甚至可以存根浏览器的功能。赛普拉斯不支持多标签测试。没什么大不了的,你存根新窗口(或选项卡)操作,当被测试的应用程序触发它时,它只是在同一个窗口中打开 URL。这简直令人惊叹,因为您几乎可以使用任何功能或流量来做到这一点。如果您没有良好的编程知识,这并不容易。开发人员可以提供帮助。
赛普拉斯不是什么
更新:跨浏览器测试现在对 Cypress4.0 的支持有限。涵盖 Firefox 和 MS Edge(>=79)。
有趣的事实:MS Edge 版本号从 44.xx 跃升至 79.xx,当他们更改为 chromium 引擎时,它们的版本号将与 chrome 同步......
目前不支持跨浏览器测试。您只能在 chrome 中进行测试。
您在 Cypress 上面提到了后端、ui 和 e2e 测试
通常用于测试前端或 UI。它可以用于集成测试,也可以用于单元测试(使用 jest 之类的东西可能会更好)。它还可以使用cy.request
命令触发 REST 请求。您可以使用一些 javascript 编写一些 API 测试,但是像 postman 这样的工具对于 API 的全面测试套件会更好。
Selenium 可以类似地用于 UI、API 和 e2e 测试。您不能将其用于较低级别的集成测试或单元测试。他们有可以帮助您进行 REST(API) 测试的库,但您希望将 API 测试工具用于大型套件。cypress 和 Selenium 都支持 API 测试,以允许发送调用以加速测试(登录后端并获取添加到本地存储的令牌,而不是点击 UI 并让它为您处理令牌设置)。
听起来你对自动化测试还是很陌生。起初很艰难,但这是一个伟大的领域。我会更详细地研究我上面提到的一些东西。随时要求更多说明。祝测试愉快!!!