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

Запуск тестов с использованием chromium и docker

codeception
docker
php
chrome
Теги: #<Tag:0x00007f7b6d6c81e0> #<Tag:0x00007f7b6d6c8028> #<Tag:0x00007f7b6d6c7d58> #<Tag:0x00007f7b6d6c7bc8>

(Andrey Kurilov) #1

Приветствую всех!
Настроил докер по статье http://codeception.com/11-14-2014/dockerizing-acceptance-testing.html
Но не могу понять как запустить тесты в Chromium. Может кто-то подскажет как это делается?
Сейчас при попытке запустить тесты с использованием Chromium, я получаю ошибку

[UnknownServerException]                                                                                                                                                                                                                                                      
The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.htm

Неужели надо билдить свой контейнер с исправленным start.sh? @davert

конфиг

    chrome:
        modules:
            config:
                WebDriver:
                    browser: 'chromium'

(rmerkushin) #2

У вас chromedriver должен быть виден из path. Ну и я не сильно вникал в особенности докер, но вроде и сам chromium должен стоять в докер контейнере. Но возможно я ошибаюсь.

P.S.: А зачем вообще докер тут?)


(Andrey Kurilov) #3

докер нужен для запуска тестов в нескольких бразуеров через тимсити агента на сервере без GUI


(sidelnikovmike) #4

ну тут как - по ошибке не видно переменной. Можете установить ее из кода прямо, никто вам не мешает. Ну или изначально при старте контейнера установите.


(Andrey Kurilov) #5

В документации ничего не написано по поводу таких параметров. Поэтому я и спрашиваю как сделать.


(Sergey Korol) #6

Прежде чем приступать к работе с webdriver'ом, начинать надо с изучения официальных источников.


(Andrey Kurilov) #7

Я работаю не напрямую с webdriver, а через codeception. И в официальной документации об этом ничего не сказано. Как запустить тесты локально с GUI в Chrome я прекрасно знаю. Но меня интересует совершенно другое.


(Sergey Korol) #8

А какая разница - codeception это или что-то другое? Взаимодействие с браузером происходит по webdriver wire протоколу. Хром из коробки пока не предоставляет такой возможности, потому группой активистов был написан хак в виде стендэлоун сервера - chromedriver, который собственно и реализует этот протокол для хрома.


(Andrey Kurilov) #9

По-моему, вы не до конца поняли мой изначальный вопрос.


(Sergey Korol) #10

Все ответы уже были даны выше. В официальном гайде сказано, что путь к драйверу необходимо поместить в PATH. Разве вы не можете стартануть Docker с PATH, в котором будет путь к chromedriver?


(rmerkushin) #11

Ну Firefox можно через xvfb запускать в хэдлесс. Думаю с хромо можно тоже самое придумать :smile:


(sidelnikovmike) #12

дак а что мешает устанавливать из кода?


(Andrey Kurilov) #13

А зачем?


(Alexander Ivanovsky) #14

попробуйте лучше официальные образы от команды Selenium:


(Alexander Ivanovsky) #15

кстати, ишуя по этому поводу висит аж с ноября:


(sidelnikovmike) #16

Чтобы исправить ошибку))


(Andrey Kurilov) #17

Вот за это спасибо! :blush: