Архитектура Selenium WebDriver
В этом посте мы подробно рассмотрим архитектуру Selenium WebDriver. Архитектура Selenium WebDriver полностью посвящена внутренней работе Selenium. Мы знаем, что Selenium — это инструмент автоматизации браузера, который взаимодействует с браузером и автоматизирует сквозное тестирование веб-приложения.
Не пропустите: учебник по Selenium — учитесь шаг за шагом
< p>Selenium — это набор инструментов. Он состоит из Selenium IDE, Selenium RC, Selenium Webdriver и Selenium Grid
Почему драйвер WebDriver = new FirefoxDriver();
Selenium IDE:
Selenium IDE (интегрированная среда разработки) — это плагин для Firefox. Это самый простой фреймворк в Selenium Suite. Это позволяет нам записывать и воспроизводить сценарии. Несмотря на то, что мы можем создавать сценарии с помощью Selenium IDE, нам нужно использовать Selenium RC или Selenium WebDriver для написания более сложных и надежных тестовых примеров.
Как установить Selenium IDE
Selenium RC:< /сильный>
Selenium RC AKA Selenium 1. Selenium RC долгое время был основным проектом Selenium до того, как слияние WebDriver привело к появлению Selenium 2. Selenium 1 все еще активно поддерживается (в режиме обслуживания). Для автоматизации используется JavaScript. Он поддерживает Java, Javascript, Ruby, PHP, Python, Perl и C#. Он поддерживает практически все существующие браузеры.
Примечание. Selenium RC официально объявлен устаревшим.
Selenium WebDriver:
Selenium WebDriver — это платформа автоматизации браузера, которая принимает команды и отправляет их в браузер. Это реализовано через драйвер для браузера. Он управляет браузером, взаимодействуя с ним напрямую. Selenium WebDriver поддерживает Java, C#, PHP, Python, Perl, Ruby.
Поддержка операционных систем – 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 WebDriver
Selenium Grid:
Selenium Grid — это инструмент, используемый вместе с Selenium RC для параллельного запуска тестов на разных машинах в разных браузерах. То есть одновременное выполнение нескольких тестов на разных машинах с разными браузерами и операционными системами.
Selenium WebDriver — это хорошо разработанный объектно-ориентированный API, поддерживающий множество языков, таких как Java, C#, Python и т. д. Давайте посмотрим, что такое API и затем мы переходим к полному пониманию архитектуры Selenium WebDriver.
API:
интерфейс прикладного программирования (API) работает как интерфейс между различными программными компонентами.
Изучите тестирование API за 10 минут
Selenium WebDriver API:
Selenium Webdriver API помогает в общении между языками и браузерами. Selenium поддерживает множество языков программирования, таких как Java, C#, Python и т. д., а также несколько браузеров, таких как Google Chrome, Firefox, Internet Explorer и т. д.
Вопросы на собеседовании Selenium WebDriver в реальном времени< /blockquote>
Каждый браузер имеет разную логику выполнения таких действий, как загрузка страницы, закрытие браузера и т. д.
Вот схема архитектуры Selenium WebDriver Framework
Архитектура Selenium WebDriver
Есть четыре компонента архитектуры Selenium:
- Клиентская библиотека Selenium
- Протокол JSON Wire over HTTP
- Драйверы браузера
- Браузеры
Клиентские библиотеки Selenium/Языковые привязки:
Selenium поддерживает несколько библиотек, таких как Java, Ruby, Python и т. д. Разработчики Selenium разработали языковые привязки, позволяющие Selenium поддерживать несколько языков. Ознакомьтесь с библиотеками Selenium на официальном сайте.
ПРОТОКОЛ JSON WIRE через HTTP-клиент:
JSON означает нотацию объектов JavaScript. Он используется для передачи данных между сервером и клиентом в Интернете. JSON Wire Protocol — это REST API, который передает информацию между HTTP-серверами. Каждый BrowserDriver (например, FirefoxDriver, ChromeDriver и т. д.) имеет собственный HTTP-сервер.
Драйверы браузера
Каждый браузер содержит отдельный драйвер браузера. Драйверы браузера взаимодействуют с соответствующим браузером, не раскрывая внутреннюю логику работы браузера. Когда драйвер браузера получает какую-либо команду, эта команда будет выполнена в соответствующем браузере, и ответ вернется в виде ответа HTTP.
Браузеры:
Selenium поддерживает несколько браузеров, таких как Firefox, Chrome, IE, Safari и т. д.
Давайте посмотрим, как Selenium WebDriver работает внутри
В режиме реального времени вы пишете код в своем пользовательском интерфейсе (скажем, Eclipse IDE), используя любой из поддерживаемые клиентские библиотеки Selenium (скажем, Java).
Пример:
12 WebDriver driver = new FirefoxDriver();driver.get(https://www.softwaretestingmaterial.com) Как только вы закончите со своим скриптом, нажмите Выполнить, чтобы выполнить программу. На основании приведенных выше заявлений будет запущен браузер Firefox, и он перейдет на веб-сайт softwartestingmaterial.
Здесь мы видим, что произойдет внутри после того, как вы нажмете «Выполнить» до запуска браузера Firefox.
Как только вы нажмете «Выполнить», каждое выражение в вашем скрипте будет преобразовано в URL-адрес с помощью протокола JSON Wire Protocol через HTTP. URL-адреса будут переданы драйверам браузера. (В приведенном выше коде мы взяли FirefoxDriver). Здесь, в нашем случае, клиентская библиотека (java) преобразует операторы скрипта в формат JSON и связывается с FirefoxDriver. URL-адрес выглядит так, как показано ниже. размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>http://localhost:8080/{"url":" https://www.softwaretestingmaterial.com"}
1 http://localhost:8080/{“url”:”https://www.softwaretestingmaterial.com”} Каждый драйвер браузера использует HTTP-сервер для получения HTTP-запросов. Как только URL-адрес достигнет драйвера браузера, драйвер браузера передаст этот запрос реальному браузеру по HTTP. Затем команды в вашем скрипте selenium будут выполняться в браузере.
Если запрос является запросом POST, в браузере будет выполнено действие
Если запрос является GET, то соответствующий ответ будет сгенерирован на стороне браузера, и он будет отправлен через HTTP драйверу браузера и драйверу браузера по протоколу JSON Wire Protocol, а затем отправлен в пользовательский интерфейс (Eclipse IDE).
Это все об архитектуре Selenium WebDriver.
Понравился этот пост? Не забудьте поделиться ею!
Вот несколько отобранных статей для дальнейшего чтения:
- Selenium Continuous Integration – [Selenium – Maven – Jenkins – Git]
- Выполнение сценариев Selenium On BrowserStack — кросс-браузерное тестирование
- Выполнение скриптов Selenium с использованием безголового браузера
- Изучение – динамический XPath в Selenium – без каких-либо инструментов
- Изучение – динамический локатор CSS в Selenium – без каких-либо инструментов
TAG: qa