Selenium, Selenoid, Selenide, Selendroid… Что все это значит?
В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравнивать?
Selenium
Selenium — это инструмент для автоматизированного управления браузерами.
В рамках проекта Selenium разрабатывается серия программных продуктов с открытым исходным кодом:
Selenium Server,
Selenium Grid,
Selenium IDE и т.д.
Selenium Server – это программа, которая позволяет управлять браузерами с помощью специальных драйверов. Она должна находиться на том же компьютере, что и браузер, с которым нам предстоит работать.
После установки Selenium Server к нему можно обращаться с другого компьютера для удаленного управления браузерами по специальному протоколу, который написан поверх HTTP.
Коротко — Selenium Server помогает управлять браузерами на определенной машине.
Selenium Grid устанавливается на одном компьютере и может работать удаленно с несколькими другим, на которых установлены Selenium Server.
Он создан для того, чтобы запускать тесты на большом количестве машин, обращаясь только к одной, на которой установлен Selenium Grid.
Для создания сессии (т.е. запуска браузера) мы всегда будем приходить на компьютер, где стоит Selenium Grid. Он уже сам решит, какая машина менее нагружена для этого и туда и перенаправит команду.
Все машины, с которыми работает Selenium Grid, могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры.
Коротко — Selenium Grid нужен для организации работы с несколькими машинами, где установлен Selenium Server.
Selenide — это один из фреймворков для автоматизированного тестирования веб-приложений. С его помощью можно быстро и относительно просто писать код, который будет формировать и отправлять HTTP-команды на Selenium Server или Selenium Grid.
Он заточен под то, чтобы писать такие сценарии, которые будут проверять работу веб-приложения: поиск нужных элементов, проверка событий, взаимодействие с UI и так далее.
Несмотря на схожесть названия с линейкой программ Selenium, сам Selenide разрабатывают другие ребята.
Коротко — с Selenide проще писать код, который заточен именно под тестирование веб-приложения.
Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере.
Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.
Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой сессии (запуска нового браузера или эмулятора) и останавливать его сразу же после закрытия сессии.
Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат.