Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Запуск множества Selenium-тестов на Jenkins.

jenkins
Теги: #<Tag:0x00007fedb7a7e3e0>

(Дмитрий Андреевич Макаровский) #1

Здравствуйте!
Настраиваю CI для Selenium-тестов на Jenkins. Исходный код загружается с git-репозитория, собирается через maven. Все работает хорошо.
НО! Теперь я хочу запускать много тестов на jenkins, под каждый тест сделаю отдельную джобу, но git-проект хочу сделать общий для всех тестов, то есть состоящий из папок-тестов. Вопрос: как из этого репозитория в отдельную джобу загружать только одну нужную папку из проекта, а не сразу весь проект?


(Богдан Ткаченко) #2

а почему бы просто не распараллелить тесты и не создавать под каждый тест джобу?


(Дмитрий Андреевич Макаровский) #3

Допустим, распараллелим тесты. Добавим общий репозиторий через git plugin. Тогда как можно будет производить запуск мавен в конкретных папках-тестах? Или можно просто прописывать команду cd path перед сборкой мавен?


(Богдан Ткаченко) #4

Вы хотите запускать отдельно каждую папку с тестами за раз? Или вы хотите запускать все тесты вместе но отдельно? Если хотите запускать только каждую папку с тестами за раз, то просто в pom.xml сделайте для каждой папки с тестами свой профиль и в нем прописывать xml файл с запуском каждой папки тестов и потом при запуске в CI просто прописываете определенный профиль для запуска и все. А если запускать все тесты одновременно, то просто распараллелить, в testng xml файле для запуска тестов в каждом тесте вы укажите пакеты которые хотите запускать в отдельно потоке, а по чем параллелить укажите по тестам.


(Дмитрий Андреевич Макаровский) #5

Если расписать грубо, структура git-репозитория такая:
Project
----Folder1
--------src
--------pom.xml
----Folder2
--------src
--------pom.xml
----Folder3
--------src
--------pom.xml
Цель: запускать их в отдельных джобах так, чтобы дженкинс не копировал в директорию каждой джобы весь репозиторий, а только одну папку с нужным тестом.
Можно и в одной джобе параллельно, но пока лучше сделать в отдельных джобах.


(Сергей Кузьмин) #6

http://www.codetab.org/apache-maven-tutorial/maven-multi-module-project/ подойдет ?


(Богдан Ткаченко) #7

Так у вас же еще есть и основной POM.xml файл, который относится ко всему проекту в котором прописаны модули выше описанные ваши остальные pom файлы, так что походу разделить так как вы хотите не получится. Либо вам придется бить ваш проект на несколько проектов.


(Сергей Кузьмин) #8

Then i guess profies is a way to go


(Sergey Korol) #9

Если модули независимые, то git plugin можно настроить на sparse checkouts. Это позволит тянуть репу кусками. Но тогда сам путь нужно будет параметризовать и запускать N параллельных тасков с разными путями. Можно и в пайплайне такое реализовать, в целом.

Если же в проекте присутствует и рутовый pom с какими-либо инструкциями, от которых зависят все остальные модули, то все это дело просто не соберется без рута.


(Dmitry Bogatko) #10

можно прописывать. maven не обязательно вызывать через jenkins plugin.
тогда просто
cd %path%
mvn clean test

второй вариант - даже если запускать через maven plugin путь к pom.xml можно указывать в настройках. Таким образом, для разных jobs разные настройки.

Ну и как вам советовали выше plugins тоже решат задачу.


(Дмитрий Андреевич Макаровский) #11

Всем большое спасибо за ответы!


(Sergey Korol) #12

Если какие-то ответы вам оказались полезными, или решили вашу проблему, - жмите соответствующие кнопки: