我可以使用phantom.js来测试javascript繁重的应用程序吗?

时间:2013-11-27 13:03:57

标签: jasmine phantomjs ui-automation acceptance-testing fluentautomation

目前,我正在使用specflow,selenium,fluent自动化和xunit的组合来测试我在Chrome网站的部署实例上的浏览器应用程序。这在开发人员计算机上运行良好,但是除了构建服务器代理很慢之外,构建服务器代理经常出现故障。

我已经到处都是phantom.js documentation我很难理解我是否可以使用phantom.js来完全测试我的应用程序。

我的应用程序有很多javascript逻辑,我使用requirejs加载我的所有模块,我想知道我是否可以使用幻影的无头浏览器功能来测试它的所有功能。它会下载所有的javascript文件,然后允许我在dom上执行操作,比如启动包含表单的模式吗?很多UI都是用淘汰模板构建的。

我已经完成了一些搜索,但没有任何确定性。有没有人对此有任何建议?此时我对跨浏览器测试并不感到困扰,我们已经获得了手动QA。这只是一个通过所有用户故事的ui自动化失败的快乐路径早期预警系统。


最后,我做了一些非常有用的改动

  • 访问selenium驱动程序并检查jQuery.active
  • 如果css选择器为选择器返回多个项目,则创建一个新的expectOne / assertOne

2 个答案:

答案 0 :(得分:7)

PhantomJs是一个完整的浏览器实现,它不会呈现给屏幕(它确实有一个可以通过屏幕截图捕获的缓冲区)。如果手动测试覆盖了首选的浏览器而你只需要知道硬故障,那就试一试吧!

FluentAutomation.SeleniumWebDriver在当前版本中支持开箱即用的PhantomJs。只需选择PhantomJs作为您的“浏览器”即可。 FluentAutomation.PhantomJs提供程序已弃用,将会消失。

FluentAutomation.SeleniumWebDriver.Bootstrap(FluentAutomation.SeleniumWebDriver.Browser.PhantomJs);

答案 1 :(得分:3)

您可能会发现CasperJS对测试更有用。内置测试仪模块非常易于使用。 Casper还开放使用SlimerJS(用于Gecko / Firefox测试),无需额外代码。

在Phantom或Casper中你可以使用page.evaluate()来运行任何客户端JavaScript,所以这应该没问题。