Selenium (программное обеспечение)

редактировать
Среда тестирования для веб-приложений

Selenium
Selenium Logo.png
Стабильная версия 3.141.59 / 19 ноября 2018 г. ; 23 месяца назад (19.11.2018)
Репозиторий Измените это на Wikidata
Написано наSelenium Server: Java ; Selenium WebDriver (работает без Selenium Server), официальная поддержка: JavaScript (Node.js ), Python, Ruby, Java или C#
Операционная система Кросс-платформенность
Тип Тестирование программного обеспечения framework для веб-приложений
Лицензия Лицензия Apache 2.0
Веб-сайтselenium.dev Измените это в Викиданных

Selenium - это переносимый фреймворк для тестирования веб-приложений. Selenium предоставляет инструмент воспроизведения для создания функциональных тестов без необходимости изучать тестовый язык сценариев (Selenium IDE). Он также предоставляет тестовый предметно-ориентированный язык (Selenese) для написания тестов на ряде популярных языков программирования, включая C#, Groovy, Java, Perl., PHP, Python, Ruby и Scala. Затем тесты могут выполняться в большинстве современных веб-браузеров. Selenium работает в Windows, Linux и macOS. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией Apache License 2.0.

Содержание

  • 1 История
  • 2 Компоненты
    • 2.1 Selenium IDE
    • 2.2 Selenium client API
    • 2.3 Selenium WebDriver
    • 2.4 Selenium Remote Control
    • 2.5 Selenium Grid
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

История

Первоначально Selenium был разработан Джейсоном Хаггинсом в 2004 г. в качестве внутреннего инструмента ThoughtWorks. Позже к Хаггинсу присоединились другие программисты и тестировщики в ThoughtWorks, прежде чем к команде присоединился Пол Хаммант и руководил разработкой второго режима работы, который позже стал «Selenium Remote Control» (RC). В том году инструмент был открыт с исходным кодом.

В 2005 году Дэн Фабулич и Нельсон Спроул (с помощью Пэта Лайтбоди) сделали предложение принять серию патчей, которые превратят Selenium-RC в то, чем он стал наиболее известен. На той же встрече управление Selenium как проектом будет продолжено в рамках комитета, а Хаггинс и Хаммант будут представителями ThoughtWorks.

В 2007 году Хаггинс присоединился к Google. Вместе с другими, такими как Дженнифер Беван, он продолжил разработку и стабилизацию Selenium RC. В то же время Саймон Стюарт из ThoughtWorks разработал превосходный инструмент автоматизации браузера под названием WebDriver. В 2009 году после встречи разработчиков на конференции Google Test Automation Conference было решено объединить два проекта и назвать новый проект Selenium WebDriver или Selenium 2.0.

В 2008 году Филипп Ханригу (тогда в ThoughtWorks) создал «Selenium Grid», который предоставляет хаб, позволяющий запускать несколько тестов Selenium одновременно на любом количестве локальных или удаленных систем, тем самым минимизируя время выполнения теста. Grid предлагал в качестве открытого исходного кода возможности, аналогичные внутреннему / частному облаку Google для Selenium RC. Пэт Лайтбоди уже создал частное облако для HostedQA, которое затем продал Gomez, Inc.

Название Selenium произошло от шутки Хаггинса в электронном письме, высмеивающей конкурента по имени Меркурий, говоря, что отравление ртутью можно вылечить, принимая добавки селена. Остальные, получившие электронное письмо, взяли это имя и запустили его.

Компоненты

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

Selenium IDE

Selenium IDE - это полная интегрированная среда разработки (IDE) для тестов Selenium. Он реализован как надстройка Firefox и как расширение Chrome. Он позволяет записывать, редактировать и отлаживать функциональные тесты. Ранее он был известен как Selenium Recorder. Selenium-IDE была первоначально создана Шинья Касатани и передана проекту Selenium в 2006 году. Ранее Selenium IDE практически не поддерживалась. Selenium IDE начала активно поддерживаться в 2018 году.

Скрипты можно автоматически записывать и редактировать вручную, обеспечивая поддержку автозаполнения и возможность быстро перемещать команды. Скрипты записываются на Selenese, специальном языке сценариев тестирования для Selenium. Selenese предоставляет команды для выполнения действий в браузере (щелкните ссылку, выберите параметр) и для получения данных с результирующих страниц.

Версия 2.x Selenium IDE для Firefox перестала работать после обновления Firefox 55 и была заменена Selenium IDE 3.x.

В дополнение к официальному проекту Selenium IDE, активно поддерживаются два альтернативных расширения браузера Selenium IDE: Kantu (Open-Source GPL лицензия) и Katalon Recorder (Closed Source ).

API клиента Selenium

В качестве альтернативы написанию тестов на Selenese тесты также могут быть написаны на различных языках программирования. Затем эти тесты связываются с Selenium, вызывая методы в Selenium Client API. В настоящее время Selenium предоставляет клиентские API для Java, C#, Ruby, JavaScript, R и Python.

. В Selenium 2 был представлен новый клиентский API (с WebDriver в качестве центрального компонента). Однако старый API (использующий класс Selenium) по-прежнему поддерживается.

Selenium WebDriver

Selenium WebDriver является преемником Selenium RC. Selenium WebDriver принимает команды (отправленные в Selenese или через клиентский API) и отправляет их в браузер. Это реализуется через специфичный для браузера драйвер браузера, который отправляет команды браузеру и получает результаты. Большинство драйверов браузера фактически запускают и обращаются к приложению браузера (например, Firefox, Google Chrome, Internet Explorer, Safari или Microsoft Edge ); существует также драйвер браузера HtmlUnit, который имитирует браузер с помощью безголового браузера HtmlUnit.

В отличие от Selenium 1, где для запуска тестов был необходим сервер Selenium, Selenium WebDriver не требует специального сервера для выполнения тестов. Вместо этого WebDriver напрямую запускает экземпляр браузера и управляет им. Однако Selenium Grid можно использовать с WebDriver для выполнения тестов в удаленных системах (см. Ниже). По возможности, WebDriver для управления браузером использует встроенные функции уровня операционной системы, а не команды JavaScript на основе браузера. Это позволяет обойти проблемы с тонкими различиями между собственными командами и командами JavaScript, включая ограничения безопасности.

На практике это означает, что API-интерфейс Selenium 2.0 имеет значительно меньше вызовов, чем API-интерфейс Selenium 1.0. В то время как Selenium 1.0 пытался предоставить богатый интерфейс для множества различных операций браузера, Selenium 2.0 стремится предоставить базовый набор строительных блоков, из которых разработчики могут создавать свой собственный предметно-ориентированный язык. Один такой DSL уже существует: проект Watir на языке Ruby имеет богатую историю хорошего дизайна. Watir-webdriver реализует Watir API как оболочку для Selenium-Webdriver в Ruby. Watir-webdriver создается полностью автоматически на основе спецификации WebDriver и спецификации HTML.

В начале 2012 года Саймон Стюарт (изобретатель WebDriver), который тогда работал с Google, а теперь с Facebook, и Дэвид Бернс из Mozilla вели переговоры с W3C о превращении WebDriver в Интернет. стандарт. В июле 2012 года был выпущен рабочий проект, а в июне 2018 года последовала рекомендация. Selenium-Webdriver (Selenium 2.0) полностью реализован и поддерживается в Python, Ruby, Java. и C#.

Selenium Remote Control

Selenium Remote Control (RC) - это сервер, написанный на Java, который принимает команды для браузера через HTTP. RC позволяет писать автоматические тесты для веб-приложения на любом языке программирования, что позволяет лучше интегрировать Selenium в существующие среды модульного тестирования. Чтобы упростить написание тестов, проект Selenium в настоящее время предоставляет клиентские драйверы для PHP, Python, Ruby, .NET, Perl. и Java. Драйвер Java также можно использовать с JavaScript (через механизм Rhino ). Для запуска тестового примера html необходим экземпляр selenium RC server - это означает, что порт должен быть разным для каждого параллельного запуска. Однако для тестового примера Java / PHP только один экземпляр Selenium RC должен работать постоянно.

Selenium Remote Control был рефакторингом Driven Selenium или Selenium B, разработанным Полом Хаммантом, при участии Джейсона в качестве соавтора Селен. Исходная версия напрямую запускала процесс для рассматриваемого браузера с тестового языка Java,.NET, Python или Ruby. Проводной протокол (в свое время называвшийся «Selenese») был повторно реализован в каждом языковом порте. После рефакторинга, выполненного Дэном Фабуличем и Нельсоном Спрулом (с помощью Пэта Лайтбоди), между сценарием вождения и браузером возник промежуточный процесс-демон. К преимуществам относятся возможность управлять удаленными браузерами и уменьшенная потребность в переносе каждой строки кода на все более растущий набор языков. Selenium Remote Control полностью заменил строку кода Driven Selenium в 2006 году. Шаблон браузера для «Driven» / «B» и «RC» был ответ / запрос, который впоследствии стал известен как Comet.

. В выпуске Selenium 2 Selenium RC был официально объявлен устаревшим и заменен Selenium WebDriver.

Selenium Grid

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

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

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-07 09:19:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте