2

Я не могу запустить браузер на сервере CI (localhost на Linux в моем случае) при запуске теста огурца, вызвав задачу рейка после сборки из Jenkins. Журнал консоли Jenkins выглядит следующим образом. Я уверен, что все настроено правильно, так как я могу успешно запустить его на сервере через командную строку.Невозможно запустить браузер от Jenkins CI

01:26:43 [cucumber] $ /usr/local/rvm/scripts/gems/ruby-2.3.0/bin/rake schedule_win_job:features --trace 

01:26:43 ** Invoke schedule_win_job:features (first_time) 

01:26:43 ** Execute schedule_win_job:features 

01:26:43 /usr/local/rvm/scripts/rubies/ruby-2.3.0/bin/ruby -S bundle exec cucumber --tag @schedule_job --profile dev 

**01:27:45 unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)** 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:90:in `connect_until_stable' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:55:in `block in launch' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/socket_lock.rb:43:in `locked' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/driver.rb:53:in `new' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver/common/driver.rb:53:in `for' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/selenium-webdriver-2.53.0/lib/selenium/webdriver.rb:84:in `for' 

01:27:45 /usr/local/rvm/scripts/gems/ruby-2.3.0/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize' 
+0

Такой же ответ, как: http://stackoverflow.com/questions/36917134/unable-to-run-automation-on-firefox-jenkins с сегодняшнего дня - убедитесь, что у вас есть Firefox 45 на вашем пути. – titusfortner

+0

Извините, что я проверил, и все требования, о которых вы упомянули, выполнены, но проблема все еще сохраняется. Если я изменил браузер на Chrome, я столкнулся с новой проблемой, описанной здесь [Вопрос о StackOverflow] (http://stackoverflow.com/questions/22558077/unknown-error-chrome-failed-to-start-exited-abnormally-driver- info-chromedri), и решение там тоже не работает. –

+0

Кстати, ниже приведено сообщение об ошибке, которое я получил, если попытаюсь запустить firefox, используя командную команду без оболочки через Jenkins. '[20:38:21]/usr/bin/firefox [20:38:21] Ошибка: GDK_BACKEND не соответствует доступным дисплеям' –

ответ

0

Оказывается, характер учетной записи пользователя Jenkins не позволяет ему запускать тесты GUI на сервере Jenkins.

Firefox - это приложение графического интерфейса пользователя, и ему необходимо подключиться к X-серверу для отправки его команд для рисования окон и т. Д. Обычно Jenkins настроен на запуск в качестве фонового системного демона, который не имеет доступа к любому сеансу X-сервера.

Это причина ошибки ниже при попытке запуска firefox в сборке Jenkins с использованием команды оболочки/usr/bin/firefox.

No protocol specified

XDG_RUNTIME_DIR not set in the environment

Error: cannot open display: :0

Поэтому возможное решение было бы использовать pkexec команду для запуска теста с корневой привилегией (можно было бы добавить пользователя Jenkins к sudo, чтобы он мог успешно выполнять команды, но не рекомендовал из-за проблем с безопасностью, и я попробовал, чтобы это не сработало).

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

+0

Конечно, мы можем использовать [Xvnc-плагин] (https://wiki.jenkins-ci.org/display/JENKINS/Xvnc+Plugin), что намного проще, как описано [здесь] (http: // stackoverflow .com/вопросы/27060519/неспособный к Заурядный FireFox-через-Дженкинса). –

0

Кто-то был подобный вопрос и решение посмотрел бы убедившись, что вы имеете стабильную версию Капибара и последнюю селеном WebDriver

unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)

Позвольте мне знать, если это решение помогает!

+0

Благодарим вас за ответ. Хотя решения там не помогли, они предоставили мне подсказку, чтобы приблизиться к первопричине немного ближе. После установки Jenkins-сервера создается служебная учетная запись jenkins. Кажется, у этой учетной записи нет привилегий для открытия дисплея. Я буду искать снова, чтобы получить окончательное решение и разместить его здесь. –

Смежные вопросы