О спасибо. Как то я её пропустил. Конечно не только selenium, а правильный подход к правильной структуре системы функционального и нагрузочного тестирования с возможностью масштабирования, основанный на современном инструментарии.
Мы в Aerokube сейчас делаем масштабируемое решение по параллельному запуску автотестов в контейнерах примерно аналогичное Selenoid. Пока показать нечего. Когда будет первый работающий прототип, напишем об этом.
Заинтересовало, но уже в разделе Установка понял, что это не для Windows.
Сам докер для windows есть, но вот команды, которые приводятся Вами предназначены для линукса. И описания нет.
Можете привести описание настроек для докера под windows? Тогда бы Вашей статье цены не было бы! :)
Selenoid позволяет запускать драйверы процессами без докера, для этого в конфигурационном файле в поле image задается команда в виде json массива, примеры конфигурации можно посмотреть здесь:
https://github.com/aerokube/selenoid/issues/25
Это работает и на Windows с IEDriverServer'ом. Docker для Windows мы пока не поддерживаем.
Еще про конфигурацию с драйверами написано тут: https://github.com/aerokube/selenoid#image Мы в ближайшем будущем планируем сделать возможность автоматической настройки Selenoid на разработческой машине, для локальной отладки тестов. Следите за обновлениями.
Selenoid работает на Windows и запускает процессы драйверов на свободном порту, которые в свою очередь запускают браузеры. Для изоляции браузеров на виртуальных десктопах можно использовать такую вещь:
https://github.com/kybu/headless-selenium-for-win
С Docker для Windows у нас пока отсутствует опыт работы.
Перезалейте, пожалуйста, все образы для инструмента с типом automated build. Тогда в интерфейсе будет прямая ссылка на репозиторий и видны исходные Dockerfile.
1) Запускаю все как у вас в документации указано — сначала подтягиваются образы с браузерами, затем сам selenoid на 4444 порт, страница status выдает корректный ответ, а вот /wd/hub отдает 404 page not found. Не могу понять что еще требуется запустить?
По п.1 Саша отписал (см. ниже), по этой ссылке и должно отдаваться 404 на GET запрос (клиент Selenium делает POST). По п. 2 — насколько мне известно нельзя запустить Safari под Linux (только Mac и вроде бы Windows). При этом нельзя запустить Mac \ Windows в Docker. Как вы предполагаете запускать Safari? А кроме того мы проверяли — Safari в Selenium поддерживается через установку расширения в браузер (это нужно делать руками) и поддерживаются далеко не все функции API. На мой взгляд Safari — плохой кандидат на использование в Selenium.
Спасибо за статью!
Хотелось бы уточнить возможность распределенного запуска контейнеров между несколькими хостами.
Если я правильно понял, по настройке изложенной в статье, все контейнеры будут запускаться на хосте самого Selenoid.
Что нужно сделать для распределенного создания контейнеров на нескольких хостах?
Вы можете развернуть Docker Swarm и, через переменные окружения, такие же как для Docker клиента, нацелить на него Selenoid. В предыдущей статье описаны разные подходы к организации Selenium кластеров:
В /etc/selenoid находится конфигурация, конкретно browsers.json. Запись в /etc/selenoid не производится и несколько параллельных запусков могут безопасно разделять конфигурацию. Подробная документация находится здесь: aerokube.com/selenoid/latest
Конфигурация задается системным администратором, browsers.json можно сформировать вручную, можно сгенерировать при помощи утилиты cm: aerokube.com/cm/latest. Если предполагается, что конфигурация не будет меняться, ее можно зашить в имидж в /etc/selenoid/browsers.json.
Selenium за 60 секунд