Что такое Selenium? Вводный курс
Что такое Selenium?
Selenium — это бесплатная платформа автоматического тестирования (с открытым исходным кодом), используемая для проверки веб-приложений в различных браузерах и платформах. Вы можете использовать несколько языков программирования, например Java, С#, Pythonи т. д., чтобы создать Selenium Тестовые сценарии. Тестирование проведено с помощью Selenium инструмент тестирования обычно называют Selenium Тестирование.
Мнения экспертов
«Избегайте использования фиксированных задержек сна в своих тестах. Вместо этого используйте явные ожидания (например, WebDriverWait) для ожидания загрузки элементов. Это делает ваши скрипты более надежными и быстрыми, поскольку они динамически реагируют на фактические условия страницы — ключевая передовая практика для студентов во всем мире, начиная с Selenium".
Selenium Набор инструментов
Selenium Программное обеспечение — это не просто один инструмент, а набор программ, каждый из которых предназначен для разных целей. Selenium Потребности организации в тестировании качества. Вот список инструментов
- Selenium Интегрированная среда разработки (IDE)
- Selenium Дистанционное управление (RC)
- Вебдрайвер
- Selenium сетка
На данный момент, Selenium RC и WebDriver объединены в единую структуру, образуя Selenium 2. Selenium 1, кстати, относится к Selenium RC.
Видео-учебник 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 IDE?
Selenium Интегрированная среда разработки (IDE) — это простейшая структура в Selenium люкс и есть самый простой для изучения. Это Chrome и Firefox плагин который вы можете установить так же легко, как и другие плагины. Однако из-за своей простоты Selenium IDE следует использовать только как инструмент для создания прототипов. Если вы хотите создать более сложные тестовые примеры, вам нужно будет использовать либо Selenium RC или WebDriver.
Что такое Selenium Дистанционное управление (Selenium РК)?
Selenium РК был флагманская платформа тестирования всего Selenium проект на долгое время. Это первый автоматизированный веб-тестирование инструмент, который позволяет пользователям использовать язык программирования, который они предпочитают. Начиная с версии 2.25.0, RC может поддерживать следующие языки программирования:
Что такое Вебдрайвер?
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 RC |
|
Вебдрайвер |
|
Selenium сетка |
|
Сравнение между 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 с точки зрения затрат и гибкости.