Учебники

1. Введение

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

  • Селен интегрированная среда разработки (IDE)
  • Селен пульт дистанционного управления (RC)
  • WebDriver
  • Selenium Grid

Введение в селен

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

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

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

Введение в селен

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

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

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

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

Введение в селен

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

Рождение Selenium Пульт дистанционного управления (Selenium RC)

Введение в селен

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

Рождение Selenium Grid

Введение в селен

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

Рождение Selenium IDE

Введение в селен

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

Рождение WebDriver

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

Рождение Selenium 2

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

Итак, почему имя Селен?

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

Введение в селен

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

Введение в селен
 

Краткое введение Selenium Remote Control (Selenium RC)

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

Введение в селен

Краткое введение WebDriver

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

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

  • Ява
  • C #
  • PHP
  • питон
  • Perl
  • Рубин

Введение в селен

Selenium Grid

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

Особенности:

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

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

Selenium IDE WebDriver
Поддержка браузера Mozilla Firefox Internet Explorer версий от 6 до 11, 32- и 64-разрядные

версии Microsoft Edge 12.10240 и выше (частичная поддержка некоторых функциональных возможностей в стадии разработки)
Firefox 3.0 и выше,
Google Chrome 12.0. и выше
Opera 11.5 и выше
Android — 2.3 и выше для телефонов и планшетов
(устройства и эмуляторы)

iOS 3+ для телефонов (устройства и эмуляторы) и 3.2+ для планшетов (устройства и эмуляторы)

HtmlUnit 2.9 и выше

Операционная система Windows, Mac OS X, Linux   Все операционные системы, в которых могут работать указанные выше браузеры.
Орудие труда
Почему выбирают?

Selenium IDE

  • Узнать о концепциях автоматического тестирования и Selenium, в том числе:
  • Команды Selenese, такие как type, open, clickAndWait, assert, verify и т. Д.
  • Локаторы, такие как id, name, xpath, css selector и т. Д.
  • Выполнение настроенного кода JavaScript с использованием runScript
  • Экспорт тестовых случаев в различных форматах.
  • Для создания тестов практически без предварительных знаний в программировании.
  • Для создания простых тестовых случаев и наборов тестов, которые вы можете экспортировать позже в RC или WebDriver.
  • Тестировать веб-приложение только на Firefox и Chrome.

Selenium RC

  • Для разработки теста, используя более выразительный язык, чем Selenese
  • Запустить тест для разных браузеров (кроме HtmlUnit) в разных операционных системах.
  • Для развертывания ваших тестов в нескольких средах с использованием Selenium Grid.
  • Чтобы проверить ваше приложение с новым браузером, который поддерживает JavaScript.
  • Для тестирования веб-приложений со сложными сценариями на основе AJAX.

WebDriver

  • Использовать определенный язык программирования при разработке тестового примера.
  • Для тестирования приложений, которые богаты функциональными возможностями на основе AJAX.
  • Выполнять тесты в браузере HtmlUnit.
  • Создавать индивидуальные результаты испытаний.

Selenium Grid

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

Quick Test Professional (QTP) — это запатентованный инструмент автоматического тестирования, ранее принадлежавший компании Mercury Interactive до ее приобретения Hewlett-Packard в 2006 году . Selenium Tool Suite имеет много преимуществ по сравнению с QTP, как описано ниже —

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

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

Преимущества QTP перед селеном

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

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

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

Резюме

  • Весь набор инструментов Selenium Tool Suite состоит из четырех компонентов:
  • Selenium IDE , надстройка Firefox, которую вы можете использовать только при создании относительно простых тестовых случаев и наборов тестов.
  • Selenium Remote Control , также известный как Selenium 1 , является первым инструментом Selenium, который позволил пользователям использовать языки программирования при создании сложных тестов.
  • WebDriver , новый прорыв, который позволяет вашим тестовым сценариям напрямую взаимодействовать с браузером, тем самым управляя им с уровня ОС.
  • Selenium Grid также является инструментом, который используется с Selenium RC для выполнения параллельных тестов в разных браузерах и операционных системах.
  • Selenium RC и WebDriver были объединены в Selenium 2 .
  • Селен более выгоден, чем QTP, с точки зрения затрат и гибкости . Это также позволяет вам запускать тесты параллельно , в отличие от QTP, где вам разрешено выполнять тесты только последовательно.