Домой » Инструментарий » На чём автоматизировать под JavaScript?

На чём автоматизировать под JavaScript?

JavaScriptAutomationFrameworkС ростом популярности JavaScript – подобных языков программирования: Angular, ReactJS, NodejS; возрастает и потребность в написании тестов на JavaScript. Ведь глупо при наличии технической возможности писать юниттесты и автотесты на других языках.

Правдивость вышесказанного подтверждает и то, что в 2015 – 2016 годах произошёл резкий скачок загрузок Selenium для JavaScript. Беря во внимание данный факт, не лишним будет разобраться, на чём вообще можно писать автотесты на JavaScript. Фреймворки идут на основе рейтингов на GitHub и NPM.

PhantomJS

Представляет собой headless (без графического интерфейса) сборку движка WebKit. С помощью PhantomJS можно в режиме консоли загружать web — страницу, выполнять JavaScript, полноценно работать с DOM, Canvas, CSS, JSON и SVG. WebKit лежит в основе таких популярных браузеров как Chrome и Safari. Можно интегрировать с различными фреймворками для тестирования (Jasmine,  WebDriver и т.д.). Т.к. PhantomJS является headless, то из-за высокой скорости выполнения тестов хорошо зарекомендовал себя в unit – тестировании.

Jasmine

Jasmine – это BDD фреймворк.  В основном с него многие начинают осваивать тестирование на JS. Подкупает он своей простотой и низким порогом вхождения по сравнению с аналогами. Также многие разработчики выбирают Jasmine из-за стабильности, постоянной поддержки и развития со стороны разработчиков.

Protractor

Это фреймворк для автоматизированного тестирования Angular приложений в браузере. Часто о нём высказываются, как о чём-то среднем между инструментоми unit-тестирования и end-to-end тестирования, которым пользуются и автоматизаторы и разработчики.

Protractor фактически является слоем над Selenium, который работает в фоновом режиме. Вы поможет парсить элементы и работать с ними (читать, добавлять, изменять). Также уже существуют порты для C# и Java.

Nightwatch.js

Nightwatch.js описывается как простой фреймворк для end-to-end тестирования приложений и сайтов на Node.js. Использует WebDriver API для выполнения команд  и проверок элементов из DOM структуры.

Думайте о Nightwatch.js как о платформе тестирования, которая записана в JavaScript и разработана для веб-разработчиков. Nightwatch.js написана на JavaScript и предоставляет API для написания тестов, которые будут представлять собой модули, а раннер их уже сам выполнит как Node.js приложение. Присутствует возможность параллельного запуска тестов.

CasperJS

CasperJS – вспомогательный инструмент написанный на JavaScript как обертка PhantomJS. Фактически это инструмент для написания сценариев навигации и для тестирования. То есть, с помощью CasperJS можно на привычном JavaScript описывать сценарии пользовательского поведения на сайте: переходы по ссылкам, заполнения и отправки форм, и конечно совершать различные проверки на соответствие того, что мы видим, тем или иным условиям. Иными словами, CasperJS — это библиотека для front-end-тестирования.

Nemo.js

Nemo.js – опенсорсная платформа для автоматизированного тестирования Node.js от PayPal. Это всего лишь возможность добавить автотесты на Selenium в тестирование Node.js. Он также обеспечивает сменную архитектуру, чтобы включить пользовательские функции в Ваши тесты.

Buster.JS

Предназначен для браузерного тестирования JavaScript. Также может использоваться для тестирования HTML страниц в QUnit – стиле. Поддерживает и headless режим.

DalekJS

Dalek как и Buster пока только начинает свой жизненный путь. Это опенсорсный инструмент для кросс-браузерного тестирования с использованием JS. Согласно документации пока отсутствуют некоторые необходимые функции и его ждёт рефакторинг и оптимизация.

3 Комментария к “На чём автоматизировать под JavaScript?

  1. 42:

    Было бы еще круче, если добавите ссылки на эти фреймворки.
    Спасибо за статью!)

  2. В огороде бузина, а в киеве дядько

    Все в куче — и тест раннеры, и браузеры, и е2е инструменты
    Ниразу не слышал про Протрактор — «чём-то среднем между инструментоми unit-тестирования и end-to-end тестирования» . Это инструмент для end-2-end тестирования.

    В то же время про действительно важные вещи не сказано:

    — Та же MochaJS + Chai очень часто оказывается намного более выгодной связкой чем JasmineJS
    — WebDriverJS — только вскользь что протрактор его враппит. А то что почти все остальные тоже врапят его — не упоминается.
    — Опять же логичный вопрос — почему про врапперы написано, а про сам webdriverjs нет?
    — Забыт прекрасный инструмент — WebdriverIO
    — Ни ссылок на гитхабы, ни рейтинги, ничего не указано, только смутное — «Фреймворки идут на основе рейтингов на GitHub и NPM.»
    — Куча упоминаний PhantomJS, но то что он больше активно не поддерживается — не упоминается — https://groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE . Плюс он использует старые версии js интерпретатора, и часто сайты работают вообще не так как в реальном браузере, он никак не замена настоящим браузерам.

    1. Administrator:

      Спасибо большое за комментарий! В следующих статья учту Ваше недовольство вместе с ниже отписавшимся. Про фантом проморгал, мой косяк, но в другой статье про это писал. И то, что фантом не поддерживается — не значит, что им пользоваться нельзя. Про протрактор не соглашусь. Это как NUnit — он универсален.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*