Как настроить Selenium grid с помощью docker в windows?
шаги, которые я уже сделал
1. Загружено и установлено Docker Toolbox для windows
2. Открыть терминал быстрого запуска Docker
3. Введите следующие команды, чтобы вытащить изображения docker из dockerhub и запустить их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
но я не могу направить свои тесты на адрес концентратора на виртуальной машине virtualbox, используя seleniumAddress
в моем conf.файл JS или увидеть его с помощью http://ipAddress:4444/grid/console .
в идеале я хотел бы использовать эту настройку для расширения количества параллельных тестовых экземпляров, которые я могу запустить.
3 ответов
к сожалению, изображение Selenium docker может быть сломан с 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
после этого, селен должен быть бег на 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
- 3-й тест к
http://ipAddress:4446/wd/hub
вы можете работать столько, сколько оборудование можно взять.
посмотри транспортир Поваренная книга ж / Докер. Инструкции перечислены шаг за шагом с помощью selenium-grid и docker compose. Докер-селен выпуск #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
после связывания сетки Селена этого должно быть достаточно, чтобы запустить тест транспортира с помощью seleniumAddress: 'http://localhost:4444/wd/hub'
.
для отладки найдите порт VNC для контейнера с:
docker port <container-name or container-id> 5900
и получить доступ к нему через VNC Viewer.
Примечание:
- на момент написания этой статьи "последний", по-видимому, привязан к ~2.53.1 версии selenium server. По состоянию на транспортир 4.0.11 (последняя версия Транспортир), это поддерживаемая версия, которая должна использоваться. Обратите внимание, что инструкции по селен-докер GitHub кажется, для специально для selenium server 3.0.1.
вы можете использовать ниже compose файл для настройки сетки и доступа через VNC
* * # для выполнения этого файла docker-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
источник :