Как запускать автоматические тесты и делать скриншоты с помощью библиотек 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