Самый простой, быстрый и надёжный способ - запускать браузер рядом с тестом (т.н. “локальный” запуск). В крайнем случае - в докере на той же машине.
Но люди не ищут простых путей. Иногда им хочется запускать браузер в облаках. В теории это может дать вам некоторые плюсы: бесконечное масштабирование и запуск разных версий разных браузеров. Но конечно, есть и свои сложности и ограничения. Смотрите сами.
Селенид это позволяет сделать довольно легко.
Чтобы запустить браузер удалённо, в общем случае нужно задать настройку remote
:
Configuration.remote = "https://your-cloud-provider.com/wd/hub";
Позволяет одной аннотацией запускать браузер на той же машине, но внутри докера.
Рабочий пример: selenide-examples/testcontainers.
Плюсы:
Минусы:
Рабочий пример: selenide-examples/selenide-lambdatest.
Сайт: LambdaTest.com.
Это рабочий пример тестов на селениде, которые запускают браузер на серверах LambdaTest.
Как видно, настройка там минимальная:
Configuration.remote = "https://hub.lambdatest.com/wd/hub";
Configuration.browserCapabilities.setCapability("LT:Options", Map.of(
"user", "unclebob",
"accessKey", "0123456789001234567890"
));
Плюсы:
Минусы:
Рабочий пример: selenide-examples/selenide-browserstack.
Сайт: BrowserStack.com
Это рабочий пример тестов на селениде, которые запускают браузер на серверах BrowserStack. Как видно, настройка там минимальная:
Configuration.remote = "https://hub-cloud.browserstack.com/wd/hub";
Configuration.browserCapabilities.setCapability("bstack:options", Map.of(
"userName", "unclebob",
"accessKey", "0123456789001234567890"
));
Плюсы:
Минусы:
Компания Saucelabs тоже предлагает запуск браузеров и мобильников на их серверах.
Пример (старый, но надеемся вскоре обновить).
Плюсы:
Минусы:
Как Selenium Grid, но в докере. И написано на Go, поэтому работает быстро и потребляет мало памяти.
Рабочий пример: на гитхабе
Плюсы:
Поддерживается Селенидом напрямую
1.1. Оформлено как плагин Селенида ‘com.codeborne:selenide-selenoid:7.5.0’
1.2. В нём реализована поддержка некоторых фич для Selenoid: скачивание файлов, буфер обмена.
Минусы:
Теоретически остальные облачные провайдеры должны интегрироваться так же легко.
Какие ещё провайдеры пробовали вы? Плюсы, минусы, подводные камни? Расскажите, поделитесь кодом.
И самое главное, стоило ли оно того? Расскажите, какие такие проблемы решает удалённый запуск браузер, ради чего стоило поступиться скоростью, удобством и некоторыми фичами?