Программная инженерия | Селен: инструмент автоматизации
Selenium - это инструмент автоматизации и портативный инструмент тестирования программного обеспечения для веб-приложений. Также предоставляется тестовый предметно-ориентированный язык, для написания тестовых примеров можно использовать языки программирования, включая C #, Java, Perl, PHP, Python, Ruby, Scala, Groovy. Он не поддерживает технологию RIA (Rich Internet Application), такую как Silverlight JavaFX и Flex Flash. Селен - это не единичный инструмент. Это программный комплекс, состоящий из следующих компонентов:
История: Selenium был разработан Джейсоном Хаггинсом в 2004 году в компании ThoughtWorks. Он работал над внутренним / веб-приложением в ThoughtWorks. Через некоторое время он заметил, что вместо того, чтобы тестировать свое приложение вручную, он может автоматизировать его. Он разработал программу на JavaScript для тестирования своего веб-приложения, позволяющую автоматически перезапускать тесты. Он назвал свою программу «JavaScriptTestRunner». Через некоторое время этот инструмент был открыт и переименован в Selenium Core.
Selenium Remote Control был разработан Полом Хаммантом. Причина разработки Selenium RC заключалась в том, что тестировщикам, использующим ядро Selenium, приходилось устанавливать все тестируемое приложение и веб-сервер на свои локальные компьютеры, потому что были некоторые ограничения, навязанные той же политикой происхождения. Чтобы преодолеть это ограничение, Пол Хаммант принял решение и разработал сервер, который будет действовать как HTTP-прокси, чтобы обмануть веб-браузер, поэтому он считает, что Selenium Core и тестируемое веб-приложение происходят из одного домена.
Selenium IDE была разработана Шинья Касатани из Японии. Он был реализован как надстройка / надстройка Firefox, и теперь мы можем использовать Selenium IDE в каждом веб-браузере. Он передал Selenium IDE проекту Selenium в 2006 году.
Selenium Grid был разработан Филиппом Ханригу в 2008 году. Это сервер, который позволяет тесту использовать экземпляр веб-браузера, запущенный на удаленных машинах. Он предоставляет возможность запускать тест в удаленном веб-браузере, что помогает разделить нагрузку тестирования между несколькими машинами и сэкономит массу времени. Это позволяет проводить параллельное тестирование на разных платформах и в разных операционных системах. Grid предоставил в качестве открытого исходного кода возможности, аналогичные частному облаку Google для Selenium RC. Пэт Лайтбоди уже создал частную облачную систему под названием «HostedQA» и продал ее Gomez, Inc.
Selenium WebDriver был разработан Саймоном Стюартом в 2006 году. WebDriver автоматизирует и контролирует, инициируемые веб-браузером. Он не полагается на JavaScript для автоматизации. Он напрямую управляет браузером, связываясь с ним. Это была первая кросс-платформенная среда тестирования, которая могла управлять браузером на уровне ОС.
В 2009 году после встречи вся команда Selenium решила объединить два проекта Selenium RC и WebDriver и назвать это Selenium 2.0.
Selenium IDE: вначале Selenium IDE (интегрированная среда разработки) была реализована как надстройка / надстройка Firefox, и теперь ее можно использовать в Selenium IDE в любом веб-браузере. Он обеспечивает функциональность записи и воспроизведения. На рисунке показана Selenium IDE.
Плюсы:
- Это инструмент с открытым исходным кодом.
- Предоставьте базу для пристройки.
- Он обеспечивает поддержку нескольких браузеров.
- При использовании Selenium IDE опыт работы с языком программирования не требуется.
- Пользователь может устанавливать точки останова и отлаживать.
- Он предоставляет функции записи и воспроизведения.
Минусы:
- Нет поддержки итераций и условных операций.
- Исполнение медленное.
- У него нет API.
- Он не предоставляет никакого механизма для обработки ошибок.
Selenium RC: RC означает дистанционное управление. Это позволяет программистам кодировать на разных языках программирования, таких как C #, Java, Perl, PHP, Python, Ruby, Scala, Groovy. На рисунке показано, как работает Сервер удаленного управления.
Плюсы:
- Он поддерживает все веб-браузеры.
- Он может выполнять итерационные и условные операции.
- Выполнение быстрее по сравнению с IDE.
- Имеет встроенные генераторы результатов тестирования.
- Он поддерживает тестирование на основе данных.
- Он имеет зрелый и полный API.
Минусы:
- Знание языка программирования необходимо.
- Он не поддерживает тестирование для IOS / Android.
- По производительности он немного медленнее, чем Selenium Webdriver.
- Он не поддерживает функции записи и воспроизведения.
- Сложная конфигурация.
Selenium Web Driver: Selenium Web Driver автоматизирует и контролирует, инициируя веб-браузер. Он не полагается на JavaScript для автоматизации. Он напрямую управляет браузером, связываясь с ним. На рисунке показано, как веб-драйвер работает как интерфейс между драйверами и привязками.
Плюсы:
- Он напрямую связывается с веб-браузером.
- Исполнение быстрее.
- Он поддерживает слушателей.
- Он поддерживает тестирование приложений IOS / Android.
- Установка проще, чем Selenium RC.
- Чисто объектно-ориентированный.
Минусы:
- Требуются знания программирования.
- Нет встроенного механизма генерации файла с результатами тестирования.
Selenium Grid: По сути, это сервер, который позволяет тесту использовать экземпляр веб-браузера, запущенный на удаленных машинах. Он предоставляет возможность запускать тест в удаленном веб-браузере, что помогает разделить нагрузку тестирования между несколькими машинами и сэкономит массу времени. Это позволяет проводить параллельное тестирование на разных платформах и в разных операционных системах.
Selenium Grid - это сеть концентраторов и узлов. Каждый узел регистрируется в HUB с определенной конфигурацией, и HUB знает о браузерах, доступных на узле. Когда в HUB поступает запрос для определенного браузера [с желаемым объектом возможностей], HUB, если он обнаруживает совпадение для запрошенного веб-браузера, перенаправляет вызов на этот конкретный узел Grid, после чего сеанс устанавливается в двух направлениях и выполняется начинается.
Вниманию читателя! Не переставай учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с курсом теории CS по доступной для студентов цене и будьте готовы к отрасли.