Selenium, Selenoid, Selenide, Selendroid… Что все это значит?

    Привет, Хабр!

    В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравнивать?

    Написал статью, чтобы помочь в этом разобраться. Кому интересно, добро пожаловать под кат!



    Selenium


    Selenium — это инструмент для автоматизированного управления браузерами.

    В рамках проекта Selenium разрабатывается серия программных продуктов с открытым исходным кодом:

    • Selenium Server,
    • Selenium Grid,
    • Selenium IDE и т.д.

    Selenium Server – это программа, которая позволяет управлять браузерами с помощью специальных драйверов. Она должна находиться на том же компьютере, что и браузер, с которым нам предстоит работать.

    После установки Selenium Server к нему можно обращаться с другого компьютера для удаленного управления браузерами по специальному протоколу, который написан поверх HTTP.

    Коротко — Selenium Server помогает управлять браузерами на определенной машине.

    Более подробно можно почитать здесь: https://www.seleniumhq.org/

    Selenium Grid устанавливается на одном компьютере и может работать удаленно с несколькими другим, на которых установлены Selenium Server.

    Он создан для того, чтобы запускать тесты на большом количестве машин, обращаясь только к одной, на которой установлен Selenium Grid.

    Для создания сессии (т.е. запуска браузера) мы всегда будем приходить на компьютер, где стоит Selenium Grid. Он уже сам решит, какая машина менее нагружена для этого и туда и перенаправит команду.

    Все машины, с которыми работает Selenium Grid, могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры.

    Коротко — Selenium Grid нужен для организации работы с несколькими машинами, где установлен Selenium Server.

    Более подробно можно почитать здесь: https://www.seleniumhq.org/docs/07_selenium_grid.jsp

    Selenium IDE – это плагин к браузеру Firefox, с помощью которого можно записывать и воспроизводить действия пользователя.

    Он не имеет особого отношения ни к Selenium Server, ни к Selenium Grid и позволяет работать только с локальным браузером.

    Более подробно можно почитать здесь: https://www.seleniumhq.org/selenium-ide/

    Selenide


    Selenide — это один из фреймворков для автоматизированного тестирования веб-приложений. С его помощью можно быстро и относительно просто писать код, который будет формировать и отправлять HTTP-команды на Selenium Server или Selenium Grid.

    Он заточен под то, чтобы писать такие сценарии, которые будут проверять работу веб-приложения: поиск нужных элементов, проверка событий, взаимодействие с UI и так далее.

    Несмотря на схожесть названия с линейкой программ Selenium, сам Selenide разрабатывают другие ребята.

    Коротко — с Selenide проще писать код, который заточен именно под тестирование веб-приложения.

    Более подробно можно почитать здесь: https://ru.selenide.org/

    Selenoid


    Selenoid — это программа, которая позволяет управлять браузерами и Android-эмуляторами с помощью специальных драйверов. Умеет запускать каждый из них изолированно в Docker-контейнере.

    Selenoid представляет собой альтернативное решение Selenium Server, хотя суть та же — организация работы драйверов.

    Основная идея Selenoid состоит в том, чтобы запускать новый контейнер для каждой сессии (запуска нового браузера или эмулятора) и останавливать его сразу же после закрытия сессии.

    Selenoid позволяет поддерживать высокую нагрузку без дополнительных ресурсозатрат.

    Более подробно можно почитать здесь: https://aerokube.com/selenoid/latest/

    Selendroid


    Selendroid — это фреймворк для автоматизированного тестирования мобильных приложений на базе Android.

    Используется на ранних версиях Android — до 17 level api (android 4.2). Но не выше.

    Коротко — это уже не очень актуальные фреймворк для работы с Android-приложениями.

    Более подробно можно почитать здесь: http://selendroid.io

    Итого


    Инструментов много, каждый предназначен для своих задач. Постарался коротко и без воды рассказать про группу Selen-проектов. :)

    Если такой формат будет интересен, далее сделаю обзор на инструменты для мобильной автоматизации.

    Спасибо за внимание.
    Поделиться публикацией

    Комментарии 10

      +2
      Можно еще упомянуть и другие популярные проекты на Selenium:
      Serenity — BDD фреймворк. Достаточно удобная штука для тестеров.
      Карина(Carina) — это для тестирования фулл стека.
        +1
        Безусловно. Но тут я собрал пока только то, что начинается с Selen… так как созвучные, но разные по сути инструменты сбивают с толку сильнее, чем инструменты с отличающимся названием. Ну, так по всяком случае мне показалось. :)
      +1
      А вот на чём проще всего поднять армию (ок, можно только один) «безголовых» браузеров с заранее заданным разрешением, и воспроизвести на них заранее записанные действия на каком-либо сайте (на уровне элементов управления и нажатий на клавиши), да ещё и после каждого действия скриншот сохранять? :)
        +1
        На Selenium с использованием Selenium Grid или Gridrouter (https://github.com/seleniumkit/gridrouter)
          0
          Хорошее у вас понятие о простоте) Chromedriver запускается в безголовом режиме, в Selenide есть все, чтобы и скачать драйвер, запустить в headless и строчить скриншоты вызовом 1го метода.
            0
            Все верно. Только Selenide — это фреймворк на Java, который использует Selenium. Мои слова Вашим не противоречат. :)
            Более того, Selenide навязывает Java для использования. Может быть человек хочет писать на Python, например? Зачем его ограничивать Selenide? А вот Selenium ему все равно понадобится. Такие дела.
              0
              Для заполнить, нажать, сделать скрин. Не нужен чистый селениум, да и джавы там знать не надо, сплошные вызовы методов селенида. Вопрос был как проще, поднимать грид это не простой метод ;) Если не привязыватся к фреймворку, тогда Selenoid + Selenium.
        +2
        К Selenoid можо добавить подпункт Moon — позволяет поднимать браузеры в Kubernetes aerokube.com/moon/latest
          0
          Selenium Grid — это кластер из Selenium Hub + нескольких Node.
          B Selenium Hub и Node — это Selenium Server, запущенный на разных машинах в разных режимах.
          Selenium Grid предназначен для параллельного запуска браузеров на большом количестве машин. Ноды могут быть на разных ОС и с разными браузерами.
          Selenium Hub принимает запрос на запуск определенного браузера, на определенной платформе. Используя эту информацию Selenium Hub выбирает доступную ноду и все последующей команды по управлению браузером, отправляемые Selenium, пересылает на неё.
          Selenoid — это имплементация Selenium Hub. В Selenoid ноды запускаются в докер-контейнерах.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое