当前位置: 首页 > 面试题库 >

每个测试方法都有新的WebDriver实例吗?

颜啸
2023-03-14
问题内容

在Selenium-webdriver中创建webdriver实例的最佳实践是什么?每个测试方法,每个测试类别或每个测试运行一次?

启动它们似乎相当(非常!)昂贵,但是在测试之间保持开放很可能会泄漏测试方法之间的信息。

还是有其他选择-单个webdriver实例是单个浏览器窗口(不包括弹出窗口),还是有一种方法可以从给定的驱动程序实例启动新窗口/会话?

谢谢马特


问题答案:

我发现在使用真正的浏览器(例如Firefox)时,在测试方法之间重用浏览器实例可以节省大量时间。使用HtmlUnitDriver运行测试时,几乎没有好处。

关于不确定性测试的危险,这是完全确定性测试和您的时间之间的权衡。集成测试通常涉及这些折衷。如果要进行完全确定性的集成测试,则还应该担心在两次测试运行之间清除数据库/服务器状态。

如果要重用浏览器实例,您绝对应该做的一件事是在两次运行之间清除/存储cookie。

driver.manage().deleteAllCookies();

我在tearDown()方法中做到了。另外,如果您的应用程序在客户端存储了任何数据,则需要清除该数据(可能通过JavascriptExecutor)。对于正在测试的应用程序,执行此操作后看起来应该像是完全不相关的请求,这实际上将不确定性行为的风险降到最低。



 类似资料:
  • 根据以下链接:https://stackoverflow.com/a/20056622/1623597 https://stackoverflow.com/a/15640575/1623597TestNG不会在每个方法测试中创建新实例。 我有spring boot应用程序。我需要编写集成测试(控制器、服务、存储库)。有时为了创建新的测试用例,我需要数据库中的一些实体。为了忘记数据库中任何预定义的实

  • 问题内容: 从另一个问题中,我了解到在Java中 可以为Enum的每个实例定义特定的方法 : 让我感到惊讶的是,这甚至是可能的,每个实例专用的“专有方法”是否都有 名称 来查找文档? 另外, 应该如何使用 ?由于下一个未编译: 我应该如何使用这些“专有”方法? 问题答案: 您不能引用这些方法,因为您正在有效地为每个枚举创建匿名(*)类。由于它是匿名的,因此只能从匿名类本身内部或通过反射引用此类方法

  • 我最近将Chrome浏览器版本升级到78,将Selenium Web驱动程序版本升级到3.141.0,并将Selenum Chrome驱动程序版本更新到78.0.3904.7000。 当我通过Azure管道在远程机器上运行测试时,由于波纹管失败,我的所有测试都失败了。请建议如何处理此问题 OneTimeSetUp: Automation.test.Framework.models.exceptio

  • 主要内容:代码的说明在本节中,将学习如何创建第一个Selenium自动化测试脚本。 在此测试下,将自动执行以下测试操作: 调用Firefox浏览器。 打开网址: www.baidu.com 点击百度搜索文本框。 输入关键字 - “小牛知识库” 单击“搜索”按钮。 接下来将逐步创建测试用例,以便详细了解每个组件。 第1步 - 启动Eclipse IDE并打开在本教程的上一节(配置Selenium WebDriver)中

  • 问题内容: 目前,我正在阅读“ JUnit in action”一书。在这本书中,我发现以下内容: JUnit会在调用每个@Test方法之前创建测试类的新实例。这有助于提供测试方法之间的独立性,并避免测试代码中的意外副作用。因为每个测试方法都在新的测试类实例上运行,所以我们无法在所有测试方法之间重用实例变量值。 现在,我看不出这种方法有什么意义: 例如: 对于测试类CalculatorTest,没

  • 本文向大家介绍您所熟悉的测试用例设计方法都有哪些?相关面试题,主要包含被问及您所熟悉的测试用例设计方法都有哪些?时的应答技巧和注意事项,需要的朋友参考一下 (1)等价类划分 (2)边界值分析法 (3)错误推测法 (4)因果图方法