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

Robot Framework + Jenkins


(rmerkushin) #1

Всем доброго времени суток!

Пытаюсь подружить Robot Framework + Jenkins. При запуске одного теста все проходит нормально, а вот если я пытаюсь запустить несколько тестов из одного job'а публикуются результаты только для одного теста, а хотелось бы для всех.

Так как тестов много, делать отдельный job для них не вариант. Возможно я что то делаю не так. Настройки у job'а такие:

В итоге результаты такие:


(rmerkushin) #2

На всякий случай вот что в шельнике, но он работает нормально и в папке есть все логи и отчеты для всех тестов.

dir=$(cd $(dirname $0) && pwd)
test_name=`basename $dir`

Xvfb :99 -ac &
export DISPLAY=:99

cd $dir && /usr/bin/pybot --outputdir /home/rmerkushin/robot/test_results --log $test_name-log.html --report $test_name-report.html --output $test_name.xml $test_name.txt

set $STATUS = $?

killall Xvfb

exit $STATUS


Запуск remote webdriver на linux без иксов - проблема с экспортом системной переменой DISPLAY=:99
(Mykhailo Poliarush) #3

надо убедиться в том что формируются правильно отчеты и не затираются предыдущими запусками, потому как все результаты складываются в одну и ту же папочку

 


(rmerkushin) #4

Отчеты формируются правильно, на каждый тест в папку ложится report, log и xml с именем теста, они точно не затирают друг друга. Но почему то в отчет Jenkins попадает только данные по одному тесту.


(D.Z.) #5

Можно после прогона всех тестов формировать общий очёт при помощи rebot tool

http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#using-rebot-tool

и Jenkins'у скармливать уже его.


(Mykhailo Poliarush) #6

это скорее всего дефект или скорее всего он умеет отображать только один всего лишь репорт

надо конечно проверить, потому что это догадки

что можно сделать, так это соединить все репорты в один репорт и ссылаться на него

http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#combining-outputs


(rmerkushin) #7

Судя по скриншоту с офф. страницы плагина для Jenkins такое возможно:

Но спасибо за вариант с объединением отчетов, буду пробовать :)


(Mykhailo Poliarush) #8

ну не факт, что это был один большой test suite в котором есть sub test suite

хотя можно прямо на плагин людям написать, может быть ответят


(rmerkushin) #9

Прогнал rebot'ом по отчетам, получилось то что и хотел. Спасибо за наводку, сам как то забыл про эту штуку :)


(Mykhailo Poliarush) #10

ну вот и отлично!


(rmerkushin) #11

Появился еще один вопрос. Запускать тесты приходится с Xvfb, указываю ему разрешение 1280х1024 но скриншоты которые снимает селениум почему то маленькие (как будто с разрешения 1024х768). Как добиться нормального разрешения скриншотов?

Xvfb :99 -ac  -screen 0 1280x1024x24 &
export DISPLAY=:99.0


(rmerkushin) #12

Вынес вопрос в отдельный топик: http://automated-testing.info/forum/xvfb-selenium2library


(Mykhailo Poliarush) #13

да уже увидел и уже ответил :)


(Валентин Розловенко) #14

Добрый день хотелось бы узнать по подробней о настройке rebot для сбора отчетов во едино , ибо у меня от наглухо отказывается .
Ситуация вот какая , у меня Мультиджоб в дженкинсе из 3х задач , 2 из них делают тесты в браузерах и нечто похожее :
Шелл таск : rebot --name Browser_Compatibility $WORKSPACE/out/outputCRH.xml $WORKSPACE/out/outputFF.xml
Шелл таск : rebot --name final_report $WORKSPACE/out/final/*.xml
За этим идет робот паблишер(http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#combining-outputs)
Проблема в том что Jenkins при сборке метит шелл номер два как FAIL и не собирает все до конца

  • rebot --name Browser_Compatibility /var/lib/jenkins/jobs/SandRobotTest/workspace/out/outputCRH.xml /var/lib/jenkins/jobs/SandRobotTest/workspace/out/outputFF.xml
    Log: /var/lib/jenkins/jobs/SandRobotTest/workspace/log.html
    Report: /var/lib/jenkins/jobs/SandRobotTest/workspace/report.html
    Build step ‘Execute shell’ marked build as failure
    Robot results publisher started…
    -Parsing output xml:
    Failed!
    hudson.AbortException: No files found in path /var/lib/jenkins/jobs/SandRobotTest/workspace/out/final with configured filemask: output.xml

(rmerkushin) #15

У меня в каждой папке с тестом лежит такой батник для запуска:

set TEST_HOME=%~dp0
For /D %%a In ("%TEST_HOME:~0,-1%.txt") Do Set TEST_NAME=%%~na
chdir /d %TEST_HOME% && pybot --variable BROWSER:%1 --outputdir D:\Robot\test_results --log %TEST_NAME%-log_%1.html --report %TEST_NAME%-report_%1.html --output %TEST_NAME%_%1.xml %TEST_NAME%.txt & exit 0

и есть батник запускающий все мои тесты:

del /f /q D:\Robot\test_results\*
Reg Add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /V ProxyEnable /T REG_DWORD /D 0 /F

start /wait D:\Robot\NIP\asra-trr-01\run.bat %1
start /wait D:\Robot\NIP\asra-trr-02\run.bat %1
start /wait D:\Robot\NIP\asra-trr-03\run.bat %1

rebot --name "GMP NIP UI tests" -d D:\Robot\test_results\ -o output.xml D:\Robot\test_results\*.xml

В Jenkins в job всего одна комманда для запуска второго bat файла с параметром FF или IE :slight_smile:
Дальше я просто скармливаю output.xml Jenkins и все.


(Валентин Розловенко) #16

Собственно то что у вас в батнике на сборку , у меня выдает тот же результат

root@debselenium:/var/lib/jenkins/jobs/SandRobotTest/workspace/out# rebot --name Browser_comaptibility -d /var/lib/jenkins/jobs/SandRobotTest/workspace/out/ -o output.xml /var/lib/jenkins/jobs/SandRobotTest/workspace/out/*.xml

[ ERROR ] Reading XML source ‘/var/lib/jenkins/jobs/SandRobotTest/workspace/out/logCRH.xml’ failed: Incompatible XML element ‘html’.

Try --help for usage information.


(rmerkushin) #17

Как запускаются тесты? Судя по логу получаются корявые xml, в частности logCRH.xml
Сами тесты проходят? Файлы с отчетами есть?


(Валентин Розловенко) #18

предыдущих 2 стадии мультижоба делают файло ,

root@debselenium:/var/lib/jenkins/jobs/SandRobotTest/workspace/out# ls -la
total 1016
drwxr-xr-x 2 jenkins nogroup   4096 Mar 14 18:22 .
drwxr-xr-x 7 jenkins nogroup   4096 Mar 13 19:13 ..
-rw-r--r-- 1 jenkins nogroup 220783 Mar 14 18:25 logCRH.xml
-rw-r--r-- 1 jenkins nogroup 220826 Mar 14 18:24 logFF.xml
-rw-r--r-- 1 jenkins nogroup  75118 Mar 14 18:25 outputCRH.xml
-rw-r--r-- 1 jenkins nogroup  75104 Mar 14 18:24 outputFF.xml
-rw-r--r-- 1 jenkins nogroup 215528 Mar 14 18:25 reportCRH.xml
-rw-r--r-- 1 jenkins nogroup 215506 Mar 14 18:24 reportFF.xml

Запуск осуществляю при помощи

pybot --variable "BROWSER:firefox" -o "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/outputFF.xml" -l "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/logFF.xml" -r "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/reportFF.xml" $WORKSPACE/tests

и

pybot --variable "BROWSER:chrome" -o "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/outputCRH.xml" -l "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/logCRH.xml" -r "/var/lib/jenkins/jobs/SandRobotTest/workspace/out/reportCRH.xml" $WORKSPACE/tests

Соответственно


(rmerkushin) #19

Ошибка в запуске тестов. Файлы лога и отчета должны быть с расширением html. естественно что jenkins не может распарсить их :slight_smile: в формате xml должны быть только output файлы.


(Валентин Розловенко) #20

Спасибо помогло :slight_smile: