Все, что вам нужно знать об архитектуре 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
- Селен веб-драйвер
- Селеновая сетка
Давайте разберемся с функциональными возможностями каждого из этих инструментов более подробно.
Селен 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 поддерживает следующее:
- _ Поддержка операционной системы _ — Windows, Mac OS, Linux, Solaris
- _ Поддержка браузера _ — 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.
Он включает в себя четыре основных компонента, а именно:
- Клиентская библиотека Selenium
- ПРОТОКОЛ JSON WIRE через HTTP-клиент
- Драйверы браузера
- Браузеры
Давайте подробно разберем каждый из этих компонентов.
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, и мы свяжемся с вами.