Selenium Webdriver和角度e2e之间有什么区别?何时应该使用它们?

时间:2013-04-24 05:44:46

标签: angularjs selenium selenium-webdriver webdriver automated-tests

我需要测试一个角度应用程序,我正在考虑使用哪个测试框架。 有人可以列出这两个测试框架之间的差异,每个测试框架的好/坏。什么时候应该使用它们?可以替换第二个吗?

编辑1: 我会尝试集中我的问题。我真正感兴趣的是2个框架的技术能力。 例如,我发现的一些差异:

  1. selenium webdriver能够在多台机器上并行运行网格,另一方面,角度场景的运行速度比硒快得多。
  2. 使用selenium我可以使用键盘键,如Enter,Backspace等,也可以执行拖放操作。
  3. selenium不依赖于app技术,angular仅适用于角度应用

    这些是我正在寻找的差异类型 - 可以用一个做什么而不能用另一个做什么

  4. 感谢

3 个答案:

答案 0 :(得分:8)

两者都应该用于测试角度应用。但是,根据我的经验,它们有不同的用途。

在将新功能集成到您的应用程序或更改现有功能时,

Angular e2e 测试是您最好的朋友。如果您要对代码进行更改,他们会确保您的应用程序仍然按预期运行。这些测试比硒快得多,不需要那么深入,而且根据我的经验,最好在将新功能推送到版本控制服务器之前执行。

Selenium 测试应该用于回归测试。这些测试应该比Angular e2e测试更深入,并且应该在将代码推入生产之前执行。

答案 1 :(得分:3)

更新:此问题现在可能不那么重要了。截至2014年1月,Angular计划从他们自己的E2E套件转移到protractor库进行功能测试,使用Selenium Webdriver。

  

如果您正在开始一个新的Angular项目,您可能需要考虑使用Protractor,因为它将在不久的将来取代当前的E2E测试方法。

     

(资料来源:http://docs.angularjs.org/guide/dev_guide.e2e-testing


我也在努力解决这个问题。

今天我的想法是:

1)使用Angular e2e测试对外部依赖项的 UI与模拟进行集成/回归测试(如应用服务器)。

2)在test / qa环境中使用Selenium对完整系统进行集成/回归测试。

似乎Angular e2e测试有助于填补单元测试在测试视图和与UI事件相关的控制器逻辑中留下的空白。所有Angular测试都应该模拟外部依赖。

Selenium似乎最适合测试整个系统,因为用户将体验它。

答案 2 :(得分:2)

这是一个主观问题,因此我首先会告诉你做一些研究。没有太大区别。

这是一个非常新的项目,而Selenium则更为成熟。例如,WebDriver构建在其上的JSON Wire Protocol是一个真正的W3C规范。这表明该项目非常成熟且非常稳定。

由于上述原因,Selenium拥有更广泛的文档和更广泛的社区。

使用Selenium,您可以使用各种不同的语言对测试进行编码,以及使用IDE。 Angular限制用于纯JavaScript。对于很多手动测试人员来说,这是大多数人没有的技能。

Selenium和Angular都是开源的,(相信我)在调试问题和理解各自API的设计决策方面有很大帮助。