Когда у вас взорвется под нагрузкой 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.
Боря, не обманывай людей, он несет внутри ссылки на скачивание Chrome с серверов Google. github.com/GoogleChrome/puppeteer/blob/master/utils/ChromiumDownloader.js#L33-L38 Чуваки наваяли HTTP клиента поверх готового JSON API, а также немного синтаксического сахара и теперь представляют это как панацею для проблем всего веб-тестирования. Вот такой вот очередной шум вокруг тривиального Javascript проекта.
Основное преимущество Selenoid достигается на браузерах, которые можно упаковать в Docker контейнеры (Firefox, Chrome, Opera). В этом случае можно на 1 железной машине или нескольких виртуальных машинах получить облако, по требованию поднимающее вообще любую версию браузера. Selenium без сложных манипуляций с инструментами наливки типа Ansible такого делать не умеет, не говоря уже об автоматическом старте контейнеров под запрос.
Согласен, что некоторые из аргументов, приведенных в этой статье, кому-то могут показаться недостаточно убедительными. Но я все равно советую посмотреть на Selenoid, быть может он где-то облегчит жизнь и вам.