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

Robot Framework + Jenkins

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добрый день хотелось бы узнать по подробней о настройке 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

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

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 и все.

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

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.

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

предыдущих 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

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

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

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