Когда я выбирал среду тестирования пользовательского интерфейса для веб-проекта, я провел небольшое исследование в зависимости от требований проекта. Надеюсь, этот пост поможет техническим специалистам, которые ищут быстрый обзор последних фреймворков.

Пример использования

  • Автоматизация тестирования пользовательского интерфейса для веб-проекта, написанного на Angular.
  • Требуется поддержка нескольких браузеров, включая Chrome, Firefox и Safari
  • Эффективное тестирование и простая интеграция в CI
  • Лучше, если бы поддержка Typescript, поскольку это был основной язык программирования, используемый для существующих проектов.

Проверенные платформы

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

Кипарис

Фреймворк сквозной автоматизации тестирования, написанный на Node.js. Уникальная архитектура работы в одном цикле приложения обеспечивает больший доступ к элементам тестирования и позволяет проводить быстрые и эффективные тесты. Имея ежедневно увеличивающееся сообщество пользователей с возможностями Cypress framework.

Плюсы:

  • Архитектура запуска того же цикла, что и тестовое приложение. Благодаря этому у вас будет лучший доступ ко всему, что есть в приложении.
  • Быстрое исполнение
  • Более высокая согласованность с тестами
  • Легкая отладка

Минусы:

  • Не поддерживает браузер Safari
  • Несколько вкладок в одном браузере не поддерживаются
  • Дашборд будет поставляться с платным планом.
  • Более крупным проектам может потребоваться коммерческая поддержка.

Кукольник

Библиотека с открытым исходным кодом, разработанная Google для автоматизации тестирования в браузере Chrome. Использование протокола Devtools для связи. Поскольку это правильно фокусируется только на одном браузере, пользователи получают преимущество реализации эффективных и простых тестов с лучшим доступом к тестовым модулям.

Плюсы:

  • Быстрые и надежные тесты
  • Эффективные тесты с лучшим доступом к модулям
  • Более высокий рейтинг пользователей на Git Hub (70 тыс. Звезд)
  • Нет необходимости устанавливать отдельный сервер для запуска тестов

Минусы:

  • Поддерживает только браузер Chrome
  • Все еще развивается (но ... с отличным сообществом и множеством подтверждающих документов: D)

** Возможно, немного предвзято относится к Кукловоду. Использовал его в качестве POC для моего собственного проекта и полюбил простую реализацию и быстрые тесты. Не удалось найти много минусов, кроме худшего, из-за которого я не адаптировался, - поддержки нескольких браузеров.

Тестпроект

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

Плюсы:

  • Облачная среда E2E
  • Быстрая и отзывчивая служба поддержки
  • Регистратор тестов помогает легко создавать тестовые сценарии
  • Облачное управление тестами
  • Неограниченное облачное пространство для тестов (согласно их команде поддержки)

Минусы:

  • Команда тестирования не имеет полного доступа и управления тестовыми сценариями из-за этой структуры SaaS.
  • Больше подходит для команд, которым нужны стандартные варианты использования
  • Используйте Selenium для тестов пользовательского интерфейса

** Я пробовал testproject локально в качестве пробного варианта с примером использования. Но замечено несоответствие с агентами тестового проекта. Не копал глубоко, так как не подходил для моей цели. Комментарии приветствуются реальными пользователями

Ночной дозор

Новый и развивающийся фреймворк node.js, который использует W3C WebDriver API для взаимодействия с браузером.

Плюсы:

  • Развивающееся сообщество
  • Более высокий рейтинг хаба git
  • Хорошая документация

Минусы:

  • Неправильная поддержка машинописного текста
  • Наличие ограничений / проблем протокола Selenium
  • В зависимости от браузера необходимо установить определенный веб-драйвер.

Webdriver I / O + Selenium

Фреймворк для автоматизации веб- и мобильного тестирования. Тесты графического интерфейса пользователя в основном основаны на протоколе Selenium при поддержке нескольких браузеров.

Плюсы:

  • Повышение поддержки с помощью других фреймворков, таких как «Кукловод»
  • Правильная сквозная документация
  • WDIO Testrunner имеет синхронное поведение, что упрощает выполнение теста.

Минусы:

  • Требуется Selenium, если требуется поддержка нескольких браузеров.
  • Базовые протоколы Selenium могут вызвать проблемы со стабильностью в CI.
  • Запускается нижняя ступица git (только 6k)

Драматург

Среда тестирования веб-автоматизации Microsoft реализовала вершину Puppeteer с расширенной поддержкой нескольких браузеров. Playwright - это библиотека Node.js для автоматизации нескольких браузеров с помощью одного API. Для связи используйте тонкий клиент WebSocket так же, как и Puppeteer.

Плюсы:

  • Быстрые и эффективные тесты
  • Реализовано с помощью методов обещания, которые выполняют синхронное тестирование. Легко писать тесты
  • Создал топ известного и растущего «Кукловода», преодолев при этом его ограничения.
  • Не используются базовые протоколы Selenium (проводной протокол JSON)
  • Растущее сообщество с более высокими звездами git hub (20k всего за два года)

Минусы:

  • Довольно новый и все еще развивающийся (цепочка методов пока отсутствует)
  • Может быть сложно принять из-за отсутствия документации

Что мне выбрать?

После исследования этих тестовых инструментов остановился на Webdriver IO и Playwright. Основная проблема между ними заключалась в том, что Webdriver IO использовал стабильный селен, в то время как Playwright был довольно сложным, поскольку он действительно новичок со своим технологическим стеком.

Я уже много лет использую Selenium в своих предыдущих проектах и ​​знаком с некоторыми общими проблемами, включая проблемы со стабильностью. Работа с POC с Playwright была захватывающей, и я обнаружил, насколько легко писать и управлять с помощью фреймворка. Тем не менее, я знаю, что принятие новой структуры - это страшная проблема. По сравнению с тестами API, тесты пользовательского интерфейса всегда будут труднее всего автоматизировать и так непредсказуемы во время выполнения. Вот почему будет страшно внедрять новую структуру, в которой могут отсутствовать методы и ограничения, которые еще не определены.

Тем не менее, я думал о том, чтобы принять вызов, и решил принять «Драматурга».

Выбранный технический стек:

  • Драматург: Automation Framework
  • Jest: средство запуска тестов
  • Машинопись: язык программирования

Примечание. Jest - это среда тестирования javascript, разработанная и поддерживаемая Facebook, которая больше похожа на Jasmine. Jest более продвинутый и предоставляет больше слоев поверх Jasmine. Просмотрите ссылки, чтобы найти интересную сессию по Jest и эффективному написанию тестов.

О путешествии с «Драматургом» будет больше постов, которые могут помочь другим любителям риска. Удачного кодирования! : D

использованная литература