Как настроить сетку селена с помощью докеров на окнах?

Шаги, которые я уже сделал 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