Альтернативы

Документация

Документации по Airtap практически нет, кроме пары файлов документации в репозитории. После поиска в Google, Medium и других ничего не было найдено, не говоря уже о способе интеграции в Angular. Кроме того, в их репозитории упоминается, что «некоторая документация может быть устаревшей». Tested Airtap — это форк Zuul, у которого практически те же проблемы с документацией, по крайней мере, у них есть «пример» с использованием jasmine, но в остальном он также недостаточно документирован.

Стабильность

Airtap не очень стабилен, факт, который на самом деле также открыто упоминается в репозитории «Обратите внимание, что наш API в настоящее время нестабилен», что в нашем случае будет иметь решающее значение, в настоящее время они используют версию 0.1.0, так что это очень молодой, они не не было пользователей до начала 2018 года (сейчас у них есть пара, но это все еще небольшая пользовательская база). Кроме того, упомянутый в репозитории Airtap сам протестирован в Sauce Labs, который в настоящее время имеет следующие результаты:

В случае с Zuul, хотя он выглядит немного более стабильным, его сборка также в настоящее время не работает.

Плюсы

  1. Простота и возможность легко запускать наш набор тестов во многих браузерах без их локальной установки.

Минусы

  1. Небольшое (почти несуществующее сообщество), всего пара сотен пользователей.
  2. API в настоящее время нестабилен, факт, который был упомянут разработчиками проекта и в их собственных тестах, которые они в настоящее время терпят неудачу.
  3. Почти никакой документации, ничего на StackOverflow, при поиске в Google о проектах, которые они репозиторий, почти единственный результат.

Вывод

У них может быть многообещающее будущее, и они предлагают меньше накладных расходов и усилий, чем интеграция BrowserStack, но на данный момент они недостаточно стабильны/зрелы для нашего проекта.

Кипарис.ио

Документация

Документация неплохая и содержится здесь https://docs.cypress.io/guides/overview/why-cypress.html и в их блоге, где у них даже есть сообщение в блоге, где они объясняют, как интегрировать его с Angular https://www.cypress.io/blog/2017/12/11/an-alternative-to-protractor-for-angular-projects/ в качестве альтернативы транспортиру.

Стабильность

У них много проблем, но также гораздо больше коммитов и пользователей (360 тысяч в месяц, что на самом деле в сотни раз больше, чем у Airtap/Zuul).

Плюсы

  1. Никаких дополнительных зависимостей (это не основано на Selenium или Webdrive)
  2. Автоматическая перезагрузка
  3. Отлаживать. Вы можете регистрировать\отлаживать любой шаг последовательности, пока вы видите каждый шаг в графическом интерфейсе Cypress.
  4. Автомат ждет. Ни сна, ни ожидания. Получите свои элементы и установите удобный тайм-аут. Cypress сделает все остальное.

Минусы

  1. Сообщество. Ничего не скажешь, это коммерческая компания. Никогда не знаешь о планах монетизации в будущем (полный функционал для компаний платный).
  2. Функции. Нет поддержки загрузки файлов. Отсутствие кроссбраузерного тестирования. Кто знает, когда эти вещи будут освещены, для больших проектов эти функции имеют решающее значение.
  3. Объектная модель страницы. Это то, что уже доказано временем. Cypress поддерживает другой подход, который может быть спорным. Подробнее об этом здесь: Кипарис ПОМ.
  4. Множество компромиссов https://github.com/cypress-io/cypress-documentation/issues/162
  5. Интеграция с Sauce Labs и BrowserStack запланирована на будущее, но в настоящее время не поддерживается.

Вывод

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

Транспортир

Документация

Стабильность

Плюсы

  1. Сообщество. Около 7000 звезд на Гитхабе. Открытые/закрытые выпуски 200/3000. Посмотрим правде в глаза, сообщество Angular сделало свою работу
  2. Полностью интегрирован с Angular и Angular-CLI, что на самом деле является большим преимуществом.
  3. Поддержка — доступна поддержка TypeScript, а библиотека управляется и поддерживается огромной командой Angular.
  4. Вы можете выбрать тестовую библиотеку. Пока Protractor уже некоторое время находится в игре, вы можете выбирать между библиотеками для написания своих тестов. Некоторые популярные варианты: Жасмин, Мокко, Огурец. Помимо этого, существует множество плагинов и библиотек для расширения функциональности Protractor.
  5. Параллельное тестирование через несколько браузеров. Он поддерживает кроссбраузерное тестирование. Даже больше может запускать несколько экземпляров браузера одновременно
  6. Официально интегрирован с BrowserStack https://www.browserstack.com/automate/protractor

Минусы

  1. Кропотливый. Может потребоваться некоторое время, чтобы освоить все API и техники.

Вывод

Транспортир проверен временем. У него отличное сообщество и поддержка на Gitter.

Другие

Чтобы включить несколько работ CasperJS с PhantomJS и другими безголовыми браузерами, еще одним преимуществом CasperJS является поддержка синтаксиса CoffeeScript в тестовом коде, это не представляет для нас интереса, поскольку идея состоит в том, чтобы протестировать поведение в реальных браузеры, другая популярная библиотека — Nightwatch, которая, к сожалению, имеет относительно плохую поддержку, не поддерживает машинописные тексты, и в целом эта библиотека, кажется, немного менее поддерживается, чем другие.

Личное заявление

Прочитав много документации и статей о тестах E2E, увидев плюсы и минусы, я считаю, что на данный момент лучший вариант — остаться с Protractor и интегрировать его с BrowserStack, который на самом деле официально поддерживается, в основном потому, что он сделан специально для Angular. приложений (хотя его также можно использовать для приложений, отличных от Angular), поддерживает специфичные для Angular стратегии поиска, ждет, пока Angular запустит загрузку страницы (синхронизацию) и, конечно же, потому что он поддерживается и улучшается в основном разработчиками Google и людьми из Угловая команда.

Чтобы получить действительно полный обзор тенденций тестирования JavaScript в 2018 году, пожалуйста, прочитайте эту замечательную статью на Medium.

https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3