gpt4 book ai didi

testing - 在 Linux 中使用 HtmlUnitDriver 和使用 Xvfb 编写 headless 测试有什么区别?

转载 作者:行者123 更新时间:2023-11-28 20:18:24 31 4
gpt4 key购买 nike

我是测试新手。

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

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

我知道 HtmlUnitDriver 不能很好地与 javascript 一起工作。但除此之外,选择其中一个与另一个有什么主要区别吗?

我将测试一个包含大量 javascript 的 Web 应用程序。

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

最佳答案

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

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

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

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

关于testing - 在 Linux 中使用 HtmlUnitDriver 和使用 Xvfb 编写 headless 测试有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060157/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com