You are currently viewing Основы Selenium – Компоненты, функции, использование и ограничения.

Основы Selenium – Компоненты, функции, использование и ограничения.

Selenium — это мощный инструмент для управления веб-браузером с помощью программы. Он функционален для всех браузеров, работает на всех основных ОС, а его скрипты написаны на различных языках, таких как Python, Java, C# и т.д., Мы будем работать с Python. Selenium состоит из четырех основных компонентов – Selenium IDE, Selenium RC, Web Selenium, Selenium GRID.

Основы Selenium

Компоненты

Selenium работает в отрасли уже давно и используется тестировщиками автоматизации по всему миру.
Давайте проверим четыре основных компонента Selenium:

Selenium IDE

Selenium IDE (Интегрированная среда разработки) является основным инструментом в пакете Selenium. Это полная интегрированная среда разработки (IDE) для тестов Selenium. Он реализован как дополнение Firefox и как расширение Chrome. Он позволяет записывать, редактировать и отлаживать функциональные тесты. Ранее он был известен как Селеновый регистратор. Selenium-IDE была первоначально создана Шиньей Касатани и передана в дар проекту Selenium в 2006 году. Среда разработки Selenium IDE ранее мало поддерживалась. Среда разработки Selenium IDE начала активно поддерживаться в 2018 году.

Сценарии могут автоматически записываться и редактироваться вручную, обеспечивая поддержку автозаполнения и возможность быстрого перемещения команд. Сценарии записываются на Selenese, специальном тестовом языке сценариев для Selenium. Selenese предоставляет команды для выполнения действий в браузере (щелкните ссылку, выберите опцию) и для извлечения данных с результирующих страниц.

Selenium RC (дистанционное управление)

Selenium Remote Control (RC) — это сервер, написанный на Java, который принимает команды для браузера по протоколу HTTP. RC позволяет писать автоматизированные тесты для веб-приложения на любом языке программирования, что позволяет лучше интегрировать Selenium в существующие платформы модульного тестирования. Чтобы упростить написание тестов, Selenium project в настоящее время предоставляет клиентские драйверы для PHP, Python, Ruby, .NET, Perl и Java. Драйвер Java также можно использовать с JavaScript (через движок Rhino). Экземпляр selenium RC server необходим для запуска тестового случая html, что означает, что порт должен отличаться для каждого параллельного запуска. Однако для тестового случая Java/PHP необходимо постоянно запускать только один экземпляр Selenium RC.

Selenium Web driver

Selenium WebDriver является преемником Selenium RC. Selenium WebDriver принимает команды (отправленные на Selenese или через клиентский API) и отправляет их в браузер. Это реализуется с помощью специального драйвера браузера, который отправляет команды в браузер и извлекает результаты. Большинство драйверов браузеров фактически запускают и получают доступ к браузерным приложениям (таким как Firefox, Google Chrome, Internet Explorer, Safari или Microsoft Edge); существует также драйвер браузера HtmlUnit, который имитирует браузер с использованием безголового браузера HtmlUnit.

Selenium WebDriver не нуждается в специальном сервере для выполнения тестов. Вместо этого WebDriver напрямую запускает экземпляр браузера и управляет им. Однако Selenium Grid можно использовать с WebDriver для выполнения тестов в удаленных системах (см. Ниже). Там, где это возможно, WebDriver использует собственные функциональные возможности на уровне операционной системы, а не команды JavaScript на основе браузера для управления браузером. Это позволяет обойти проблемы, связанные с тонкими различиями между собственными командами и командами JavaScript, включая ограничения безопасности.

Selenium GRID

Selenium Grid-это сервер, который позволяет тестам использовать экземпляры веб-браузера, запущенные на удаленных компьютерах. В Selenium Grid один сервер действует как концентратор. Тесты свяжитесь с центром, чтобы получить доступ к экземплярам браузера. Концентратор содержит список серверов, которые предоставляют доступ к экземплярам браузера (узлам WebDriver), и позволяет тестам использовать эти экземпляры. Selenium Grid позволяет выполнять тесты параллельно на нескольких компьютерах и централизованно управлять различными версиями и конфигурациями браузеров (вместо каждого отдельного теста).

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

Характеристики

  • С открытым исходным кодом и переносимый – Selenium-это платформа веб-тестирования с открытым исходным кодом и переносимый.
  • Комбинация инструмента и DSL – Selenium — это комбинация инструментов и DSL (язык, специфичный для домена) для выполнения различных типов тестов.
  • Проще для понимания и реализации – команды Selenium классифицируются в терминах различных классов, что облегчает их понимание и реализацию.
  • Сокращение времени выполнения тестов – Selenium поддерживает параллельное выполнение тестов, что сокращает время, затрачиваемое на выполнение параллельных тестов.
  • Требуется меньше ресурсов – Selenium требуется меньше ресурсов по сравнению с его конкурентами, такими как UFT, RFT и т.д.
  • Поддерживает несколько языков программирования – C#, Java, Python, PHP, Ruby, Perl и JavaScript
  • Поддерживает Несколько Операционных систем – Android, iOS, Windows, Linux, Mac, Solaris.
  • Поддерживает несколько браузеров – Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari и т.д.
  • Параллельное выполнение тестов – Он также поддерживает параллельное выполнение тестов, что сокращает время и повышает эффективность тестов.

Приложения

Selenium WebDriver используется для автоматизации тестирования веб-приложений, чтобы убедиться, что они работают должным образом. Он поддерживает множество браузеров, таких как Firefox, Chrome, IE и Safari. Однако, используя веб-драйвер Selenium, мы можем автоматизировать тестирование только для веб-приложений.

  • С открытым исходным кодом и переносимый – Selenium-это платформа веб-тестирования с открытым исходным кодом и переносимый.
  • Меньше нагрузки и стресса для тестировщиков – Как упоминалось выше, количество времени, необходимое для тестирования повторяющихся тестовых сценариев на каждой новой сборке, почти сводится к нулю. Следовательно, нагрузка на тестировщика снижается.
  • Снижение затрат для бизнес – клиентов-Бизнес должен платить тестировщикам их зарплату, которая экономится с помощью инструмента автоматизации тестирования. Автоматизация не только экономит время, но и приносит пользу бизнесу с точки зрения затрат.
  • Увеличенный охват тестированием – При использовании селена время тестирования сокращается, и, следовательно, тестировщик может одновременно проводить больше тестов в других тестовых сценариях.
  • Сокращение времени выполнения тестов – Selenium поддерживает параллельное выполнение тестов, что сокращает время, затрачиваемое на выполнение параллельных тестов.

Ограничения

  • Нет поддержки настольных приложений – Selenium не поддерживает тестирование настольных приложений.
  • Опыт – Селен требует опыта вашей команды — и ресурсов для управления.
  • Техническое обслуживание и масштабируемость – Selenium-это сложная структура для обслуживания, и ее трудно масштабировать по мере роста.
  • Форумы с открытым исходным кодом – Поскольку Selenium является программным обеспечением с открытым исходным кодом, для решения ваших технических проблем необходимо полагаться на форумы сообщества.
  • Нет поддержки платформ REST и SOAP – Мы не можем выполнять тесты автоматизации веб-сервисов, таких как SOAP или REST, с использованием Selenium.
  • Нет возможности создания отчетов – у Selenium нет встроенной возможности создания отчетов, для отчетов о тестировании приходится полагаться на плагины, такие как JUnit и TestNG.
  • Тестирование изображений – Невозможно выполнить тестирование изображений. Для тестирования изображений необходимо интегрировать Selenium с Sikuli.