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

Что такое Selenium?

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

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

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

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

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

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 пришлось установить все тестируемое приложение и веб-сервер на свои локальные компьютеры из-за ограничений, налагаемых та же политика происхождения. Итак, другой инженер ThoughtWork, Пол Хаммантрешил создать сервер, который будет действовать как 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 следует использовать только как инструмент для создания прототипов. Если вы хотите создать более сложные тестовые примеры, вам нужно будет использовать либо 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 в нескольких браузерах и операционных системах одновременно.
  • Чтобы запустить огромный набор тестов, его необходимо завершить как можно скорее.

Сравнение между Selenium и QTP(теперь UFT)

Профессионал быстрого тестирования (QTP) это запатентованный инструмент автоматического тестирования, ранее принадлежавший компании. Mercury Интерактивное до того, как Hewlett-Packard приобрела его в 2006 году. Его последующим владельцем становится MicroFocus, и инструмент переименовывается в UFT one. Selenium Tool Suite имеет множество преимуществ перед  QTP как подробно описано ниже –

Преимущества и преимущества Selenium по QTP

Selenium QTP
Открытый исходный код, бесплатно использовать и бесплатно. Коммерческий интерьер.
Очень расширяемый Ограниченные дополнения
Может запускать тесты разные браузеры Можно запускать тесты только в Firefox, Internet Explorer и Chrome
Поддержка различные операционные системы Можно использовать только в Windows
Поддержка мобильных устройств QTP поддерживает автоматизацию тестирования мобильных приложений (iOS и Android) с использованием решения HP под названием – HP Mobile Center.
Может выполнять тесты в то время как браузер свернут Необходимо, чтобы тестируемое приложение было видно на рабочем столе.
Может выполнять тесты параллельно. Можно выполнять только параллельно, но с использованием Quality Center, который снова является платным продуктом.

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

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

Сценарий

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

Вызов

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

Решение с Selenium

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

Результат

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

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

Сценарий

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

Вызов

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

Решение с Selenium

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

Результат

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

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

Сценарий

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

Вызов

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

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

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

Результат

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

Преимущества QTP перед Selenium

QTP Selenium
Можно проверить как веб-приложения, так и настольные приложения Может тестировать только веб-приложения
Поставляется с встроенный репозиторий объектов Не имеет встроенного репозитория объектов.
Автоматизируется быстрее, чем Selenium потому что это полнофункциональная IDE. Автоматизируется медленнее, поскольку у него нет собственной IDE, и для разработки можно использовать только стороннюю IDE.
Тестирование, основанное на данных, легче выполнять, потому что имеет встроенные глобальные и локальные таблицы данных. Тестирование, управляемое данными, является более громоздким, поскольку вам приходится полагаться на возможности языка программирования для установки значений для ваших тестовых данных.
Может получить доступ к элементам управления в браузере(например, панель избранного, адресная строка, кнопки «Назад» и «Вперед» и т. д.) Невозможно получить доступ к элементам за пределами тестируемого веб-приложения.
Обеспечивает профессиональный поддержки клиентов Никакой официальной поддержки пользователей не предлагается.
Имеет встроенную способность экспортировать тестовые данные во внешние форматы Не имеет встроенной возможности экспорта данных времени выполнения во внешние форматы.
Поддержка параметризации встроена Параметризацию можно выполнить посредством программирования, но ее сложно реализовать.
Протоколы испытаний генерируются автоматически Нет встроенной поддержки для создания отчетов о тестировании/ошибках.

Хотя очевидно, что QTP имеет более продвинутые возможности, Selenium превосходит QTP в трех основных областях:

  • Стоимость(потому что Selenium это совершенно бесплатно)
  • Гибкость(из-за множества языков программирования, браузеров и платформ, которые он может поддерживать)
  • Параллельное тестирование(то, на что способен QTP, но только с использованием Центра качества)

Резюме

  • Целиком Selenium Software Testing Suite состоит из четырех компонентов:
  • Selenium IDE, Firefox и надстройка Chrome, которую можно использовать только для создания относительно простых тестовых примеров и наборов тестов.
  • Selenium Дистанционное управление, также известное как Selenium 1, это первый Selenium инструмент, позволяющий пользователям использовать языки программирования для создания сложных тестов.
  • WebDriver — это новый прорыв, который позволяет вашим тестовым сценариям напрямую взаимодействовать с браузером, тем самым управляя им на уровне ОС.
  • Selenium Сетка также является инструментом, который используется с Selenium RC для выполнения параллельных тестов в разных браузерах и операционных системах.
  • Selenium RC и WebDriver были объединены в Selenium 2.
  • Selenium более выгоден, чем Microfocus UFT One с точки зрения затрат и гибкости.