Когда у вас взорвется под нагрузкой MySQL, расставленный в несколько датацентров, — вы знаете к кому идти. И система оркестрации тут вам не поможет. Системы, использующие БД для хранения сессий, пробовались 3 года назад.
Боря, не обманывай людей, он несет внутри ссылки на скачивание Chrome с серверов Google. github.com/GoogleChrome/puppeteer/blob/master/utils/ChromiumDownloader.js#L33-L38 Чуваки наваяли HTTP клиента поверх готового JSON API, а также немного синтаксического сахара и теперь представляют это как панацею для проблем всего веб-тестирования. Вот такой вот очередной шум вокруг тривиального Javascript проекта.
Работа с Safari — это не лучший пример того, почему Selenoid лучше Selenium server, потому что тестирование в Safari до последнего времени работало совсем плохо. Кластер, на котором эксплуатируется Selenoid, по размеру примерно в 50 раз больше, чем ваш, и на таких масштабах экономия даже 100 Мб памяти у одного процесса приводит к существенной экономии в стоимости вычислительных мощностей. В нашем случае под нагрузкой Selenium может потреблять гигабайты памяти, а Selenoid — десятки и сотни мегабайт.
Основное преимущество Selenoid достигается на браузерах, которые можно упаковать в Docker контейнеры (Firefox, Chrome, Opera). В этом случае можно на 1 железной машине или нескольких виртуальных машинах получить облако, по требованию поднимающее вообще любую версию браузера. Selenium без сложных манипуляций с инструментами наливки типа Ansible такого делать не умеет, не говоря уже об автоматическом старте контейнеров под запрос.
Согласен, что некоторые из аргументов, приведенных в этой статье, кому-то могут показаться недостаточно убедительными. Но я все равно советую посмотреть на Selenoid, быть может он где-то облегчит жизнь и вам.
На правах рекламы. Путь с xvfb пройден нами полностью. Готовое решение для запуска браузеров в Docker под запрос выложено на Github: http://github.com/aerokube/selenoid Это если вам нужно не только Хром 59+, а любые версии браузеров и желательно, чтобы не загаживать ими систему. Ставится за 5 минут, также не требует Java. В контейнерах Xvfb, но можно смотреть на браузер во время выполнения сессии через мордочку.
Если вы используете Go для написания вашего кода, то можно писать FROM scratch и тогда размер контейнера будет равен размеру вашего бинарника. Это позволяет получать контейнеры размером в 1-2 мегабайта. Пример: https://github.com/aerokube/selenoid-ui/blob/master/Dockerfile#L1 Недостаток такого подхода — в контейнере вообще ничего нет кроме бинарника, т.е. зайти внутри и поотлаживаться не получится.
По п.1 Саша отписал (см. ниже), по этой ссылке и должно отдаваться 404 на GET запрос (клиент Selenium делает POST). По п. 2 — насколько мне известно нельзя запустить Safari под Linux (только Mac и вроде бы Windows). При этом нельзя запустить Mac \ Windows в Docker. Как вы предполагаете запускать Safari? А кроме того мы проверяли — Safari в Selenium поддерживается через установку расширения в браузер (это нужно делать руками) и поддерживаются далеко не все функции API. На мой взгляд Safari — плохой кандидат на использование в Selenium.
Крохотные образы Docker, которые верили в себя*
Как выполнять много UI-тестов параллельно, используя Selenium Grid?
Selenium: Накачиваем Мышцы
Selenium за 60 секунд
За пять дней я прошел собеседования в пяти компаниях Силиконовой долины и получил пять предложений о работе
Представляем loghouse — Open Source-систему для работы с логами в Kubernetes
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг
Боря, не обманывай людей, он несет внутри ссылки на скачивание Chrome с серверов Google. github.com/GoogleChrome/puppeteer/blob/master/utils/ChromiumDownloader.js#L33-L38 Чуваки наваяли HTTP клиента поверх готового JSON API, а также немного синтаксического сахара и теперь представляют это как панацею для проблем всего веб-тестирования. Вот такой вот очередной шум вокруг тривиального Javascript проекта.
Selenium: для любителей яблок
Selenium: для любителей яблок
Основное преимущество Selenoid достигается на браузерах, которые можно упаковать в Docker контейнеры (Firefox, Chrome, Opera). В этом случае можно на 1 железной машине или нескольких виртуальных машинах получить облако, по требованию поднимающее вообще любую версию браузера. Selenium без сложных манипуляций с инструментами наливки типа Ansible такого делать не умеет, не говоря уже об автоматическом старте контейнеров под запрос.
Согласен, что некоторые из аргументов, приведенных в этой статье, кому-то могут показаться недостаточно убедительными. Но я все равно советую посмотреть на Selenoid, быть может он где-то облегчит жизнь и вам.
Как мы суслика яблоками кормили или эффективный backend на Go для iOS
Ставим Selenium Grid на колеса Apache Mesos
Ставим Selenium Grid на колеса Apache Mesos
Как настроить простую систему автотестов без Java и Selenium
Selenium под Windows: все с начала
Selenium под Windows: все с начала
Selenium под Windows: все с начала
Как разделить окружение для сборки и запуска сервиса в Docker сегодня и как это cделать завтра
Selenium за 60 секунд
Selenium за 60 секунд