Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Selenide + Gradle + JUnit, как распараллелить тесты в разные ноды грида

gradle
selenium-grid
selenide
junit
Теги: #<Tag:0x00007f7b6194fbb8> #<Tag:0x00007f7b6194fa00> #<Tag:0x00007f7b6194f870> #<Tag:0x00007f7b6194f690>

(Рома Маринский) #1

До этого проект был типа: Maven + TestNG + MyBicycle, запускал тесты на виртуальных машинах, всё работало вроде норм, но подумал, что пока не поздно перейти на gradle + selenide + junit, но не понимаю как запустить тесты UI в несколько потоков одновременно.

Почему решил всё поменять? - Да потому, что понял что лучше использовать готовые хорошие велики, чем пилить свой. Плюс к этому ещё очень хотелось в разы сократить количество кода и чтобы это не вредило эффективности тестирования, а допиливать свой велик времени нет. И узнал про селенид - офигел, стал использовать. Но два дня уже не могу понять как запустить тесты параллельно на всех запущенных нодах грида


(asolntsev) #2

А разве грид не так работает, что все запросы шлются на него, а он уже сам выбирает, на какую ноду (например, наименее загруженную) их перенаправить?

Тогда вам достаточно просто распараллелить тесты в gradle командой “forkEvery 5” и сказать селениду сдать все запросы на гриб.


(Рома Маринский) #3

Вот меня именно интересовала команда в gradle, которая укажет количество потоков) А то я видимо плохо ищу инфу у gradle

Настройку селенида успешно сделал, все браузеры работают, но только по очереди :frowning:

Спасибо за forkEvery :slight_smile: Я пропустил его в документации видимо((


(asolntsev) #4

Самое простое - посмотре в билд-скрипте самого селенида: https://github.com/codeborne/selenide/blob/master/build.gradle

Кстати, я перепутал: не forkEvery, а maxParallelForks:

test {
  maxParallelForks = 4
}

(Ilja Pavlovs) #5

@asolntsev а как тогда сделать чтоб селенид какие-то определённые тесты запускал с определённой конфигурацией - в смысле, если я хочу протестировать один test suite на chrome, другой - на firefox?


(Рома Маринский) #6

а зачем один сьют запускать в хром, а другой в фаерфокс? В этом нет потребности, запусти просто тесты паралельно, пусть себе они бегают в разных браузерах


(asolntsev) #7

Я бы посоветовал сделать в CI (Jenkins) два разных джоба: один запускает нужный комплект текстов в chrome, второй - в firefox. Как, например, сделано здесь: https://ci.selenide.org/view/selenide/