Как настроить 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 дней назад но вы можете попробовать мой вариант первый:

  1. потяните изображение и запустите столько контейнеров, сколько вам нужно

    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
    
  2. подождите, пока все сетки не начали правильно, прежде чем начать тесты (необязательно, но рекомендуется)

    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

источник :

https://github.com/SeleniumHQ/docker-selenium