【问题标题】:Why do I need Protractor when I have Cucumber and Selenium?当我有黄瓜和硒时,为什么我需要量角器?
【发布时间】:2020-04-14 09:32:10
【问题描述】:

我们使用 Angular 进行前端开发,使用 Java 进行后端开发。我们使用 Cucumber 和 Selenium 进行 BDD 和端到端测试。我最近阅读了 Protractor,我知道它可以用于端到端测试。但是我不明白为什么我已经有了黄瓜和硒,为什么还需要它。当我已经有黄瓜和硒时,有人可以帮我了解量角器的用途吗? 提前致谢。

【问题讨论】:

  • 它只是 selenium webdriver (WebDriverJS) 的另一个包装器。看看架构。protractortest.org/#/infrastructure
  • 谢谢。我以前读过这篇文章,但我仍然不明白当我有 Cucumber 和 Selenium 时为什么需要量角器。 Protractor 可以做比 Cucumber 和 Selenium 做的更多的事情吗?
  • Protractor 是 Javascript 对 selenium 的封装。 Angular 是由 Javascript 编写的代码。假设应用程序的前端和后端都是 Javascript 代码,我认为选择 Javascript 测试工具而不是 Java 等其他语言,Python 是更好的选择。在您的情况下,您将 Selenium 作为测试工具,将 Cucumber 作为测试用例框架。您可以继续使用它们进行端到端测试。如果选择量角器,则需要 Javascript 代码测试用例。因此,在考虑项目成员目前拥有的技术堆栈、项目紧迫性、投资/回报时,您可以使用 Protractor。
  • 谢谢大家。开发人员,您所说的“同步”是什么意思?你能解释一下吗?

标签: angularjs selenium protractor cucumber gherkin


【解决方案1】:

Cucumber

Cucumber 支持行为驱动开发 (BDD)。它允许以客户可以理解的逻辑语言指定预期的软件行为。具体来说,Cucumber 允许执行以面向业务的文本编写的功能文档。它运行以行为驱动开发 (BDD) 风格编写的自动化验收测试。 Cucumber BDD 方法由其称为 的普通语言解析器组成,Cucumber 使用该解析器来定义设计为非技术性和人类可读的测试用例,并共同描述与软件系统相关的用例。 Gherkin 语法背后的主要目的是在由开发人员、业务分析师和经理组成的整个团队中促进行为驱动的开发实践。它从业务管理部门定义需求的初始阶段和开发生命周期的其他阶段开始牢固地建立明确的需求。


Protractor

Protractor 是用于 应用程序的端到端测试框架。 Protractor 与 AngularJS 版本大于 1.0.6/1.1.4 一起工作,并且与 Angular 应用程序兼容。 Protractor 的基本形式是构建在 WebDriverJS 之上的 Node.js 程序。 Protractor 针对在真实浏览器中运行的应用程序运行测试,并像用户一样与它进行交互。 Protractor 使用Jasmine 测试框架作为其测试接口。


结论

所以最大的区别似乎是使用范围,因为 Cucumber 主要用于 验收测试,而 Protractor结束端到端测试框架,专门用于基于angular / angularjs 的应用程序。

【讨论】:

  • 感谢大家的回答。 Dev 在正确的轨道上回答我的问题。如果可以,我希望他/她回答我的后续问题。如果有人能给我举个例子,说明 Protractor 能做 Cucumber 不能做的事情,那将是一个很大的帮助。我已经有 Cucumber 和 Selenium,所以我试图了解 Cucumber / Selenium 组合无法单独完成所有测试的用例。提前致谢。
【解决方案2】:

Protractor 是和 Selenium 一样的工具,protractor 和 selenium 的区别在于,当你需要测试 Angular 应用程序时,protractor 会更好。

如果你想以 BDD 风格编写测试,你也可以使用 Cucumber 和 Protractor,就像你使用 Selenium 一样。

【讨论】:

    【解决方案3】:

    Cucumber 是一个测试运行程序,它使用 BDD“Given,When,Then”方法进行测试,允许对构成场景的任务进行描述和分解。您可以使用这些来包装任何形式的测试,它增加了与未来的开发/测试团队沟通的能力,以查看一个损坏的测试,同时也与更广泛的业务进行沟通。

    Protractor 是一个允许网站自动化的库,就像 Selenium 一样,主要区别在于它们对 Angular 的支持。

    Angular 经常在页面已经加载后加载组件,而 Protractor 将等待这些组件加载而无需添加等待,这最终将加快您的测试,或者至少加快它们的编写速度。

    本质上,Protractor 将使测试 Angular 更容易开箱即用,如果你想利用这种测试工具的交流优势,你没有理由不能用 Cucumber 包装 Protractor。

    【讨论】:

      猜你喜欢
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      相关资源
      最近更新 更多