13

Protractor 是构建在 WebDriverJS 之上的 Angular 应用程序的端到端测试框架。

我是 Web 测试领域的新手,我试图弄清楚使用量角器而不是直接使用 WebDriverJs 有什么好处。量角器的附加值是多少?

4

3 回答 3

16

Protractor 做了很多非常有用的事情。它们都基于@Edwin 提出的想法。Protractor 知道您正在测试的应用程序是 Angular 应用程序,因此它知道您正在使用某些服务,因此它实际上会加载这些服务并为您监视它们。

例如,在典型的端到端测试(使用 WebDriverJS 或其他框架)中,您有很多等待/睡眠。您单击一个需要 AJAX 请求的按钮,然后您必须进入 3-4 秒的睡眠状态以等待该 AJAX 调用返回。好吧,在 Angular 中,所有 ajax 请求都(或应该)使用$http模块完成。Protractor 监视$http模块并在您的请求待处理且页面正在呈现时自动为您添加睡眠。因此,您不再需要猜测请求将花费多长时间,然后您不必担心您的测试会因为请求花费的时间太长而失败。

它还允许您根据输入ng-model{{bindings}}页面或ng-repeat元素等内容查找元素,以便您可以轻松快速地找到要测试的元素。

Julie 实际上解释了为什么她在此视频中开发 Protractor 而不是使用 WebDriver,并且她在问答环节的最后回答了这个问题(尽管视频的质量非常粗糙,因此观看起来可能很烦人)。我希望这会有所帮助。

于 2013-10-21T22:02:47.000 回答
16

Protractor 的附加价值是 Protractor 了解 Angular。这有一些优点,例如:

  • 您不必构建等待语句来等待角度处理,因为量角器知道 Angular 何时仍处于忙碌状态并等待它。
  • 您可以在诸如 Angular 绑定、Angular 中继器、..
于 2013-10-19T11:15:26.980 回答
2

如果应用程序是在 AngularJS 上开发的,使用 Protractor 对其进行测试将是一个好处。

这是因为,

  • Protractor 是 AngularJS 应用程序的端到端测试框架,作为解决方案集成商工作 - 结合了强大的工具和技术,如 NodeJS、Selenium、webDriver、Jasmine、Cucumber 和 Mocha。

  • 它有一系列来自 Selenium 的定制,可以轻松地为 AngularJS 应用程序创建测试。

  • Protractor 还加快了测试速度,因为它可以优化睡眠和等待时间,因为它避免了测试中大量“睡眠”和“等待”的需要。

  • Protractor 允许基于 Jasmine 组织测试,因此允许在 Jasmine 上编写单元测试和功能测试。

  • 它在真实浏览器和无头浏览器上运行。

  • 允许运行针对远程地址的测试

而且我们Anjular js有自己的定位器,像模型,中继器,绑定,可以很容易地被量角器理解来识别对象

结论

Protractor 很简洁——我们认为它是 Selenium Webdriver for JavaScript 的一个非常有用的演变。

它不仅限于测试 AngularJS 应用程序——尽管这两个应用程序通常一起提到。但是 - 它主要是为 Angular 设计的,至少目前需要做一些工作才能在非 Angular 页面上使用它。

如果您打算逐步将您的网站/应用程序迁移到 Angular - 您可以立即开始编写 Protractor E2E 测试。

于 2015-07-17T04:09:50.600 回答