Селен (программное обеспечение) - Selenium (software)

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

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

История

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

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

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

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

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

Составные части

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

Selenium IDE

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

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

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

Помимо официального проекта Selenium IDE, активно поддерживаются два альтернативных расширения браузера Selenium IDE:[14] Канту (Открытый исходный код GPL лицензия) и Katalon Recorder (Закрытый источник ).

API клиента Selenium

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

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

Селен пульт дистанционного управления

Selenium Remote Control (RC) - это сервер, написанный на Ява, который принимает команды для браузера через HTTP. RC позволяет писать автоматические тесты для веб-приложения на любом языке программирования, что позволяет лучше интегрировать Selenium в существующие среды модульного тестирования. Чтобы упростить написание тестов, проект Selenium в настоящее время предоставляет клиентские драйверы для PHP, Python, Рубин, .СЕТЬ, Perl и Ява. Драйвер Java также можно использовать с JavaScript (через Носорог двигатель). Для запуска тестового примера html необходим экземпляр selenium RC server - это означает, что порт должен быть разным для каждого параллельного запуска.[нужна цитата ] Однако для тестового примера Java / PHP только один экземпляр Selenium RC должен работать постоянно.[15]

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

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

Selenium WebDriver

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

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

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

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

Селеновая сетка

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

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

Смотрите также

Рекомендации

  1. ^ «Релизы - SeleniumHQ / selenium». Получено 28 сентября, 2018 - через GitHub.
  2. ^ "Загрузки". Селен.
  3. ^ https://www.selenium.dev/history/. Отсутствует или пусто | название = (Помогите)
  4. ^ "Проект Селен". NewCircle. Получено 29 июня, 2014.
  5. ^ Криль, Пол (6 апреля 2011 г.). «Набор для тестирования веб-приложений Selenium с открытым исходным кодом для поддержки iPhone и Android». InfoWorld. Получено 9 мая, 2012. Selenium был назван так потому, что Хаггинс, недовольный имеющимися на рынке инструментами для тестирования, искал имя, которое позиционировало бы этот продукт как альтернативу коммерческому ПО для тестирования Mercury Interactive QuickTest Professional. Название «Селен» было выбрано, потому что минеральные добавки селена служат лекарством от отравления ртутью, пояснил Хаггинс.
  6. ^ Мойзуддин, Хаджа (7 июня 2018 г.). «Компоненты Selenium Automation Tool». dzone.com. Зона DevOps. Получено 10 июля, 2019.
  7. ^ Эванс, Джим. «Пользователи Selenium - Selenium IDE кажется устаревшей и лишенной функций». groups.google.com. Получено 7 февраля, 2016.
  8. ^ «Он вернулся! Selenium IDE Reborn с Дэйвом Хеффнером». testingpodcast.com.
  9. ^ "Selenium IDE мертва, да здравствует Selenium IDE!". Официальный блог Selenium IDE. 6 августа 2018 г.. Получено 27 ноября, 2019 - через seleniumhq.wordpress.com.
  10. ^ Колантонио, Джо (27 ноября 2018 г.). «Потрясающее возвращение Selenium IDE». testguild.com. Получено 27 ноября, 2019.
  11. ^ «Список новых возможностей Selenium IDE». applitools.com.
  12. ^ «Firefox 55 и Selenium IDE». Официальный блог Selenium. 9 августа 2017 г.. Получено 21 августа, 2017.
  13. ^ "Сайт загрузки Selenium IDE". seleniumhq.org. Получено 10 мая, 2018.
  14. ^ «Selenium IDE восстает как феникс из пепла». Блог о технологиях автоматизации. Получено 8 апреля, 2019.
  15. ^ «Селен пульт дистанционного управления». seleniumhq.org. Получено 13 ноября, 2019.
  16. ^ «Архитектура приложений с открытым исходным кодом: Selenium WebDriver». aosabook.org. Получено 7 февраля, 2016.
  17. ^ Смит, Майкл. «Двигатели WebDriver соответствуют рекомендации W3C». Блог W3C. Получено 10 сентября, 2018.
  18. ^ «Селеновая сетка». Проект автоматизации браузера Selenium. Получено 9 сентября, 2020.

внешняя ссылка