Как запустить UI-автотесты в любом Chromium-браузере

Привет, Хабр! Меня зовут Кристина Курашова и я отвечаю за качество в VK Assistant. Это платформа по созданию диалогового ассистента с использованием NLP-моделей. Его можно интегрировать с любой корпоративной системой (как SAP и CRM, например) и подключить к корпоративному мессенджеру или даже web-приложению с возможностью голосового управления. 

Одной из киллер фич нашего продукта является многофункциональная админка для настройки всего-всего-всего. В том числе и для обучения моделей, составления сценариев диалогов, интеграции с корпоративными системами и многого другого.

Некоторое время назад я приступила к автоматизации ее регрессионного тестирования. ​​И вот февраль 2022 принес в нашу команду новые вызовы. Один из них — запуск этих тестов также в Atom Browser и Yandex Browser. Ок, запускаем.

Внимание! Эта статья будет полезна тем, кто, как и я, столкнулся с задачей запуска UI-автотестов в том числе в браузерах на основе Chromium (не только Chrome). Пройдя этот путь, решила поделиться с вами. Возможно, кому-то это поможет сэкономить время.

bc660d3e09beac6ea61ede5d3cca483d.jpg

Для UI-автотестов мы используем Nightwatch.js без Selenuim-сервера. Nightwatch.js — это фреймворк для автоматизации end-to-end тестирования на Node.js. Один из плюсов этого фреймворка, на мой взгляд, очень подробная документация. Про Selenium-сервер можно почитать здесь. Вкратце, он помогает запускать автотесты параллельно с использованием нескольких машин (реальных или виртуальных). Пока для нас скорость выполнения тестов не так важна, мы отложили его в сторону, и вот так выглядит наша текущая схема:

Источник https://nightwatchjs.org/Источник https://nightwatchjs.org/

То есть для запуска достаточно установленных на машине Node.js, Nightwatch.js и драйвера, который будет выполнять команды теста. Под каждый браузер потребуется свой драйвер. Об этом расскажу далее.

Схема с использованием Selenium-сервера будет выглядеть так:

Источник https://nightwatchjs.org/Источник https://nightwatchjs.org/

На месте Nightwatch.js может быть любой другой фреймворк. Независимо от использования Selenium-сервера для запуска понадобится драйвер конкретного браузера. 

В этой статье речь идет о запуске именно в Chromium-браузерах.

Спойлер

Схема одинаковая. Отличается только драйвер, который будем подкладывать

© Habrahabr.ru