1

我是测试新手。

我在 Linux 上工作。我正在阅读有关在无头模式下进行测试的内容,并遇到了两件事。一种是 X 虚拟帧缓冲区,它在内存中进行图形操作。因此,不显示任何输出。我在这个链接http://www.seleniumtests.com/2012/04/headless-tests-with-firefox-webdriver.html中找到了实现细节。

我遇到的另一个是 HtmlUnitDriver。这也不会在运行测试时打开任何浏览器。我使用 HtmlUnitDriver 编写了一个基本的示例代码,断言似乎工作正常。

我知道 HtmlUnitDriver 不能很好地与 javascript 一起使用。但除此之外,在选择其中一个方面是否有任何重大差异?

我将测试一个确实包含一些 javascript 的 Web 应用程序。

我是这个领域的新手。因此,任何答案、建议等将不胜感激。先感谢您

4

1 回答 1

8

根据我对这两种方法的经验:

  • 在大多数实际情况下,HtmlUnit 会比带有 xvfb 的真正浏览器更快——仅仅是因为它不花时间渲染页面。(数据点:17 秒。HtmlDriver 与 62 秒。FirefoxDriver 用于我现在正在使用的特定测试套件)。
  • 使用 HtmlUnit 同时运行多个测试更容易——而且消耗的资源少得多。如果您有大量测试并且需要它们快速完成(例如,您想遵循 10 分钟构建规则),这可能非常重要。
  • 正如您所说,HtmlUnit 在 JavaScript 和 DOM 方面有自己的特点。并不比任何其他浏览器更好或更差(Firefox、Safari、IE、Chrome ......——它们都有自己的怪癖),但花时间修复错误是非常值得怀疑的。我也发现这些错误很难诊断,但这可能只是我的无知。
  • 真正的浏览器 + xvfb 的一个优点是,您始终可以在没有 xvfb 的情况下使用完全相同的测试并查看发生了什么——甚至可能使用控制台来运行一些 JavaScript 来诊断问题。在使用 HtmlUnit 时,我有时会感到很盲目,并且由于上述怪癖,您不能总是在两种环境中使用完全相同的测试代码。

因此,总而言之,除非总的测试持续时间很重要并且您准备花一些时间与 HtmlUnit 战斗,否则使用常规浏览器 + xvfb 会更容易。

我也喜欢使用 xvnc,它还有一个额外的好处,就是允许您连接到正在运行的测试的屏幕并查看发生了什么(不确定您是否可以使用 xvfb 来做到这一点)。

于 2012-11-02T14:39:48.820 回答