Протоколы автоматизации
С WebdriverIO вы можете выбирать между несколькими технологиями автоматизации при запуске ваших E2E-тестов локально или в облаке. По умолчанию WebdriverIO попытается запустить локальную сессию автоматизации, используя протокол WebDriver Bidi.
Протокол WebDriver Bidi
WebDriver Bidi - это протокол автоматизации для браузеров, использующий двунаправленную коммуникацию. Это преемник протокола WebDriver и предоставляет гораздо больше возможностей для интроспекции в различных сценариях тестирования.
Этот протокол в настоящее время находится в разработке, и в будущем могут быть добавлены новые примитивы. Все производители браузеров обязались реализовать этот веб-станд арт, и многие примитивы уже встроены в браузеры.
Протокол WebDriver
WebDriver - это интерфейс удаленного управления, который обеспечивает интроспекцию и контроль пользовательских агентов. Он предоставляет платформенно- и языково-нейтральный протокол, позволяющий внешним программам удаленно управлять поведением веб-браузеров.
Протокол WebDriver был разработан для автоматизации браузера с точки зрения пользователя, что означает, что всё, что может делать пользователь, вы можете делать с браузером. Он предоставляет набор команд, которые абстрагируют общие взаимодействия с приложением (например, навигацию, клики или чтение состояния элемента). Поскольку это веб-стандарт, он хорошо поддерживается всеми основными производителями браузеров и также используется в качестве базового протокола для мобильной автомат изации с помощью Appium.
Для использования этого протокола автоматизации вам нужен прокси-сервер, который переводит все команды и выполняет их в целевой среде (т.е. в браузере или мобильном приложении).
Для автоматизации браузера прокси-сервером обычно является драйвер браузера. Драйверы доступны для всех браузеров:
- Chrome – ChromeDriver
- Firefox – Geckodriver
- Microsoft Edge – Edge Driver
- Internet Explorer – InternetExplorerDriver
- Safari – SafariDriver
Для любого вида мобильной автоматизации вам потребуется установить и настроить Appium. Это позволит вам автоматизировать мобильные (iOS/Android) или даже настольные (macOS/Windows) приложения, используя ту же настройку WebdriverIO.
Также существует множество сервисов, которые позволяют запускать ваши автоматизированные тесты в облаке в высоком масштабе. Вместо того, чтобы настраивать все эти драйверы локально, вы можете просто общаться с этими сервисами (например, Sauce Labs) в облаке и проверять результаты на их платформе. Коммуникация между тестовым скриптом и средой автоматизации будет выглядеть следующим образом: