【问题标题】:Closing browser during selenium automated end 2 end tests在 selenium 自动结束 2 结束测试期间关闭浏览器
【发布时间】:2016-08-05 18:58:16
【问题描述】:

在典型 SPA 页面的自动化测试期间,浏览器应该在 selenium e2e 测试运行每个场景后关闭还是应该保持打开状态?
我在每个较大的场景之后关闭和打开浏览器时看到的专业人士是上下文是新鲜的,应该没有缓存问题或其他依赖项等问题。但是也许进行硬刷新而不是关闭浏览器就足够了?
保持浏览器窗口打开的优点是整体 e2e 测试的速度 - 关闭浏览器和开始新会话总是需要时间,在我们的例子中,当浏览器打开时两者之间的差异要快 20%。

我的问题是:在打开浏览器并在一个浏览器会话中运行所有测试时是否还有其他潜在问题?

【问题讨论】:

  • 我强烈建议在新浏览器中启动新场景。就速度而言。您是否考虑过并行化测试以获得更快的结果?
  • 谢谢,你能详细说明为什么你强烈推荐这个吗?除了 RemcoW 建议的专家之外,您还有其他专家吗?
  • 长时间运行的场景可能会占用一些可能无法通过刷新来清除的资源..另外强烈建议场景应该有自己的前置条件,而不是结合两个或多个场景来创建一个..自动化测试应始终支持独立性..如果您能够清除浏览器,则说明您的测试中没有依赖项..这表明您可以独立运行您的测试并支持并行性

标签: selenium testing automated-tests


【解决方案1】:

我自己通过关闭浏览器并在每次运行时重新启动一个浏览器来完成。就像你说的那样,它将为你提供一个新的背景。另一个原因是我可以为每个测试用例设置自定义设置。就我而言,我正在执行大量下载。我通过在每个测试用例之前更改 firefox/chrome 设置来确保每个测试用例都下载到自己的文件夹。

我在每次运行后关闭和打开浏览器的另一个主要原因是它允许您并行运行测试。当对所有测试用例使用单个浏览器时,这是不可能的。如果你运行然后我并行运行,你的测试将比 20% 更快。

【讨论】:

  • 谢谢。我们的测试相互依赖,因此并行运行并不是一个真正的选择。此外,由于某些内部原因将其更改为不依赖是不合理的。
【解决方案2】:

我希望以下选项可以帮助您。

  1. 您可以只关闭窗口,而不是关闭整个驱动程序。 driver.close()
  2. 你可以加driver.manage().deleteAllCookies();
  3. 您也可以尝试隐身

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true); capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    相关资源
    最近更新 更多