我可以使用phantom.js来测试一个javascript密集的应用程序吗



目前,我正在使用specflow、selenium、fluent automation和xunit的组合,在chrome中部署的网站实例上测试我的浏览器应用程序。这在开发人员机器上运行良好,但在构建服务器代理上经常失败,除了构建服务器代理速度慢之外,没有其他明显的原因。

我已经浏览了所有的phantom.js文档,我很难理解是否可以使用phantom..js来全面测试我的应用程序。

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

我做了一些搜索,但没有找到任何确定的结果。有人对此有什么建议吗?在这一点上,我不太关心跨浏览器测试,我们有手动QA。这只是一个愉快的早期预警系统,通过所有用户故事的ui自动化功能失败。


在这一切结束时,我做了一些非常有用的更改

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

PhantomJs是一个完整的浏览器实现,它只是不呈现到屏幕上(它确实有一个缓冲区,可以通过屏幕截图捕获)。如果手动测试涵盖了首选浏览器,而您只需要知道硬故障,请尝试一下!

FluentAutomation.SeleniumWebDriver在当前版本中支持PhantomJs。只要选择PhantomJs作为您的"浏览器",它就会工作。FluentAutomation.PhantomJs提供程序已被弃用,并将消失。

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

是。

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

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

最新更新