Что такое Selenium? Вводный курс

⚡ Умное резюме

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

  • Ключевой принцип: Selenium обеспечивает автоматизированную проверку веб-приложений в различных браузерах и операционных системах, поддерживая такие языки, как Java, С#, PythonИ многое другое.
  • Структура набора инструментов: Selenium включает в себя четыре основных компонента — IDE, Remote Control, WebDriver и Grid, каждый из которых отвечает определенным потребностям автоматизации.
  • IDE и прототипированиеping: Selenium IDE — это расширение для браузера, предназначенное для быстрого создания кейсов и прототипов.pingно лучше всего подходит для простых тестовых сценариев.
  • Эволюция дистанционного управления: Selenium RC, в настоящее время находящийся в режиме обслуживания, был первой платформой, позволяющей создавать тестовые скрипты на нескольких языках, что позволяет решать проблемы, связанные с ограничениями политики браузера.
  • Реализация WebDriver: WebDriver напрямую взаимодействует с браузерами, обеспечивая управление на уровне ОС и превосходную стабильность для сложной автоматизации.
  • Сетка для параллелизма: Selenium Grid обеспечивает параллельное выполнение тестов на нескольких машинах и в нескольких браузерах, что значительно сокращает продолжительность цикла тестирования.
  • Поддержка кроссбраузеров и платформ: Selenium поддерживает широкий спектр браузеров и операционных систем, обеспечивая непревзойденную гибкость для веб-QA.
  • Реальное влияние: Команды используют Selenium для ускорения циклов выпуска, сокращения ручного тестирования и обеспечения единообразного UX-дизайна во всех браузерах с проверенными результатами в SaaS, CI/CD и доставке функций.

что такое селен

Что такое Selenium?

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

Мнения экспертов

«Избегайте использования фиксированных задержек сна в своих тестах. Вместо этого используйте явные ожидания (например, WebDriverWait) для ожидания загрузки элементов. Это делает ваши скрипты более надежными и быстрыми, поскольку они динамически реагируют на фактические условия страницы — ключевая передовая практика для студентов во всем мире, начиная с Selenium".

— Химаншу Шет, Selenium ExpertXNUMX

👉 Зарегистрируйтесь на бесплатный Live Selenium Тестовый проект

Selenium Набор инструментов

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

  • Selenium Интегрированная среда разработки (IDE)
  • Selenium Дистанционное управление (RC)
  • Вебдрайвер
  • Selenium сетка

Selenium Набор инструментов

На данный момент, Selenium RC и WebDriver объединены в единую структуру, образуя Selenium 2. Selenium 1, кстати, относится к Selenium RC.

Видео-учебник Selenium

Нажмите здесь если видео недоступно

Кто разработал Selenium?

С Selenium это набор разных инструментов, у него тоже были разные разработчики. Ниже приведены ключевые люди, внесшие заметный вклад в Selenium Проект

Разработано Selenium

Прежде всего, Selenium законопроект создан Джейсоном Хаггинсом в 2004 годуРаботая инженером в ThoughtWorks, он работал над веб-приложением, требующим частого тестирования. Поняв, что многократное ручное тестирование приложения становится всё менее эффективным, он создал JavaСценарий Программа, которая автоматически управляла действиями браузера. Он назвал эту программу JavaScriptTestRunner».

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

Та же проблема с политикой происхождения

Политика того же происхождения запрещает JavaКод скрипта, получающий доступ к элементам из домена, отличного от того, где он был запущен. Например, HTML-код в www.google.com использует JavaПрограмма-скрипт «randomScript.js». Политика того же источника разрешит randomScript.js доступ только к страницам домена google.com, таким как google.com/mail, google.com/login или google.com/signup. Однако доступ к страницам других сайтов, например, yahoo.com/search или guru99.com, невозможен, поскольку они принадлежат разным доменам.

Та же проблема с политикой происхождения

Вот почему, до того как Selenium RC, тестировщикам необходимо было установить локальные копии обоих Selenium Ядро (а JavaСкриптовая программа) и веб-сервер, содержащий тестируемое веб-приложение, поэтому они будут принадлежать к одному домену

Рождение Selenium Дистанционное управление (Selenium РЦ)

Пол Хаммант

К сожалению, тестировщики, использующие Selenium Core пришлось установить все тестируемое приложение и веб-сервер на свои локальные компьютеры из-за ограничений, налагаемых политика одного и того же происхождения. Итак, еще один инженер ThoughtWorks, Пол Хаммант, решили создать сервер, который будет действовать как HTTP-прокси, чтобы «обмануть» браузер, заставив его поверить, что Selenium Ядро и тестируемое веб-приложение принадлежат одному домену. Эта система стала известна как Selenium дистанционное управление or Selenium 1.

Рождение Selenium сетка

Патрик Лайтбоди

Selenium Сетка была разработана Патрик Лайтбоди для решения задачи максимального сокращения времени выполнения теста. Изначально он назвал систему «Проведенное тестирование качества». Он был способен делать снимки экрана браузера во время важных этапов, а также отправка Selenium команды на разные машины одновременно.

Рождение Selenium IDE

Шинья Касатани

Шинья Касатани Японии создали Selenium IDE, чтобы Firefox и расширение Chrome, которое может автоматизировать работу браузера с помощью функции записи и воспроизведения. Он придумал эту идею, чтобы ещё больше ускорить создание тестовых случаев. Он пожертвовал Selenium IDE для Selenium Проект в 2006.

Рождение ВебДрайвера

Саймон Стюарт

Саймон Стюарт создал WebDriver около 2006 когда браузеры и веб-приложения становились более мощными и более ограничительными с JavaСкриптовые программы, такие как Selenium Ядро. Это была первая кроссплатформенная среда тестирования, которая могла управлять браузером на уровне ОС.

Рождение Selenium 2

In 2008, Весь Selenium Команда решила объединить WebDriver и Selenium RC для создания более мощного инструмента под названием Selenium 2, где WebDriver является ядром, В данный момент, Selenium RC всё ещё находится в стадии разработки, но только в режиме поддержки. Большая часть Selenium Усилия проекта в настоящее время сосредоточены на Selenium 2.

Итак, почему название Selenium?

Имя Selenium произошло из шутки, которую Джейсон однажды рассказал своей команде. В течение Seleniumразвитие, другое автоматизированное тестирование каркас был широко распространен в компании под названием Mercury Интерактивное (да, та самая компания, которая изначально произвела) QTP до того, как ее приобрела компания HP). С тех пор Selenium является известным противоядием от Mercury отравление, Джейсон предложил это имя, и его товарищи по команде взяли его. Вот как мы называли эту структуру до настоящего времени.

Почему такое имя Selenium

Что такое Selenium IDE?

Selenium Интегрированная среда разработки (IDE) — это простейшая структура в Selenium люкс и есть самый простой для изучения. Это Chrome и Firefox плагин который вы можете установить так же легко, как и другие плагины. Однако из-за своей простоты Selenium IDE следует использовать только как прототипping инструментом. Если вы хотите создать более сложные тестовые примеры, вам нужно будет использовать либо Selenium RC или WebDriver.

Selenium IDE

Что такое Selenium Дистанционное управление (Selenium РК)?

Selenium РК был флагманская платформа тестирования всего Selenium проект на долгое время. Это первый автоматизированный веб-тестирование инструмент, который позволяет пользователям использовать язык программирования, который они предпочитают. Начиная с версии 2.25.0, RC может поддерживать следующие языки программирования:

Selenium Дистанционное управление (Selenium РЦ)

Что такое Вебдрайвер?

WebDriver оказался лучше, чем Selenium IDE и Selenium RC во многих аспектах. Он реализует более современный и стабильный подход к автоматизации действий браузера. ВебДрайвер, в отличие от Selenium RC, не полагается на JavaСкрипт для Selenium Автоматизация тестирования. Он управляет браузером, напрямую общаясь с ним.

Поддерживаемые языки такие же, как и в Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Вебдрайвер

Что такое Selenium Сетка?

Selenium Сетка — это инструмент используется вместе с Selenium RC для запуска параллельные тесты на разных машинах и в разных браузерах одновременно. Параллельное выполнение означает одновременное выполнение нескольких тестов.

Требования:

  • Позволяет одновременный запуск тестов in несколько браузеров и сред.
  • Экономит время чрезвычайно.
  • Использует концентратор и узлы концепция. Хаб выступает в качестве центрального источника Selenium команды каждому узлу, подключенному к нему.

Selenium Поддержка браузера и среды

Из-за их архитектурных различий, Selenium SDI, Selenium RC и WebDriver поддерживают различные наборы браузеров и операционных сред.

  Selenium IDE Вебдрайвер
Поддержка браузера Mozilla Firefox и Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ и Edge
Сафари,
ХтмлЮнит и ФантомЮнит
Operating System Windows, Mac OS X, Linux Все операционные системы, в которых могут работать указанные выше браузеры.

Примечание: Opera Драйвер больше не работает

Как правильно выбрать Selenium Инструмент для ваших нужд

Инструмент Почему выбирают?
Selenium IDE
  • Узнать о концепциях автоматизированного тестирования и SeleniumСреди них:
  • Селенские команды, такие как type, open, clickAndWait, Assert, Verify и т. д.
  • Локаторы, такие как идентификатор, имя, xpath, селектор CSS и т. д.
  • Выполнение индивидуальных JavaКод скрипта с использованием runScript
  • Экспорт тест-кейсов в различные форматы.
  • Создавать тесты практически без предварительных знаний в программировании.
  • Для создания простых тестовых примеров и наборов тестов, которые позже можно экспортировать в RC или WebDriver.
  • Чтобы протестировать веб-приложение на Firefox и только Chrome.
Selenium RC
  • Создать тест, используя более выразительный язык, чем Selenese.
  • Чтобы запустить тест в разных браузерах (кроме HtmlUnit) в разных операционных системах.
  • Чтобы развернуть тесты в нескольких средах, используя Selenium Сетка.
  • Чтобы протестировать ваше приложение в новом браузере, поддерживающем JavaСценарий.
  • Для тестирования веб-приложений со сложными сценариями на основе AJAX.
Вебдрайвер
  • Использовать определенный язык программирования при разработке тестового примера.
  • Для тестирования приложений с богатым функционалом на основе AJAX.
  • Выполнить тесты в браузере HtmlUnit.
  • Для создания индивидуальных результатов испытаний.
Selenium сетка
  • Чтобы запустить свой Selenium Скрипты RC в нескольких браузерах и операционных системах одновременно.
  • Запустить огромный набор тестов, который необходимо завершить в кратчайшие сроки.

Практические примеры

🔍 Пример 1: кроссбраузерная совместимость для панели управления SaaS

Сценарий

Компания, предлагающая программное обеспечение как услугу, готовилась к выпуску аналитической панели управления, которая должна была стабильно работать во всех современных браузерах (Chrome, Firefox, Edge, Safari).

Вызов

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

Решение с Selenium

Инженер по контролю качества создал Selenium сетка настройка для выполнения одного и того же набора тестов одновременно в нескольких браузерах и комбинациях ОС. Тесты были созданы в Python через Selenium WebDriver для таких действий, как вход в систему, фильтрация диаграмм и экспорт данных.

Результат

  • Сокращение длительности регрессии на 80%.
  • Раннее обнаружение ошибок рендеринга, специфичных для браузера (например, неровные графики в IE).
  • Поддержан единый пользовательский интерфейс панели управления во всех браузерах без дополнительных ручных циклов.

⚙️ Пример 2: Интеграция CI/CD для веб-приложения через Selenium + TestNG

Сценарий

Средняя по размеру компания по веб-разработке использует конвейер CI/CD, применяя JenkinsИм нужно было обеспечить корректную работу основных пользовательских сценариев после каждого изменения кода.

Вызов

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

Решение с Selenium

Тестировщик реализовал JavaНа основе Selenium Пакет WebDriver интегрирован с TestNGТесты охватывали функции аутентификации, обновления профиля и поиска. Они проводились на всех устройствах. Jenkins сборка с использованием параллельного выполнения и параметризации браузера.

Результат

  • Достигнута быстрая обратная связь: нарушенные потоки немедленно отмечаются.
  • Сокращение количества ошибок после развертывания более чем на 60%.
  • Разработчики получили возможность решать проблемы до того, как они попадут в отдел контроля качества.

🚀 Пример 3: Ускорение выпуска функций для туристического агрегатора

Сценарий

Платформе-агрегатору путешествий необходимо было выпустить обновленную функцию бронирования авиабилетов. Ручные регрессионные тесты на 10+ страницах заняли несколько дней и заблокировали выпуск.

Вызов

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

Решение с Selenium и модель объекта страницы

Руководитель отдела автоматизации контроля качества представил структуру Page Object Model (POM) в C#. Selenium Скрипты WebDriver инкапсулировали элементы и действия страницы (поисковые рейсы, применение фильтров и случаи оплаты). Автоматизированные тестовые запуски запускались каждую ночь на GitLab CI.

Результат

  • Время тестирования сократилось с 3 дней до всего лишь 4 часов.
  • Повторное использование скриптов в нескольких функциях сокращает трудозатраты на создание скриптов на 50%.
  • Уверенность возросла: релиз был выпущен по графику с минимальным количеством сообщений об ошибках.

Общие Selenium Проблемы (и решения)

Даже если Selenium Несмотря на всю мощь, тестировщики часто сталкиваются с проблемами, которые могут повлиять на надёжность и скорость. Вот некоторые распространённые проблемы и способы их решения:

  1. Нестабильные тесты:
    Тесты могут случайно завершаться неудачей из-за проблем со временем или сетью.
    Fix: Используйте явные ожидания и стабильные локаторы; избегайте Thread.sleep().
  2. Динамические веб-элементы:
    Изменение идентификаторов элементов или XPath приводит к ошибкам «элемент не найден».
    Fix: Используйте относительные XPath, селекторы CSS или динамическую обработку атрибутов.
  3. SyncВопросы хронизации:
    Элементы загружаются медленнее, чем выполняется скрипт.
    Fix: Реализуйте WebDriverWait с ожидаемыми условиями.
  4. Несоответствия между браузерами:
    Тесты ведут себя по-разному в Chrome, Firefoxили Край.
    Fix: Проведите тесты на Selenium Сетка или облачные платформы для кросс-браузерной проверки.
  5. Обработка всплывающих окон и оповещений:
    Неожиданные всплывающие окна могут прервать ход тестирования.
    Fix: Используйте SeleniumИнтерфейс Alert или блоки try–catch для их корректной обработки.
  6. Накладные расходы на обслуживание испытаний:
    Частые изменения пользовательского интерфейса делают тесты хрупкими.
    Fix: Используйте Page Object Model (POM) и контроль версий для удобства обновлений.
  7. Проблемы интеграции:
    Конвейеры CI/CD могут выйти из строя из-за проблем с драйверами.
    Fix: Используйте Selenium Управляющий делами (Selenium 4+) или WebDriver Manager для автоматического управления драйверами.

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

Часто задаваемые вопросы:

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

Selenium В основном используется для автоматизации браузерного тестирования. Он обеспечивает корректную работу веб-приложений во всех браузерах, поддерживает регрессионное и функциональное тестирование, а также легко интегрируется с конвейерами непрерывной интеграции и непрерывной доставки (CI/CD) для непрерывного тестирования.

Selenium состоит из четырех основных компонентов: Selenium IDE (инструмент записи/воспроизведения), Selenium RC (Устаревшее), Selenium Вебдрайвер (современный API автоматизации) и Selenium сетка (для параллельного кросс-браузерного выполнения тестов).

Четыре типа: Selenium IDE для записи тестов, Selenium RC для устаревшей автоматизации, Selenium Вебдрайвер для прямого управления браузером и Selenium сетка для распределенного параллельного тестирования в нескольких браузерах.

Selenium WebDriver — это основной компонент, напрямую взаимодействующий с браузерами через собственные API. Он позволяет разработчикам писать надежные кроссбраузерные скрипты автоматизации на таких языках, как Java, Pythonи C#, не полагаясь на JavaСценарий.

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

Подведем итог этой публикации следующим образом: