Как настроить сетку селена с помощью докеров на окнах?
Шаги, которые я уже сделал
1. Загружен и установлен Docker Toolbox для Windows
2. Откройте терминал быстрого запуска Docker
3. Введите приведенные ниже команды, чтобы вытащить изображения докеров с докер-хаба и запустить их
docker pull selenium/hub
docker pull selenium/node-chrome
docker pull selenium/node-firefox
docker run -d -P \--name hub selenium/hub
docker run -d --link hub:hub -P \--name chrome selenium/node-chrome
docker run -d --link hub:hub -P \--name firefox selenium/node-firefox
Кажется, он работает, когда я набираю docker logs hub
, но я не могу перенаправить свои тесты на адрес концентратора виртуальной виртуальной машины с помощью seleniumAddress
в файле conf.js или увидеть его с помощью http://ipAddress:4444/grid/console.
В идеале я хотел бы использовать эту настройку для расширения количества параллельных тестовых экземпляров, которые я могу запустить.
Ответы
Ответ 1
К сожалению, изображение докеры селена может быть сломанной с 4 дня назад, но вы можете попробовать мой альтернативный вариант:
-
Потяните изображение и запустите как можно больше контейнеров
docker pull elgalu/selenium
docker run -d --name=grid4 -p 4444:24444 -p 5904:25900 \
-v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
docker run -d --name=grid5 -p 4445:24444 -p 5905:25900 \
-v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
docker run -d --name=grid6 -p 4446:24444 -p 5906:25900 \
-v /dev/shm:/dev/shm -e VNC_PASSWORD=hola elgalu/selenium
-
Подождите, пока все решетки не начнут правильно, прежде чем запускать тесты (необязательно, но рекомендуется)
docker exec grid4 wait_all_done 30s
docker exec grid5 wait_all_done 30s
docker exec grid6 wait_all_done 30s
После этого Selenium должен работать и работать на http://localhost:4444/wd/hub
. Откройте url в своем браузере, чтобы подтвердить, что он запущен.
Если вы используете Mac (OSX) или Microsoft Windows localhost
не будет работать! Выясните правильный IP-адрес через boot2docker ip
или docker-machine ip default
.
Таким образом, установите селеновый порт соответственно для каждого теста:
- 1-й тест должен подключиться к
http://ipAddress:4444/wd/hub
- 2-й тест на
http://ipAddress:4445/wd/hub
- Третий тест
http://ipAddress:4446/wd/hub
Вы можете запускать столько, сколько может потребоваться ваше оборудование.
Ответ 2
Взгляните на Прикладную книжку с док-станцией. Инструкции перечислены шаг за шагом, используя селен-сетку и докеры. Docker-selenium проблема № 208 исправлена.
Итак, вам нужно будет снести последние изображения *:
docker pull selenium/hub:latest
docker pull selenium/node-chrome-debug:latest
Запустите сетку селена:
docker run -d -p 4444:4444 --name selenium-hub selenium/hub:latest
Затем добавьте узлы селена. Мне нравится использовать версии chrome-debug и firefox-debug для VNC для просмотра тестов.
docker run -d -p <port>:5900 --link selenium-hub:hub selenium/node-chrome-debug:latest
После связывания сетки селена это должно быть достаточно для запуска теста Protractor с помощью seleniumAddress: 'http://localhost:4444/wd/hub'
.
Для отладки найдите порт VNC для контейнера:
docker port <container-name or container-id> 5900
и получить доступ к нему через VNC Viewer.
Примечание:
- На момент написания этой статьи, "последняя", похоже, привязана к версии сервера селена версии 2.53.1. Начиная с Protractor 4.0.11 (последняя версия Protractor), это поддерживаемая версия, которая должна использоваться. Обратите внимание, что инструкции для Selenium-docker GitHub, по-видимому, предназначены для селена-сервера 3.0.1.
Ответ 3
Вы можете использовать ниже созданный файл для настройки сетки и доступа через VNC
** # Чтобы выполнить этот файл docser-compose yml, используйте docker-compose -f up
** # Добавить флаг "-d" в конце для отложенного выполнения ****
version: '2'
services:
firefoxnode:
image: selenium/node-firefox-debug
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "32772:5900"
chromenode:
image: selenium/node-chrome-debug
volumes:
- /dev/shm:/dev/shm
depends_on:
- hub
environment:
HUB_HOST: hub
ports:
- "32773:5900"
hub:
image: selenium/hub
ports:
- "4444:4444"
команда, которую я использую:
docker-compose -f .\docker-compose.yml up -d
Источник:
https://github.com/SeleniumHQ/docker-selenium