Protractor работает поверх Node.js и Selenium WebDriver, поэтому ключевое требование — поддержка Node.js и запуска браузеров в режиме автоматизации. Поддерживаются основные настольные операционные системы:
Серверные сборки ОС без графической подсистемы допускаются при использовании headless-режимов Chrome или Firefox.
Protractor — это Node.js-приложение, поэтому Node.js является обязательным компонентом системы.
Рекомендуемые требования:
Проверка окружения:
node -v
npm -v
Использование слишком новых версий Node.js может приводить к несовместимости с устаревшими версиями Protractor и Selenium.
Protractor устанавливается как зависимость проекта и тянет за собой Selenium WebDriver и связанные библиотеки.
Минимальный набор зависимостей:
protractorselenium-webdriverjasmine или mocha (в зависимости от
тестового фреймворка)typescript (если используются тесты на TypeScript)Важно учитывать, что Protractor официально объявлен устаревшим, поэтому большинство проектов фиксируют версию и избегают автоматических обновлений.
Для выполнения end-to-end тестов необходимы реальные браузеры или их headless-аналоги.
Поддерживаемые браузеры:
Браузеры должны быть установлены локально или доступны в системе CI. Версия браузера должна соответствовать версии драйвера WebDriver.
Protractor использует WebDriver для управления браузерами. Для каждого браузера требуется соответствующий драйвер:
Драйверы могут:
webdriver-managerПример обновления драйверов:
npx webdriver-manager update
Несоответствие версий браузера и драйвера — одна из самых частых причин нестабильности тестов.
Protractor изначально разрабатывался для Angular-приложений и требует:
window.angular или включённый режим ожидания
нестабильностиДля не-Angular приложений необходимо явно отключать синхронизацию:
browser.waitForAngularEnabled(false);
Это требование напрямую влияет на конфигурацию среды и поведение тестов.
Для корректной работы необходимы:
В корпоративных средах и на CI-серверах часто требуется явное разрешение на запуск headless-браузеров и работу с sandbox-режимами.
Protractor-тесты зависят от сетевой доступности тестируемого приложения.
Требования:
При использовании Selenium Grid требуется стабильное соединение между нодами и хабом.
End-to-end тесты ресурсоёмки по сравнению с unit-тестами.
Минимальные рекомендации:
Недостаток ресурсов приводит к флейковым тестам, таймаутам и падениям браузеров.
Система должна поддерживать запуск тестов в автоматическом режиме:
Часто требуется установка дополнительных пакетов (например,
libnss3, fonts-liberation для Chrome на
Linux).
Для полноценной отладки и анализа падений необходимы:
Система должна позволять хранить и передавать эти артефакты между шагами пайплайна.
Рабочая среда для Protractor должна быть зафиксирована:
Обновление любого компонента без тестирования совместимости может привести к массовым сбоям e2e-тестов, даже при неизменном тестовом коде.