close

Селен

Перейти к навигации Перейти к поиску
селен
Часть программы сохранения свободы программного обеспечения
Селен IDE.png
Главная Информация
тип программы Автоматизация тестирования
разработчик SeleniumHQ
Лицензия Лицензия Апача
Техническая информация
Запланировано в Ява
Версии
Последняя стабильная версия 4.1.2 (30 января 2022 г. (8 месяцев и 19 дней))
Ссылки

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

История

Первоначально Selenium был разработан Джейсоном Хаггинсом в 2004 году, и вскоре к его усилиям присоединились другие тестировщики и специалисты по программированию. Это программное обеспечение с открытым исходным кодом под лицензией Apache 2.0, которое можно загрузить и использовать бесплатно. Название происходит от шутки Хаггинса, высмеивающего конкурента по имени Меркьюри, говорящего, что отравление ртутью можно вылечить, принимая добавки селена. Участники взяли название и закрепили его. Существуют и другие проекты, построенные на основе Selenium, такие как Selenium Grid для тестирования параллелизма нескольких локальных или удаленных клиентских одновременных тестов, а также Flash Selenium для тестирования программ, написанных в Adobe Flex или Selenium Silverlight .

Компоненты селена

Selenium IDE

Selenium IDE — это интегрированная среда разработки для тестирования с помощью Selenium. Он реализован как расширение для Firefox и Chrome и позволяет записывать, редактировать и отлаживать тесты. Первоначально он был известен как Selenium Recorder.

Сценарии могут быть автоматически разработаны при создании записи и, таким образом, могут быть отредактированы вручную с помощью операторов и команд, чтобы воспроизведение нашей записи было правильным.

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

Характеристика:

  • Простая запись и воспроизведение
  • Умный выбор поля с использованием идентификатора, имени или XPath по мере необходимости.
  • Автоматическое завершение наиболее распространенных команд Selenium.
  • Перекрестные тесты
  • Точки отладки и проверки (точки останова)
  • Храните тесты в Selanese, Ruby, Java и других форматах.
  • Поддержка файла user-extensions.js
  • Возможность утвердить заголовок страницы.
  • Возможность настроить его с помощью плагинов

Selenium Client API

Интерфейс программирования клиентских приложений ( API ) В качестве альтернативы написанию тестов на Selanese, тесты могут быть написаны на различных языках программирования, они взаимодействуют с Selenium, вызывая методы Selenium Client API. В настоящее время Selenium предоставляет API для Java, C#, Ruby и Python. В Selenium 2 был представлен новый клиентский API с WebDriver в качестве основного компонента, хотя старый API по-прежнему можно использовать, вызывая класс Selenium .

Selenium Remote Control

Selenium Remote Control (RC) — сервер, написанный на Java, который принимает команды в браузер по протоколу HTTP . RC позволяет писать автоматизированные тесты для веб-приложений на любом языке программирования, что позволяет лучше интегрировать Selenium в существующие среды тестирования. Чтобы упростить написание тестов, Selenium в настоящее время предоставляет драйверы устройств для PHP, Python, Ruby, .NET, Perl и Java. Драйвер Java можно использовать для Javascript через движок Rhino . Selenium Remote Control был рефакторингом Driven Selenium или Selenium B , исходная версия напрямую запускала процесс для рассматриваемого браузера из тестового языка ; кабельный протокол (который в то время также ошибочно назывался Selanese) был перереализован путем переноса на каждый язык. После рефакторинга между скриптом контроллера и браузером появился демон процесса-посредника . Преимущества включали возможность управлять удаленными браузерами и уменьшать потребность в переносе кода на растущее число языков. С выпуском Selenium 2 от Selenium RC официально отказались в пользу Selenium WebDriver.

Selenium WebDriver

Selenium WebDriver является преемником Selenium RC. Selenium WebDriver принимает команды (отправленные в Selenese или через клиентский API) и отправляет их в браузер. Это реализуется с помощью драйвера для каждого браузера, который отправляет команды и возвращает результаты. Большинство драйверов браузера запускают приложение браузера и обращаются к нему (например, Mozilla Firefox или Internet Explorer), но есть также драйвер для HtmlUnit , который имитирует браузер. В отличие от Selenium 1, где сервер Selenium RC был незаменим, в Selenium WebDriver не требуется специальный сервер для запуска тестов, вместо этого WebDriver запускает экземпляр браузера и управляет им; однако Selenium Grid (см. ниже) можно использовать для запуска тестов на удаленных системах (см. ниже). С начала 2012 года Саймон Стюарт из Google (изобретатель WebDriver) и Дэвид Бернс из Mozilla Foundation вели переговоры с W3C о том, чтобы WebDriver стал интернет-стандартом, поскольку Selenium-Webdriver (Selenium 2.0) призван стать эталонной реализацией. стандарта WebDriver на различных языках программирования. Selenium-WebDriver полностью реализован и поддерживается в Java, Ruby, Python и C#. На практике это означает, что API Selenium 2.0 имеет значительно меньше вызовов, чем API Selenium 1.0. Там, где Selenium 1.0 пытался предоставить интерфейс, богатый многими операциями, Selenium 2.0 пытается предоставить основные строительные блоки, с помощью которых разработчики могут программировать свой собственный предметно-ориентированный язык . Один из них уже существует, и это проект Watir на Ruby, который имеет богатую историю хорошего дизайна. Watir-WebDriver реализует Watir API как оболочку для Selenium-Webdriver в Ruby. Watir-WebDriver создается полностью автоматически на основе спецификаций WebDriver и HTML.

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

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

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

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