3

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

我一直在研究 phantom.js文档,我很难理解是否可以使用 phantom.js 来完全测试我的应用程序。

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

我已经进行了一些搜索,但没有找到任何确定的结果。有人对此有什么建议吗?在这一点上,我对跨浏览器测试并不那么在意,我们为此进行了手动 QA。这只是用于通过所有用户故事的 ui 自动化来实现功能失败的快乐路径预警系统。


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

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

2 回答 2

7

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

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

FluentAutomation.SeleniumWebDriver.Bootstrap(FluentAutomation.SeleniumWebDriver.Browser.PhantomJs);
于 2013-11-27T17:14:57.990 回答
3

是的。

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

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

于 2013-11-28T08:32:41.457 回答