我正在开发一套自动化的Selenium测试。我有一些代码可以处理我们网站的搜索过滤器检查(检查它们的有效性,选择的内容等)。这段代码的运行速度比我预期的要慢很多。我正在使用Page Object模式开发套件,在开发过程中,我将调试main方法中的各种位,然后在Page Objects正常运行后使用JUnit实现测试方法。
我注意到在Main和JUnit中构造对象的执行时间之间存在显着的时间差异。在Main中,对象构造大约需要15秒。但是,当我通过JUnit运行它时,对象构造大约需要16分钟。这显然是一个足够大的差异,我很关注它,并想知道如何让JUnit执行时间更接近我在通过main运行时观察到的内容。我很欣赏任何想法,或者更好地理解造成延误的原因。谢谢!
配置: Java 8, 硒2.53.0, JUnit 4.12, Fiefox 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执行,但是我&#39 ;我非常确定它是在两个地方(The Filters构造函数)上运行的完全相同的代码位,其中发生了时间差。
答案 0 :(得分:0)
嗯,事实证明这对我来说太过分了。我在我的测试类中错误地配置了我的WebDriver,这导致wait
超出了我的预期。