Этот туториал по Selenium будет полезен как для начинающих, так и для опытных тестировщиков. Начиная с основных концепций Selenium, мы постепенно перейдем к его компонентам и рассмотрим ключевые моменты каждого из них.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Содержание:
- Почему именно Selenium?
- Введение в Selenium
- Компоненты
- Краткое введение в версии Selenium
- Окружающая среда и стек технологий
- Заключение
Почему именно Selenium?
Современные тенденции в области тестирования показывают, что существует массовое движение в сторону автоматизации. Большое количество повторяющихся ручных тестов вызвало необходимость внедрения практики автоматизации.
Существует несколько преимуществ автоматизации тестирования:
- Поддерживает выполнение повторяющихся тест-кейсов.
- Способствует автоматическому выполнению тестов без участия тестировщика.
- Повышает точность и уменьшает количество ошибок, допущенных тестировщиком.
- Экономит время и деньги.
Все эти преимущества приводят к следующему:
- Высокий показатель ROI («Return On Investment», возврат инвестиций)
- Быстрый выход продукта на рынок
Одними из наиболее часто задаваемых вопросов, связанных с инструментами автоматизации тестирования, являются:
- Какой инструмент лучше всего подходит для автоматизации тестов?
- Каковы затраты, связанные с ним?
- Легко ли его освоить?
Ответ на все вышеперечисленные вопросы – Selenium, потому что:
- У него открытый исходный код.
- Он совместим с множеством браузеров и платформ.
- Поддерживает различные языки программирования (Python, Java, JavaScript, C#, Ruby).
Введение в Selenium
Selenium – один из самых популярных инструментов для автоматизированного тестирования. Он разработан для тестирования функциональных аспектов веб-приложений в различных браузерах и платформах. Благодаря своему открытому исходному коду, он стал одним из наиболее признанных инструментов в области автоматизированного тестирования.
Компоненты
Selenium – это не просто отдельный инструмент или утилита, это скорее пакет из нескольких инструментов тестирования. Каждый из этих инструментов разработан для удовлетворения различных требований к тестированию и тестовой среде.
Пакет состоит из следующего набора инструментов:
- Selenium Integrated Development Environment (IDE)
- Selenium Remote Control (RC)
- Selenium WebDriver
- Selenium Grid
Selenium RC и WebDriver, объединенные вместе, известны как Selenium 2.
Selenium RC в отдельности также называют Selenium 1.
Краткое введение в версии Selenium
Selenium Core
Selenium – это результат работ инженера Джейсона Хаггинса из компании ThoughtWorks. Будучи ответственным за тестирование приложения для учета времени и расходов, он почувствовал необходимость в инструменте для автоматизации тестирования, чтобы избавиться от повторяющихся ручных задач без ущерба качеству и точности.
В результате в начале 2004 года он написал программу на JavaScript, названную “JavaScriptTestRunner”, которая могла автоматически управлять действиями в браузере, что казалось очень похожим на то, как пользователь взаимодействует с браузером.
Впоследствии Джейсон начал представлять этот инструмент широкой аудитории. Были проведены обсуждения по поводу того, чтобы отнести этот инструмент к категории с открытым исходным кодом.
Позже инструмент получил название “Selenium Core”.
Selenium IDE ( Integrated Development Environment)
Selenium IDE была разработана Шинайя Касатани. Эта IDE была способна записывать и воспроизводить действия пользователя в браузере, к которому она была подключена. Позже, в 2006 году, Selenium IDE стала частью пакета Selenium.
Selenium IDE – самый простой и легкий из всех инструментов, входящих в пакет Selenium. Его функции записи и воспроизведения действий делают его исключительно легким для изучения с минимальным знанием языков программирования. При ряде преимуществ, Selenium IDE имеет также несколько недостатков, что делает его непригодным для использования в случае более продвинутых тестовых сценариев.
Преимущества и недостатки Selenium IDE:
Недостатки IDE на самом деле не являются недостатками Selenium. Скорее, это просто некоторые ограничения IDE. Эти ограничения можно обойти с помощью Selenium RC или WebDriver.
Selenium RC (Remote Control)
Selenium RC – это инструмент, написанный на Java, позволяющий пользователю создавать тестовые сценарии для веб-приложений на любом языке программирования по своему выбору. Selenium RC появился в результате преодоления различных недостатков, присущих Selenium IDE или Core.
Ограничения, которые накладывались при использовании Selenium Core, не позволяли пользователю использовать преимущества инструмента в полной мере. Одним из важнейших ограничений была правило ограничения домена (Same Origin Policy).
Проблема с политикой Same Origin заключается в том, что JavaScript-код, который работает на одной веб-странице, не имеет права получать доступ к элементам другой веб-страницы, если эти страницы принадлежат разным веб-сайтам. Это ограничение создано для безопасности, чтобы предотвратить доступ к данным с других сайтов без разрешения.
Например, если бы мы запустили программу на JavaScript с сайта “http://www.seleniumhq.org/”, то мы бы смогли получить доступ к страницам в пределах этого же домена, таким как “http://www.seleniumhq.org/projects/” или “http://www.seleniumhq.org/download/”. Другие домены, такие как google.com, yahoo.com, были бы недоступны.
Итак, для того, чтобы управлять политикой Same Origin без необходимости создавать отдельную копию тестируемого приложения на Selenium Core, был введен Selenium Remote Control (RC).
Когда Джейсон Хаггинс демонстрировал Selenium, его коллега из ThoughtWorks по имени Пол Хэммант предложил способ обойти политику Same Origin и создать инструмент, который можно было бы интегрировать с языком программирования по выбору. Таким образом, появился Selenium RC (Selenium Remote Control).
В отличие от Selenium IDE, Selenium RC поддерживает широкий спектр браузеров и платформ.
Как все происходит:
- Тестировщик создает тестовый сценарий на выбранном языке программирования.
- Для каждого языка программирования существует специальная клиентская библиотека, которая помогает взаимодействовать с Selenium.
- Клиентская библиотека передает тестовые команды на сервер Selenium.
- Сервер Selenium расшифровывает и преобразует тестовые команды в команды JavaScript и отправляет их в браузер.
- Браузер выполняет команды с помощью Selenium Core и отправляет результаты обратно на сервер Selenium.
- Сервер Selenium возвращает результаты тестирования в клиентскую библиотеку. Тестировщик может анализировать эти результаты, чтобы определить успешность или неуспешность тестового сценария.
Преимущества и недостатки Selenium RC:
Selenium Grid
С Selenium RC работа тестировщиков стала проще, но с появлением новых тенденций появилась потребность выполнять тесты на нескольких платформах и браузерах одновременно. Это позволило бы сэкономить много времени и проводить более эффективное тестирование в разных окружениях. Для удовлетворения этой потребности был создан Selenium Grid.
Selenium Grid был разработан Пэтом Лайтбоди для выполнения тестовых сценариев на нескольких платформах одновременно.
Selenium WebDriver
Selenium WebDriver был создан ещё одним инженером из ThoughtWorks по имени Саймон Стюарт в 2006 году. WebDriver также является инструментом для тестирования веб-приложений. Он отличается от предыдущей версии Selenium RC тем, что умеет работать с веб-браузерами без сложных операций на языке JavaScript. Из-за увеличивающегося спроса на автоматизацию тестирования он стал очень популярным среди тестировщиков.
Selenium WebDriver также называют Selenium 2.
Преимущества и недостатки Selenium WebDriver:
Selenium 3
Selenium 3 – это усовершенствованная версия Selenium 2. Это инструмент, предназначенный для автоматизации тестирования мобильных приложений.
Окружение и стек технологий
Ниже приведен список сред и технологий, поддерживаемых инструментами Selenium:
Поддерживаемые браузеры:
Поддерживаемые языки программирования:
Поддерживаемые операционные системы:
Поддерживаемые фреймворки для тестирования:
Заключение
В этом руководстве мы познакомили вас с Selenium, описав его различные компоненты и их преимущества друг перед другом.
Вот основные моменты этой статьи:
- Selenium – это набор из нескольких инструментов для автоматизированного тестирования, каждый из которых предназначен для удовлетворения разных потребностей в тестировании.
- Набор инструментов Selenium состоит из 4 основных компонентов: Selenium IDE, Selenium RC, WebDriver и Selenium Grid.
- Все эти инструменты являются open-source и поддерживают только веб-тестирование.
- Тестировщик должен грамотно выбрать подходящий инструмент Selenium для своих целей.
- Selenium IDE – идеальный инструмент для новичков.
- Selenium RC – это инструмент, который позволяет тестировщику создавать тестовые сценарии на выбранном языке программирования. Он также позволяет выполнять тестовые сценарии в различных браузерах.
- WebDriver – это совершенно другой инструмент, который имеет различные преимущества перед Selenium RC. Слияние Selenium RC и WebDriver также известно как Selenium 2. WebDriver напрямую взаимодействует с веб-браузером.
Перевод статьи «30+ Best Selenium Tutorials: Learn Selenium With Real Examples».