我正在使用 Java 中的 webdriver 编写测试。有没有办法在 Windows 框中以无头模式运行浏览器(ff / ie)?
我不能使用 linux 机器并且 HtmlUnitDriver 没有帮助,因为我们的 webapp 有许多 ajax 控件。
我正在使用 Java 中的 webdriver 编写测试。有没有办法在 Windows 框中以无头模式运行浏览器(ff / ie)?
我不能使用 linux 机器并且 HtmlUnitDriver 没有帮助,因为我们的 webapp 有许多 ajax 控件。
我已经开始了一个小项目,使用 SimpleBrowser 为 WebDriver 提供驱动程序。你可能想看看:https ://github.com/Teun/SimpleBrowser.WebDriver
不过现在还为时尚早。我希望以贡献和测试的形式提供帮助。
在这一点上,没有我所知道的 Firefox 或 IE 无头版本。由于 Firefox 是开源的,因此您可以获取该浏览器的源代码,然后删除 UI 部分,但我可以看到它存在一些问题。首先,您必须构建一个自定义应用程序来设置您自己的负载测试引擎。其次,您被锁定在一个网络渲染中,尽管我认为 chrome 也是开源的,但它的播放效果不如 Firefox 或 IE(使用系统 .dll 与自定义可执行文件)。第三,没有大量测试,我相信这个选项会出现稳定性问题和其他潜在的不可预见的问题。话虽如此,有一个相当简单的 .net 无头浏览器,并且可能适合称为简单浏览器的负载测试。但是,这取决于您要加载的内容。如果您只是在寻找带宽和服务器负载,那么您应该使用多个浏览器实例。如果您实例化不同的 WebDriver 是否可以很好地播放,我很想知道是否以这种方式使用无头浏览器。IE
WebDriver driver1 = new SimpleBrowser();
WebDriver driver2 = new SimpleBrowser();
.
.
.
.
.
WebDriver driver[n] = new SimpleBrowser();
然后你可以运行 [n] 个并行测试。在上面的代码中还要注意 SimpleBrowser() 不直接挂钩到 WebDriver 接口,您必须扩展接口以引用该 .dll
将测试程序作为 Windows 服务启动,浏览器将正常运行,即使在没有监视器的机器上也是如此。从技术上讲,它们在断开连接的“会话”中运行,但本质上就是您所说的“无头”。
HtmlUnitDriver 确实支持 ajax,并且可以在 java 和 c# 中运行(如果通过 IKVM 移植)。但是,无法在无头模式下运行 IE 和 FF。我无法告诉你我希望有多少次...