На убунте я поставил робот фреймворк в связке 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. У меня установлено все на убунту, соответственно есть графическая оболочка.
Если я в роботе прописываю запуск браузера Firefox, то получаю
WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Error: no display specified\n'
Не хотелось создавать дублирующую тему, у меня пробелма свзяана тоже с 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.
Я прописывал пути только на самой машине в 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
Удалось побороть? В качестве гадания: от кого запускается сервис 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 запускает сам тест хоть и локально, но на бекграунде. У меня тест запускается он открывает браузер начинает логин и потом фейлится на том, что якобы не видит какой то элемент, на скриншоте виден только черный экран. Вот и не пойму в чем проблема.
Большое вам спасибо за ваши ответы. Сам покапался с плагином 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 до самого теста?
Тоесть я запускаю его со своей машины, комп у меня уходит в логаут и я даже тест запустить не смогу нормально? Я что то не могу уловить логики для чего это и как тогда работать будет. Второй вопрос как для себя решили?