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