Как запускать автоматические тесты и делать скриншоты с помощью библиотек JavaScript, таких как PhantomJS и DalekJS.
Автоматическое тестирование имеет много преимуществ:

 – Скучные или повторяющиеся задачи решаются сами собой.
 – Один раз. настроены, задачи можно повторно использовать снова и снова
- Меньше шансов ошибок, которые может пропустить ручной тестировщик
- Проведение большего количества тестов за более короткое время

Один из самых больших недостатков для написания тестов, охватывающих все функции, требуется время. Особенно в веб-мире, где продукты и сайты меняются быстрее, а тесты быстро устаревают. Традиционное автоматизированное тестирование было написано на Java с использованием Selenium с некоторыми изменениями в библиотеках на основе Python. Им нужны специальные знания для написания и разработки, а развертывание этих тестов — огромная задача, обычно требующая сервера сборки, такого как Jenkins.

JavaScript в помощь! Теперь у нас есть набор инструментов, который позволяет не только делать все в рамках автоматизированного тестирования, но и быстро писать тесты на JavaScript и мгновенно их запускать.

PhantomJS
Это позволяет вам для запуска браузера webkit, загрузки URL-адреса, выполнения тестов, снимков экрана и триггерного ввода.

DalekJS
Это позволяет открывать несколько браузеров (Chrome, Webkit, Firefox, iOS, IE ) и запустить на них тесты.

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

Я написал пример с использованием DalekJS, который вводит данные в форму, отправляет их и делает скриншоты результата. Этот тест выполняется в 4 браузерах с использованием Grunt:

module.exports = {
    'Page title is correct': function (test) {
        'use strict';
        test
            .open('http://localhost:8888/dalekjs-crossbrowser/src/')
            .assert.title('This is the page title')
            .type('#name', 'Bob Waters')
            .screenshot('test/results/index_:browser_:version.png')
            .submit('#formexample')
            .screenshot('test/results/submit:browser_:version.png')
            .done();
    }
};

Вы можете проверить рабочий код здесь:
https://github.com/kmturley/dalekjs-crossbrowser