Robot Framework + Jenkins

Ребят, подскажите пожалуйста.

На убунте я поставил робот фреймворк в связке calabash-android.
Затем установил дженкинс. Но т.к. дженкинс создает в системе своего собственного пользователя, то начались проблемы. Часть из них я решил через CHMOD 777 к определенным папкам. Но часть сложно решаема, как пример ошибка на команду:

Execute calabash-android build Test.apk

${output} = jarsigner error: java.lang.RuntimeException: keystore load: /var/lib/jenkins/.android/debug.keystore (No such file or directory)

/var/lib/gems/1.9.1/gems/calabash-android-0.3.5/bin/calabash-android-bu...

Очень не хочется копаться в исходниках калабаша и исправлять там пути.

Есть ли варианты запускать дженкинс от имени моего пользователя в системе?

Если вы имеете ввиду jenkins-master

Спасибо, с пользователем получилось

Но вот дальше не могу продвинуться с запуском браузера из-под jenkins. У меня установлено все на убунту, соответственно есть графическая оболочка.
Если я в роботе прописываю запуск браузера Firefox, то получаю

WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Error: no display specified\n'

Если прописываю браузер хром, то

WebDriverException: Message: u'unknown error: Chrome failed to start: exited abnormally\n  (Driver info: chromedriver=2.9.248304,platform=Linux 3.11.0-15-generic x86_64)'

При этом если запускаю напрямую (а не из дженкинса), то все работает в обоих случаях.

Нагуглил что нужно ставить Xvfb. Но почему? если графическая оболочка есть в системе…

Скорее всего потому что Jenkins запускает все фоном (на windows так же). А чем смущает xvfb?

Не хотелось создавать дублирующую тему, у меня пробелма свзяана тоже с Jenkins+RobotFramework.
Есть отдельная машина (windows) на которой поставлен Jenkins (Jenkins ver. 1.562), так же python 2.7, Robot framework, selenium2library.
Все тесты лежат в гите, но есть и локальная копия на тойже машине. (c/git). На Jenkinsе устанволены различные плагины для робота, гита и других. Я создаю простой Job, что бы запустить с этой же машины тест. Если ставлю Execute Windows batch command
Выдается ошибка:
‘pybot’ is not recognized as an internal or external command,
operable program or batch file.

сама команда такая
pybot ./git/Tests/001.txt

В чем у меня ошибка может быть? Почему Jenkins не видит pybot? Локально тест запускается используя команду Pybot test.txt.

Вы прописали в переменных окружениях пути до C:\Python27 и C:\Python27\scripts ?

Я прописывал пути только на самой машине в PATH. Еще где то надо это прописывать? Если вопрос про это то да, там все прописано. В cmd команды python тоже винды. Локально сами тесты можно запустить. А вот с Jenkins почему то такая ошибка. Попробовал build Execute Windows batch command:
cd “C:\git\Tests”
pybot 001.txt

Результат тотже

Вы можете выставить переменные окружения для slave или для билда. Также Вы можете прописать глобальные переменные окружения на машине, перелогиниться и запустить\перезапустить сервис Jenkins.

Спасибо! Перезагрузить сейчас невозможно, но я выцепил ночью время и сделал обновление Jenkins и ребутнул сервис. Теперь Jenkins в systemInfo видит пути до питона, видит пути до IEDriver.
Использую следующую команду

cd “C:\git\Tests”
pybot 001.txt

Получаю ошибку
Parent suite setup failed:
WebDriverException: Message: IEDriver executable needs to be available in the path. Please download from

Питоновские команды теперь выполняет, тест запускается но не может найти путь до эксплорера. В чем может быть загвоздка? Если поменять браузер на ff:

Parent suite setup failed:
Failed to find firefox binary. You can set it by specifying the path to ‘firefox_binary’:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(’/path/to/binary’)
driver = webdriver.Firefox(firefox_binary=binary)

Выполните в Jenkins job:
echo %PATH%
echo %PYTHONPATH%
И посмотрите есть ли там пути до необходимых утилит.
Вот эта ошибка

IEDriver executable needs to be available in the path.

говорит о том, что их там нет.

Выполнил, все пути что нужны есть.

;C:\Python27;C:\Python27\Scripts;Y:\IEDriver;C:\Chocolatey\bin

Ради теста добавил папку IEDriver в питоновскую, не помогло.

Удалось побороть? В качестве гадания: от кого запускается сервис jenkins (попробуйте от пользователя, под которым запускаете вручную) и как выставлены права на папку “Y:\IEDriver”

Здравствуйте! Вчера не было совсем на это время, сегодня опять занимаюсь немного локальным дженкинсом. Поборол проблему с путями,Все оказалось как и говорили проблема с путями и правами доступа к IEDriver, перенес на локальный диск и добавил в PATH еще раз. Поерезагрузил сервис и команду теперь видить нормально.

Теперь у меня две проблемы. Первая это то, что я не могу понять почему Robot framework plugin отказывается мне генерировать output логи. По окончанию теста, вот такое выдает:

Robot results publisher started...
-Parsing output xml:
Failed!
hudson.AbortException: No files found in path C:\Programs\Jenkins\workspace\test with configured filemask: output.xml
	at hudson.plugins.robot.RobotParser$RobotParserCallable.invoke(RobotParser.java:74)
	at hudson.plugins.robot.RobotParser$RobotParserCallable.invoke(RobotParser.java:51)

Если прописать в Job папку куда писать, то выходит получше, но я бы хотел что бы писались логи в тот же workspace где и сам job

Output:  C:\Programs\Jenkins\workspace\last_results\output.xml
Log:     C:\Programs\Jenkins\workspace\last_results\log.html
Report:  C:\Programs\Jenkins\workspace\last_results\report.html
Build step 'Execute Windows batch command' marked build as failure
Robot results publisher started...
-Parsing output xml:
Failed!
C:\Programs\Jenkins\workspace\test\last_results  does not exist.
	at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:483)
	at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:460)

А вторая проблема, это то что как я понял Jenkins запускает сам тест хоть и локально, но на бекграунде. У меня тест запускается он открывает браузер начинает логин и потом фейлится на том, что якобы не видит какой то элемент, на скриншоте виден только черный экран. Вот и не пойму в чем проблема.

Я выставляю так: Directory of Robot output = ${WORKSPACE}\output

Давняя проблема, решение которой не всем подходит.

Большое вам спасибо за ваши ответы. Сам покапался с плагином robot framework и успел разобраться, у меня выходит сейчас и без указания пути, пишет в папку конкретного job’a. А вот как быть с черным экраном я пока не знаю.
По ссылке нашел там #9 комментарий, который похоже мне бы подошел. Но я пока не могу понять что мн конкретно надо сделать.

So I've created a disconnect.bat file with this line:
tscon rdp-tcp#0 /dest:console

Instead of disconnecting from remote desktop, I run disconnect.bat and my test computer doesn't get locked. Now I have real screenshots :)

Создавaть disconnect.bat фал с таким содержанием на машине, а дальше его запускать в job до самого теста?

Мне не подошел ни один из этих способов - я не стал их ковырять. disconnect.bat надо запускать со своей машины, а не той, где идет тест.

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

Не использую скриншоты. Собирается доп. инфа, к “неожиданным” ошибкам тесты не приводят. Если надо будет, воспользуюсь selenium-hub.