我需要测试一个角度应用程序,我正在考虑使用哪个测试框架。 有人可以列出这两个测试框架之间的差异,每个测试框架的好/坏。什么时候应该使用它们?可以替换第二个吗?
编辑1: 我会尝试集中我的问题。我真正感兴趣的是2个框架的技术能力。 例如,我发现的一些差异:
selenium不依赖于app技术,angular仅适用于角度应用
这些是我正在寻找的差异类型 - 可以用一个做什么而不能用另一个做什么
感谢
答案 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拥有更广泛的文档和更广泛的社区。 p>
使用Selenium,您可以使用各种不同的语言对测试进行编码,以及使用IDE。 Angular限制用于纯JavaScript。对于很多手动测试人员来说,这是大多数人没有的技能。
Selenium和Angular都是开源的,(相信我)在调试问题和理解各自API的设计决策方面有很大帮助。