【问题标题】:Unsure why Selenium methods are running fast in Main but slow in JUnit不确定为什么 Selenium 方法在 Main 中运行得很快,但在 JUnit 中却很慢
【发布时间】:2016-12-30 13:02:53
【问题描述】:

我正在开发一套自动化的 Selenium 测试。我有一些代码可以处理检查我们网站的搜索过滤器(检查它们的有效性、选择的内容等)。这段代码的运行速度比我预期的要慢得多。我正在使用页面对象模式开发套件,在开发过程中,我会从主要方法中调试各种位,然后在页面对象正常运行后使用 JUnit 实现测试方法。

我注意到在 Main 和 JUnit 中构造对象的执行时间之间存在显着的时间差异。在 Main 中,对象构造大约需要 15 秒。然而,当我通过 JUnit 运行它时,对象构造大约需要 16 分钟。这显然是一个足够大的差异,我对此感到担忧,并想知道如何让 JUnit 执行时间更接近我在通过 main 运行时观察到的时间。我会很感激任何想法,或者更好地理解造成延迟的原因。谢谢!

配置: 爪哇 8, 硒 2.53.0, JUnit 4.12, 菲狐48

以下是有问题的代码行:

// Run in main

// getFilters() returns new Filters(webDriver);
Filters filters = resultsPage.getFilters(); 

// Run with JUnit (through IntelliJ)
filters = resultsPage.getFilters();

本质上,唯一的区别是 1) 测试类中的过滤器是静态的,并在我的 @BeforeClass 方法中设置,2) 它们通过 IntelliJ 通过 JUnit 运行,而不仅仅是由 IntelliJ 执行,但我很确定它是在发生时差的两个地方(过滤器构造函数)上运行的完全相同的代码位。

【问题讨论】:

  • 这听起来确实很奇怪,但是如果没有访问您的源代码和系统,就很难说什么。我会首先检查您的代码是否真的相同;并做相同的事情。好吧,显然不是,但我会先看看单元测试到底在做什么。
  • @GhostCat - 我已编辑问题以提供更多详细信息。从本质上讲,我确信它是相同的代码,因为它是在不同时间内被调用和执行的对象的构造函数。

标签: java selenium junit


【解决方案1】:

好吧,事实证明这是我的一个错误。我在我的测试类中错误地配置了我的 WebDriver,这导致wait 超出了我的预期。

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 2012-07-12
    • 1970-01-01
    • 2023-01-09
    • 2016-01-21
    • 1970-01-01
    • 2012-10-06
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多