t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f9b045132a8> #<Tag:0x00007f9b04512f38> #<Tag:0x00007f9b04512d80> #<Tag:0x00007f9b04512b78>

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

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

1 Симпатия

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

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

2 Симпатий

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

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

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

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

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

test {
  maxParallelForks = 4
}
1 Симпатия

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

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

1 Симпатия

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