Мы используем Junit5 + Selenium / Webdriver для запуска параллельных тестов.
junit-platform.properties имеет следующие настройки:
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent
junit.jupiter.execution.parallel.config.dynamic.factor = 1.5
junit.jupiter.execution.parallel.config.strategy = dynamic
The Test *. java:
public class TestSuiteParallel extends TestSuite {
@RepeatedTest(2)
void testParallel() {
WebDriver driver = new ChromeDriver();
driver.get("https://www.amazon.com")
driver.quit();
}
}
При работе в Linux все работает отлично, у нас есть несколько Chromium windows, обрабатываемых отдельно каждым рабочим потока. Безголовый или нет, он работает.
Работает в Windows, всегда открыто только ОДНО Chrome окно с несколькими вкладками. И иногда работает только последняя открытая вкладка (на переднем плане). В основном все вкладки заморожены, ничего не происходит, через несколько секунд мы получаем WebDriverException: unknown error: Chrome failed to start: crashed
Если я изменяю код на @RepeatedTest(1)
, он работает без ошибок, как ожидалось.
Так почему это работает так иначе? Могу ли я заставить WebDriver всегда открывать отдельный браузер windows? А может, это скорее настройка операционной системы?