UI-тестирование JavaScript-проектов | OTUS

UI-тестирование JavaScript-проектов

Фреймворки, которые существуют сегодня для тестирования пользовательских интерфейсов, могут существенно отличаться друг от друга. В этой статье мы перечислим основные инструменты UI-тестирования JavaScript-проектов, однако начнем с рекомендаций:

  1. Ищете простой и надежный универсальный инструмент, может быть, отправную точку в поиске? Попробуйте TestCafe.
  2. Хотите идти в ногу со временем, одновременно с этим пользуясь поддержкой сообщества разработчиков? Обратите внимание на WebdriverIO.
  3. Интересует кроссбраузерная поддержка? Ваш выбор — Puppeteer или Playwright.
  4. В вашем программном приложении отсутствуют сложные интерфейсы и запутанные сценарии взаимодействия с пользователями? Вам может быть достаточно кроссбраузерного инструмента без пользовательского интерфейса типа Casper.

Selenium

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

Appium

Предоставляет API, похожее на API Selenium. Предназначен для организации тестирования мобильных проектов с применением специальных инструментов: XCUITest и UIAutomation от Apple, WinAppDriver от Microsoft, UiAutomator/UiAutomator2 и Instrumentation от Google (поддержка последнего реализована с помощью Selendroid).

Protractor

Библиотека-обертка для Selenium, ориентированная на Angular.

WebdriverIO

Предлагает свой подход к применению функционала Selenium WebDriver. Библиотека предназначена для Node.js.

Nightwatch

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

TestCafe

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

Cypress

Прямой конкурент TestCafe. Функционирует почти так же, то есть внедряет тесты в код страниц, однако TestCafe пытается делать это более гибким, удобным и современным способом. Скажем так, Cypress новее.

Puppeteer

Библиотека для Node.js, разработанная в Google. Предоставляет удобное Node.js API для управления веб-браузером Chrome без UI. То есть речь идет об обычном Chrome v59+, запускаемым с флагом --headless. Когда веб-браузер выполняется в этом режиме, он предоставляет API для управления, а Puppeteer — это JS-инструмент, созданный для управления браузером.

Playwright

Мы знаем, что Puppeteer хорош тем, что запускает headless-браузер и использует DevTools-протокол, а значит, тесты проходят быстрее и стабильнее, если сравнивать с тем же Selenium, да и писать их можно на вполне себе приятном JavaScript.

Как известно, Playwright сейчас располагается в репозитории Microsoft (https://github.com/microsoft/playwright). А Puppeteer разрабатывался специалистами из Google. Впрочем, ни для кого не секрет, что Microsoft не купила Google — просто основные разработчики, скажем так, перешли на темную сторону, точнее, в новую компанию, где и продолжают работать над тем же инструментом (ну, почти тем же), но делают это под другим брендом.

Но чем же хорош Playwright? В первую очередь он имеет все плюсы Puppeteer. Во вторую очередь Playwright дает возможность писать кроссбраузерные тесты (в коде можно выбирать любой браузер: Chromium, WebKit, Firefox). В-третьих, что вообще вам понадобится для написания кроссбраузерного теста на Playwright? Собственно говоря, npm, школьный английский для чтения техдокументации, чашка кофе и… минут 15-20 свободного времени.

Вообще, плюсов у Playwright хватает, поэтому если интересуют подробности, вот неплохой, но, правда, немного устаревший анализ в стиле Playwright vs Puppeteer.

PhantomJS

Использует движок Chromium в целях создания управляемого веб-браузера без пользовательского интерфейса.

Nightmare

Хорошая библиотека для тестирования UI, которая характеризуется чрезвычайно простым синтаксисом тестов. Использует Electron, что делает ее похожей на PhantomJS, однако здесь используется более новая версия Chromium.

Casper

Средство, которое создано на основе PhantomJS и SlimerJS. Дает возможность имитировать взаимодействие юзера с веб-страницами, позволяет писать скрипты и тестовые механизмы в абстрактном виде, поддерживает асинхронные возможности процесса создания скриптов для Phantom и Slimer.

CodeceptJS

Как и хорошо известный CucumberJS, CodeceptJS предоставляет дополнительный уровень абстракции над разными библиотечными API. И все это для того, чтобы разработчик взаимодействовал с тестами на основе сценариев поведения пользователей.

Источники • https://habr.com/ru/company/ruvds/blog/349452/; • https://habr.com/ru/company/jugru/blog/487294/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто