angularjs应用程序可以用硒自动化吗?如果是的话,我们为什么要使用量角器?

时间:2014-12-09 14:13:48

标签: angularjs testing selenium selenium-webdriver protractor

我知道我们可以使用Selenium自动化AngularJs应用程序。但是我们有一个单独的E2E测试框架,它是用于AngularJs应用程序自动化的Protractor。

任何人都可以帮助我理解为什么我们应该使用量角器?为什么不选择Selenium?

3 个答案:

答案 0 :(得分:18)

不确定我理解你的问题。我是否正确地假设你宁愿使用Selenium - 但是想要了解你所缺少的东西?

嗯 - Selenium提供了自动化Web浏览器的方法 - 因此用于自动化e2e测试。 Selenium API具有几种主要编程语言的实现 - 允许您使用Java,C#,python,ruby,JavaScript等编写测试。

如果您已经拥有基于selenium的e2e测试框架 - 您也可以将它用于AngularJS网络应用程序。您还可以编写必要的JavaScript脚本,一旦使用webdriver运行 - 将让您完成Protractor所做的一切 - 但您必须自己完成(只需借用Protractor源代码)。

为什么可行?因为Protractor基本上采用了Selenium Webdriver的JavaScript实现,并以一种在测试Angular JS Web应用程序时让您的生活更轻松的方式包装它。

你可以在我的这篇老帖子中看到具体的解释: http://testautomation.applitools.com/post/94994807787/protractor-vs-selenium-which-is-easier

我会说,如果你: 1.想用JavaScript编写测试代码 2.主要关注Angular JS应用程序

您可能需要考虑使用Protractor。再一次 - 没有魔法。他们所做的一切都在他们的源代码中 - 所以如果你宁愿坚持使用硒,你也可以选择。

答案 1 :(得分:7)

protractor是一个端到端的浏览器自动化测试框架,可以通过WebDriverJs工作,这是一个javascript selenium webdriver。

How it works?文档页面引用:

  

Selenium是一个浏览器自动化框架。硒包括   Selenium Server,WebDriver API和WebDriver浏览器   驱动程序。

     

量角器与Selenium协同工作以提供自动化   测试基础设施,可以模拟用户与网站的互动   角色应用程序在浏览器或移动设备中运行。

     

Protractor是WebDriverJS(JavaScript绑定)的包装器   对于Selenium WebDriver API。

enter image description here

另见:

答案 2 :(得分:2)

使用量角器,您可以使用JavaScript编写e2e测试,这是您使用Angular app编写的语言。

此外,它还具有Angular特定功能。

  • 它的元素查找器等待Angular的$ digest循环和$ http完成。因此,您在睡眠和计时问题上遇到困难的机会就会减少。
  • 您可以选择具有一些常用指令的元素,例如ng-model,ng-repeat,ng-bind等。这有点方便,因为您可能在Angular应用程序中具有相对较少的ID和类,因为您只需要它们CSS。