我们正在使用Selenium来自动化我们的UI
测试。最近我们看到大多数用户使用Chrome。所以我们想知道 - 使用PhantomJS和Selenium的利弊:
他们正在攻击不同的问题。由于PhantomJS在命令行上运行完美,因此无论是作为开发工作流程的一部分还是/或在持续集成服务器中,它都适合作为第一层烟雾测试。 Selenium针对多个浏览器,因此它非常有用,可确保跨浏览器的一致性并在不同的操作系统上进行广泛的测试。
如果您的Web应用程序需要在各种Web浏览器上运行,则仅使用PhantomJS运行UI测试不会产生最多的测试覆盖率。但是,在进行深入测试之前,启动PhantomJS并进行一些基本的健全性检查是完全可以的。想象一下,测试一个财务应用程序的疯狂,其中登录屏幕无意中被破坏而且无法正常运行!
请注意,最新的PhantomJS中最近的WebDriver支持使两者之间的界限略微模糊。现在可以使用PhantomJS快速运行测试,然后(假设没有遇到严重错误)继续在Selenium设置中彻底执行相同的测试。
通过最近的WebDriver集成(如Ariya所说),您现在可以使用Selenium来驱动PhantomJS。
这非常强大。
您可以在每次签入时通过无头Unix服务器上的CI运行一组完全自动化的Selenium测试(使用PhantomJS作为WebDriver实现)。然后,如果要测试浏览器兼容性,可以通过将基础WebDriver实现更改为Chrome,Firefox等来在本地运行测试。
我目前正在编写一个Web提取框架。我有524个测试,使用XPath从250个网站获取数据。最初该框架使用HTML解析器HTMLCleaner,但我目前正在调查使用Selenium,因为我想要Javascript支持。我已经对HtmlUnit,Chrome,Firefox和PhantomJS drivers进行了测试。以下是每种方法所用时间和失败次数的比较:
Failures Time (secs)
HtmlCleaner 0 82
HtmlUnit 169 102
Google Chrome 38 562
Firefox 46 1159
PhantomJS 40 575
一些评论:
我强烈推荐PhantomJS。
利用Selenium和PhantomJS的强大功能PhantomJS具有无头浏览器功能,因此最好将其用作selenium的浏览器之一(除了传统浏览器,如IE,Chrome等),这种方法的优点:
使用PhantomJS时遇到的挑战:
我的应用程序定价Web应用程序: