Перейти до основного вмісту

Протоколи автоматизації

З WebdriverIO ви можете обирати між кількома технологіями автоматизації для виконання E2E тестів локально або у хмарі. За замовчуванням WebdriverIO завжди перевірятиме наявність WebDriver сервера за адресою localhost:4444. Якщо такий сервер не буде знайдено, то буде запущена автоматизація за допомогою Chrome DevTools протоколу використовуючи Puppeteer під капотом.

Майже всі сучасні браузери, які підтримують WebDriver, також підтримують й інший інтерфейс під назвою DevTools, який можна використовувати для автоматизації браузера.

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

WebDriver протокол

WebDriver — це інтерфейс дистанційного керування, який дозволяє переглядати та контролювати віддалений браузер. Протокол декларує не пов'язаний із мовою та платформою інтерфейс як спосіб для позапроцесних програм дистанційно керувати поведінкою браузерів.

Протокол WebDriver розроблено для автоматизації браузера, щоб симулювати поведінку користувача, тобто все, що може робити користувач, ви можете автоматизувати у браузері. Надається набір стандартних команд, які абстрагують типові взаємодії з програмою (наприклад, навігація, клацання, або зчитування стану елемента). Оскільки це вебстандарт, він добре підтримується всіма основними розробниками браузерів, а також використовується як базовий протокол для мобільної автоматизації за допомогою Appium.

Щоб використовувати цей протокол автоматизації, вам потрібен проксі-сервер, який перекладає всі команди та виконує їх у цільовому середовищі (тобто у браузері чи мобільному додатку).

Для автоматизації браузера проксі-сервер зазвичай є драйвером браузера. Доступні драйвери для всіх браузерів:

Для будь-якого типу мобільної автоматизації вам потрібно буде встановити та налаштувати Appium. Це дозволить вам автоматизувати мобільні (iOS/Android) або навіть настільні (macOS/Windows) програми, використовуючи ту саму конфігурацію із WebdriverIO.

Існує також багато сервісів, які надають послуги із запуску автоматизований тест у хмарі. Замість того, щоб налаштовувати всі ці драйвери локально, ви можете просто комунікувати із цим сервісами (наприклад Sauce Labs) у хмарі та перевіряти бачити результати на їхній платформі. Комунікація між тестом і середовищем автоматизації виглядатиме так:

Налаштування WebDriver

Переваги

  • Офіційний веб-стандарт W3C, який підтримується всіма основними браузерами
  • Спрощений протокол, який охоплює розповсюджені користувацькі дії
  • Підтримка мобільної автоматизації (і навіть настільних програм)
  • Можна використовувати як локально, так і в хмарі за допомогою таких служб, як Sauce Labs

Недоліки

  • Не призначений для поглибленого аналізу браузера (наприклад, відстеження або перехоплення мережевих подій)
  • Обмежений набір можливостей автоматизації (наприклад, відсутність підтримки сповільнення ЦП або мережі)
  • Потребує додаткових зусиль для налаштування драйвера браузера із selenium-standalone/chromedriver/і т.п.

Welcome! How can I help?

WebdriverIO AI Copilot