Доброго дня. В связи с увеличением покрытия тестов появилась мысль попробовать их распараллелить. Нахожусь пока на стадии сбора информации.
Немного о запуске:
Запускаем тесты в основном только под chromedriver последних версий. Редко используем иные браузеры, но в далеком будущем хотелось бы иметь выбор.
Используем TC, агенты которого динамичны. При запросе поднимаются с нужным build env.
Соответственно, все тесты будут запускаться на одного агенте в несколько потоков. Количество потоков хотелось бы регулировать.
Главное требование: чтобы тесты внутри тестового класса запускались последовательно.
Немного о проекте. Используем собственную обвязку над selenide.
Пример testng.xml:
Для параллельности сразу посмотрите в сторону Selenoid + GGR (Go Grid Router)
Он и с покрытием браузеров поможет. И видео тестов запишет.
Последовательный запуск тестов одного класса обеспечивается настройками TestNG (xmlSuite.setParallel(XmlSuite.ParallelMode.CLASSES))
Есть нюансы с запуском тестов с дата провайдерами. Если столкнётесь, спрашивайте.
Количество потоков регулируется тем же TestNG (xmlSuite.setThreadCount(<желаемое количество потоков>) + xmlSuite.setDataProviderThreadCount(<желаемое количество потоков для дата провайдеров>))
@Test
public void runAllTests() {
Class<?>[] classes = { ParallelTest1.class, ParallelTest2.class };
// ParallelComputer(true,true) will run all classes and methods
// in parallel. (First arg for classes, second arg for methods)
JUnitCore.runClasses(new ParallelComputer(true, true), classes);
}
Як варіант можна аикористати maven-surefire-plugin, в нього передати TestNG .xml файл з тестами які потрібно виконати. Паралельність і кількість потоків вказується в цьому .xml-і:
Добрый день. Есть ли возможность параллельного запуска, нескольких секций test из testng.xml, одновременно? У меня при такой настройке, секции test выполняются в разных потоках. Но выполняются не одновременно, а последовательно. Сначала первая, затем вторая. Буду благодарен за помощь.