Типы настройки
WebdriverIO может использоваться для различных целей. Он реализует API протокола WebDriver и может запускать браузер в автоматизированном режиме. Фреймворк разработан для работы в любой среде и для любых задач. Он не зависит от сторонних фреймворков и требует только Node.js для запуска.
Привязки протокола
Для базовых взаимодействий с WebDriver и другими протоколами автоматизации WebdriverIO использует собственные привязки протокола на основе NPM-пакета webdriver
:
- WebDriver
- Chrome DevTools
loading...
loading...
Все команды протокола возвращают необработанный ответ от драйвера автоматизации. Пакет очень легкий, и в нем нет умной логики, такой как автоматическое ожидание, для упрощения взаимодействия с протоколом.
Команды протокола, применяемые к экземпляру, зависят от начального ответа сессии драйвера. Например, если ответ указывает на то, что была запущена мобильная сессия, пакет применяет все команды протокола Appium и Mobile JSON Wire к прототипу экземпляра.
Вы можете запускать тот же набор команд (кроме мобильных) с использованием протокола Chrome DevTools, импортируя NPM-пакет devtools
. Он имеет тот же интерфейс, что и пакет webdriver
, но выполняет автоматизацию на основе Puppeteer.
Дополнительную информацию об интерфейсах этих пакетов смотрите в API модулей.
Автономный режим
Чтобы упростить взаимодействие с протоколом WebDriver, пакет webdriverio
реализует различные команды поверх протокола (например, команду dragAndDrop
) и основные концепции, такие как умные селекторы или автоматическое ожидание. Пример выше можно упростить так:
loading...
Использование WebdriverIO в автономном режиме по-прежнему дает вам доступ ко всем командам протокола, но предоставляет набор дополнительных команд, которые обеспечивают взаимодействие с браузером на более высоком уровне. Это позволяет вам интегрировать этот инструмент автоматизации в свой (тестовый) проект для создания новой библиотеки автоматизации. Популярные примеры включают Oxygen или CodeceptJS. Вы также можете писать просты е скрипты Node для сбора контента из веба (или для любых других задач, требующих запуска браузера).
Если не указаны конкретные опции, WebdriverIO всегда будет пытаться загрузить и настроить драйвер браузера, соответствующий свойству browserName
в ваших capabilities. В случае Chrome и Firefox он также может установить их, если не найдет соответствующий браузер на машине.
Дополнительную информацию об интерфейсах пакета webdriverio
смотрите в API модулей.
Тестовый раннер WDIO
Однако основная цель WebdriverIO - это комплексное тестирование в большом масштабе. Поэтому мы реализовали тестовый раннер, который помогает создать надежный набор тестов, который легко читать и поддерживать.
Тестовый раннер решает многие проблемы, которые часто возникают при работе с обычными библиотеками автоматизации. Во-первых, он организует ваши тестовые запуски и разделяет тестовые спецификации, чтобы ваши тесты могли выполняться с максимальной параллельностью. Он также управляет сессиями и предоставляет множество функций, которые помогают отлаживать проблемы и находить ошибки в ваших тестах.
Вот тот же пример, что и выше, написанный как тестовая спецификация и выполненный WDIO:
loading...
Тестовый ра ннер - это абстракция популярных тестовых фреймворков, таких как Mocha, Jasmine или Cucumber. Чтобы запустить ваши тесты с использованием тестового раннера WDIO, ознакомьтесь с разделом Начало работы для получения дополнительной информации.
Дополнительную информацию об интерфейсе пакета тестового раннера @wdio/cli
смотрите в API модулей.