Открыть сервис

Selenium

Selenium — это набор программных инструментов с открытым исходным кодом, предназначенных для автоматизации действий веб-браузера. Основная область применения Selenium — тестирование веб-приложений (end-to-end тестирование), однако он также используется для автоматического сбора данных с веб-страниц (парсинга), мониторинга сайтов и выполнения повторяющихся операций в браузере. Проект поддерживается и развивается сообществом при спонсорской поддержке компании Linux Foundation.

История

Разработка Selenium началась в 2004 году в компании ThoughtWorks, когда инженер Джейсон Хаггинс (Jason Huggins) создал внутреннюю программу для тестирования веб-приложения на JavaScript. Этот инструмент, получивший название JavaScriptTestRunner, позволял запускать тесты в браузере, имитируя действия пользователя. Вскоре проект был переименован в Selenium (по иронии судьбы — из-за того, что другой продукт, конкурент от компании Mercury Interactive, назывался QuickTest Professional, и название «Selenium» (химический элемент, способный подавлять действие ртути (mercury)) было выбрано как метафора).

В 2005 году разработчик Саймон Стюарт (Simon Stewart) из компании Google создал проект WebDriver, который, в отличие от Selenium Core, управлял браузером не через JavaScript, а напрямую, через нативные интерфейсы операционной системы. В 2009 году проекты Selenium и WebDriver объединились, образовав Selenium 2.0. В 2018 году вышла версия Selenium 4.0, которая включала поддержку протокола W3C WebDriver, ставшего международным стандартом (W3C Recommendation).

Архитектура и компоненты

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

Selenium WebDriver

Центральный компонент, обеспечивающий программное управление браузером. WebDriver принимает команды от тестового кода (обычно написанного на одном из поддерживаемых языков программирования) и передаёт их браузеру через его нативный API или через драйвер-посредник. Каждый браузер (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) требует установки отдельного драйвера, реализующего протокол WebDriver (например, ChromeDriver для Chrome, GeckoDriver для Firefox).

WebDriver поддерживает следующие операции:

Языки программирования, для которых существуют официальные биндинги (клиентские библиотеки) Selenium WebDriver: Java, C#, Python, JavaScript (Node.js), Ruby, Kotlin.

Selenium IDE (Integrated Development Environment)

Расширение для браузера (доступно для Chrome и Firefox), которое позволяет записывать действия пользователя в браузере и воспроизводить их. Selenium IDE предназначена для быстрого создания прототипов тестов, обучения и отладки. Она генерирует код на нескольких языках (например, Python или Java), который затем можно адаптировать для полноценной тестовой среды. Возможности Selenium IDE ограничены по сравнению с кодом, написанным с WebDriver.

Selenium Grid

Инструмент для параллельного запуска тестов на нескольких машинах и/или в разных браузерах и операционных системах. Selenium Grid состоит из хаба (hub), который координирует тесты, и нескольких узлов (nodes), на которых запущены браузеры. Тестовый код отправляет команды на хаб, а тот распределяет их по свободным узлам. Это позволяет значительно ускорить выполнение набора тестов и проверить совместимость с разными средами.

Классификация тестов с Selenium

В сфере тестирования веб-приложений Selenium относят к инструментам для:

Selenium не предназначен для нагрузочного тестирования; для этих целей существуют специализированные решения (например, JMeter, Gatling).

Преимущества и недостатки

Преимущества

Недостатки

Применение в России и правовые аспекты

Selenium широко применяется в российских IT-компаниях, занимающихся разработкой веб-сервисов, банковских приложений, интернет-магазинов. Использование Selenium как открытого программного обеспечения не требует лицензирования и не подпадает под ограничения, связанные с импортозамещением, поскольку его можно использовать на любых ОС, включая российские дистрибутивы Linux.

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

Автоматический сбор данных без разрешения владельца сайта может быть признан незаконным, особенно если он приводит к нарушению работы сайта или доступа к нему третьих лиц, а также к утечке персональных данных.

Сравнение с другими инструментами

Помимо Selenium, существуют другие популярные инструменты для автоматизации тестирования веб-приложений:

ИнструментЯзыки программированияПринцип работыПоддержка браузеров
PuppeteerJavaScript, TypeScriptУправляет Chrome/Chromium через DevTools ProtocolТолько Chrome/Chromium и Edge (частично)
PlaywrightJavaScript, Python, Java, .NETИспользует протокол DevTools и собственные драйверыChrome, Firefox, Safari (WebKit)
CypressJavaScriptРаботает в том же процессе, что и браузер (Node.js)Только Chrome, Firefox (ограниченно), Edge
SeleniumJava, C#, Python, JS, Ruby, KotlinЧерез WebDriver (W3C-протокол)Практически все браузеры

Selenium остаётся наиболее универсальным решением, особенно при необходимости тестирования в различных браузерах (включая устаревшие версии) или при работе с большим количеством сред.

Источники

  1. Официальная документация проекта Selenium (selenium.dev).
  2. Huggins, J. (2004). Selenium Open Source Project.
  3. Stewart, S. (2005). WebDriver: An Overview.
  4. W3C WebDriver Specification (w3.org/TR/webdriver/).
  5. Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
  6. Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации».
  7. Гражданский кодекс Российской Федерации (часть четвертая) от 18.12.2006 № 230-ФЗ.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →