Все, что вам нужно знать об архитектуре Selenium WebDriver

Тестирование системы вопреки всему — сложная задача, и вам нужен инструмент, который поможет вам в этом процессе. Один из таких преимущественно используемых инструментов Автоматизированные тестировщики — это Selenium. Если вы новичок и хотите знать, как работает Selenium внутри, то вы попали в идеальное место. В этой статье я кратко расскажу вам об архитектуре Selenium WebDriver.

Ниже приведены темы, затронутые в этой статье:

  • Что такое селен?
  • Набор инструментов Selenium
  • Архитектура веб-драйвера Selenium
  • Демо

Что такое селен?

Selenium — это переносимая платформа с открытым исходным кодом, используемая для автоматизации тестирования веб-приложений. Он очень гибок, когда дело доходит до тестирования функциональных и регрессионных тестов. Тестовые сценарии Selenium можно писать на разных языках программирования, таких как Java, Python, C# и многих других. Эти тестовые сценарии могут работать в различных браузерах, таких как Chrome, Safari, Firefox, Opera, а также обеспечивают поддержку на различных платформах, таких как Windows, Mac OS, Linux, Solaris. Selenium также поддерживает перекрестный просмотр, когда тестовые примеры выполняются на разных платформах одновременно. Это также помогает в создании надежных наборов автоматизации регрессии на основе браузера и выполнении тестов.

Надеюсь, вы поняли основы Selenium. Теперь давайте двинемся дальше и разберемся с различными инструментами, доступными в Selenium Suite.

Selenium в основном состоит из набора инструментов, которые включают в себя:

  • Селен IDE
  • Селен RC
  • Селен веб-драйвер
  • Селеновая сетка

Картинка7-768x501.png

Давайте разберемся с функциональными возможностями каждого из этих инструментов более подробно.

Селен IDE

IDE (интегрированная среда разработки) — это плагин для Firefox. Это один из самых простых фреймворков в Selenium Suite. Это позволяет нам записывать и воспроизводить сценарии. Если вы хотите создавать сценарии с помощью Selenium IDE, вам нужно использовать Selenium RC или Selenium WebDriver для написания более сложных и надежных тестовых примеров.

Далее давайте посмотрим, что такое Selenium RC.

Селен RC

Selenium RC, также известный как Selenium 1, был основным проектом Selenium задолго до того, как слияние с WebDriver привело к появлению Selenium 2. Он в основном полагается на JavaScript для автоматизации. Он поддерживает Ruby, PHP, Python, Perl и C#, Java, Javascript. Он поддерживает почти все существующие браузеры.

Примечание: Selenium RC официально объявлен устаревшим

Селен веб-драйвер

Selenium WebDriver — это платформа автоматизации браузера, которая принимает команды и отправляет их в браузер. Это реализовано через драйвер для браузера. Он напрямую взаимодействует с браузером и управляет им. Selenium WebDriver поддерживает различные языки программирования, такие как Java, C#, PHP, Python, Perl, Ruby. и Javascript

Selenium WebDriver поддерживает следующее:

  1. _ Поддержка операционной системы _ — Windows, Mac OS, Linux, Solaris
  2. _ Поддержка браузера _ — Mozilla Firefox, Internet Explorer, Google Chrome 12.0.712.0 и выше, Safari, Opera 11.5 и выше, Android, iOS, HtmlUnit 2.9 и выше.

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

Selenium Grid — это инструмент, который используется вместе с Selenium RC. Он используется для параллельного запуска тестов на разных машинах в разных браузерах. Что подразумевает одновременный запуск нескольких тестов на разных машинах с разными браузерами и операционными системами.

Итак, все дело в Selenium Suite of Tools. Давайте углубимся в эту статью и изучим функциональные возможности и различные компоненты архитектуры Selenium WebDriver.

Архитектура веб-драйвера Selenium

Чтобы понять архитектуру Selenium WebDriver, мы должны сначала узнать, что такое API WebDriver. Selenium Webdriver API помогает в общении между языками и браузерами. Каждый браузер имеет разную логику выполнения действий в браузере. На изображении ниже показаны различные компоненты архитектуры Selenium WebDriver.

Картинка5-768x320.png

Он включает в себя четыре основных компонента, а именно:

  1. Клиентская библиотека Selenium
  2. ПРОТОКОЛ JSON WIRE через HTTP-клиент
  3. Драйверы браузера
  4. Браузеры

Давайте подробно разберем каждый из этих компонентов.

1. Клиентские библиотеки Selenium/языковые привязки

Selenium поддерживает несколько библиотек, таких как Java, Ruby, Python и т. д. Разработчики Selenium разработали языковые привязки, позволяющие Selenium поддерживать несколько языков. Если вы хотите узнать больше о библиотеках, пожалуйста, обратитесь к официальному сайту библиотек Selenium.

2. ПРОТОКОЛ JSON WIRE через HTTP-клиент

JSON означает нотацию объектов JavaScript. Он используется для передачи данных между сервером и клиентом в Интернете. JSON Wire Protocol — это REST API, который передает информацию между HTTP-серверами. Каждый BrowserDriver (например, FirefoxDriver, ChromeDriver и т. д.) имеет собственный HTTP-сервер.

3. Драйверы браузера

Каждый браузер содержит отдельный драйвер браузера. Драйверы браузера взаимодействуют с соответствующим браузером, не раскрывая внутреннюю логику функциональности браузера. Когда драйвер браузера получил какую-либо команду, эта команда будет выполнена в соответствующем браузере, и ответ вернется в виде ответа HTTP.

4. Браузеры

Selenium поддерживает несколько браузеров, таких как Firefox, Chrome, IE, Safari и т. д.

Теперь давайте двинемся дальше и узнаем, как именно работает Selenium внутри, с помощью приведенного ниже примера.

Демо

В режиме реального времени вы пишете код в своем пользовательском интерфейсе (скажем, Eclipse IDE), используя любую из поддерживаемых клиентских библиотек Selenium (скажем, Java).

Пример:

WebDriver driver  = new FirefoxDriver();
driver.get("

Когда вы будете готовы со своим сценарием, вы нажмете «Выполнить», чтобы запустить программу. Основываясь на приведенных выше утверждениях, будет запущен браузер Firefox, и он перейдет к Веб-сайт Эдурека.

Как только вы нажмете «Выполнить», каждое выражение в вашем скрипте будет преобразовано в URL-адрес с помощью протокола JSON Wire Protocol через HTTP. URL-адреса будут переданы драйверам браузера. (В приведенном выше коде я использовал FirefoxDriver). Вот в этом случае клиентская библиотека (Java) будет преобразовывать операторы скрипта в формат JSON и далее связываться с FirefoxDriver.

Каждый драйвер браузера использует HTTP-сервер для получения HTTP-запросов. Как только URL-адрес достигнет драйвера браузера, он передаст этот запрос реальному браузеру по HTTP. После этого команды в вашем скрипте Selenium будут выполняться в браузере. В случае браузера Chrome вы можете написать свой скрипт Selenium, как показано ниже:

WebDriver driver  = new ChromeDriver();
driver.get("

Если запрос ПОЧТА запрос, то будет действие в браузере. Если запрос является ПОЛУЧИТЬ request, то соответствующий ответ будет сгенерирован в конце браузера. Затем он будет отправлен через HTTP в драйвер браузера и драйвер браузера по протоколу JSON Wire Protocol и отправит его в пользовательский интерфейс (Eclipse IDE).

Итак, это было все об архитектуре Selenium WebDriver. Я надеюсь, что вы поняли концепции, и это добавило ценности вашим знаниям.

Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев статьи об архитектуре Selenium WebDriver, и мы свяжемся с вами.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *