使用无头浏览器进行自动化测试如何与真实浏览器中的测试同时进行?

时间:2016-08-23 00:03:10

标签: automated-tests headless-browser

我一直在研究使用无头浏览器与真实浏览器的利弊,但我不确定它们是如何结合在一起的。

我的印象是:

  • 在无头浏览器中测试运行得更快
  • 无头浏览器会遗漏某些在特定浏览器上可能显示不同的内容

了解以上内容,我如何构建测试套件?无头浏览器的有用用途是什么?

1 个答案:

答案 0 :(得分:3)

关于您的展示次数:

  

无头浏览器中的测试运行得更快

也许。您的里程可能会有所不同。绝对要使用无头浏览器来执行测试应该比启动成熟的浏览器更快,但整体性能的提升将取决于测试和被测系统。如果测试等待30秒执行操作,则在无头浏览器上运行它无济于事;如果被测系统需要花很多时间来回答操作,那么在无头浏览器上运行它也无济于事。

  

无头浏览器会遗漏某些在特定浏览器上可能显示不同的内容

真。它是一个完全不同的浏览器,具有不同的引擎。在无头浏览器中,测试将捕获不依赖于浏览器的错误和仅在无头浏览器中发生的错误。值得考虑的事实是,系统的最终用户不会正常使用无头浏览器,因此您可能不关心只会发生无头的错误。

考虑到这一点,为了建立测试套件,请仔细查看您的具体情况:

  • 如果您的代码具有特定于浏览器的行为,则应通过编写涵盖该特定行为的测试并使用相关浏览器运行它们来验证该行为。

  • 但是,必须在特定浏览器中运行某些测试并不意味着必须针对该“真实”浏览器运行整个套件。您可以在测试套件中针对无头浏览器运行通用测试,尤其是如果您的运行可以获得无头能够在您的情况下提供的性能改进。

  • 如果您的最终用户大多使用一个浏览器并且您不希望更改,那么可能值得在该浏览器中运行整个套件,将其作为您的主要关注点和参考。您将捕获对您的用户最重要的错误,这可能会弥补您无法无头操作所带来的性能损失。

话虽如此,浏览器遵循标准的行为越多,行为也越相似,浏览器特定的问题和行为就会越少,因此无头的测试将会越多。