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

связка Jenkins + Git + Robotframework + отчеты

git
robot-framework
jenkins
testng
Теги: #<Tag:0x00007f7b61cd43d8> #<Tag:0x00007f7b61cd4298> #<Tag:0x00007f7b61cd4158> #<Tag:0x00007f7b61cd4018>

(Gumanichenko Vitalii) #1

Всем привет! У меня стоит Jenkins, Git plugin и Robot Framework plugin. В сборочной директории указан репозиторий с файлами .robot и keywords.txt . Тесты с командной строки запускаются, отчеты создаются.
Столкнулся с такими вопросами:

  1. Как настроить Jenkins чтобы он опрашивал один репозиторий и в случае каких-то изменений запускал автотесты из другого репозитория?

  2. Как настроить Jenkins чтобы в случае каких-то изменений в репозитории запускались тесты с локальной машины? И соответственно чтобы отчеты были видны в Jenkins? А чтобы приходили на почту тому, кто внес изменения?

  3. Что и в каком виде вообще должно быть указано в Послесборочные операции - Publish Robot Framework test results - Directory of Robot output ?
    И в Thresholds for build result ?

Заранее спасибо за потраченное на меня время!


(Stan) #2
  1. Или чекаутить в консоли отдельно, или отдельной джобой. Т.е первая триггерит, вторая чекаутит нужную репу.
  2. Вообще не понял что вы хотите. Что значит тесты с локальной машины? С вашего локального? То есть каждый раз когда кто-то что-то закоммитит, у вас будут окна с тестами выскакивать? или что?
  3. там же написано под полем, директория, которая содержит html/xml роботовского репорта, какой указан в конфиге
    treshold - сколько %тестов должны пройти чтобы билд считался passed и сколько для unstable

(Gumanichenko Vitalii) #3
  1. Какими конкретно инструментами это лучше реализовать? Не имею ни малейшего представления как это все организовать. Подскажите более развернуто, пожалуйста. Этот вариант более желателен.

  2. Да именно с моего компьютера. Точнее все начинает крутиться на виртуальной машине. Я просто не знаю как проще сделать или и правда лучше чтобы в репозиториях.

  3. В каком виде это необходимо указать?
    просто /tmp/RIDEgKAbf7.d ?


(Stan) #4
  1. execute shell -> git checkout branch
  2. https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines
  3. она у вас в тмп создается? зачем? обычно путь задается по отношению к текущему ${WORKSPACE}

(Gumanichenko Vitalii) #5
  1. Мне правда не понятно что необходимо сделать с .sh File Shell Script.
    git checkout branch - команда для гита для перехода на другую ветку это я знаю. но что необходимо сделать чтобы Jenkins сам проверял репозиторий?

3 . Робот сам туда сохраняет. Я не указывал куда и не знаю как это сделать. Как по отношению к текущему ?

Заранее спасибо.


(ex3me0) #6

Смотрите в сторону “jenkins post commit hook”.
Стоит учесть и git flow вашего проекта. Если девелоперы коммитят прямо в dev/test/qa ветку - это беда. Вас должны интересовать только merge коммиты.

Логика такая: после мерджа в ветку (мердж = коммит) - репозиторий посылает запрос на сервер jenkins’a, который в свою очередь стартует джобу: вытягивает и билдит проджект, запускает тесты, генерит репорты, сообщает Вам о успешных (и не очень) тестах.
Пост-коммит хук создается в 2 клика в том же github или bitbucket, если у вас собственный репозиторий - надо найти ответственное лицо, которое выполнит соотв. настройки =)

Сам проджект вытягивается тем же jenkins git plugin. В нем прописываются необходимые креды, ssh ключ, и т.д.