Dalek.js — простое функциональное тестирование веб-приложений
Вы знаете, что такое Selenium и/или PhantomJS? И с чем их едят? Тогда, возможно, вам будет интересен проект Dalek.js — кроссбраузерная утилита для тестирования веб-приложений.Dalek.js позволяет писать тесты, которые ходят по веб-страничкам, щелкают ссылки, заполняют формы, отправляют данные и делают скриншоты. То же самое и даже больше делают тесты, написанные с использованием Selenium’а или Phantom.js, в чем подвох?
Но! Посмотрите, как прост этот тест.test.js
module.exports = { 'Page title is correct': function (test) { test .open ('http://google.com') .assert.title ().is ('Google', 'It has title') .done (); } }; Открываем google.com в браузере и убеждаемся, что в заголовке страницы действительно написано 'Google'.Чтобы его запустить необходимо: а ) установить Dalek.js и драйвера для желаемых браузеров (PhantomJS работает из коробки) в директорию заранее созданного проекта node (хотя сам проект по сути не нужен)Например: Dalek.js + Chrome Driver
$ npm install dalek-cli -g $ npm install dalekjs --save-dev $ npm install dalek-browser-chrome --save-dev б) и выполнить команду: $ dalek test.js //для тестирования в PhantomJS $ dalek test.js -b chrome //для тестирования в Chrome Еще простой тест из документации:
module.exports = { 'Amazon does its thing': function (test) { test .open ('http://www.amazon.com/') .type ('#twotabsearchtextbox', 'Blues Brothers VHS') .click ('.nav-submit-input') .waitForElement ('#result_0') .assert.text ('#result_0 .newaps a span').is ('The Blues Brothers') .done (); } }; На Amazon’е ищем видеокассету Blues Brothers и убеждаемся, что в результатах поиска действительно есть искомое.Не буду дальше копипастить официальную документацию и примеры (всё подробно и понятно на www.dalekjs.com), а попрошу поддержать проект вашим вниманием. Почему?
Решив освоить использование PhantomJS для тестирования взамен Selenium, стал искать на каком фреймворке (Mocha, Jasmine,…) будет удобнее писать тесты. Слово за слово, и вот Google дал ссылку на этот проект. Написать тест и запустить его сначала в визуальном режиме (на Chrome), а затем в консольном (на PhantomJS) получилось очень быстро.
Считаю, что Dalek.js имеет несколько удобных фишек: chain-стиль вызовов функций с минимумом параметров, не требует супершаманских танцев с установкой, неплохо документирован. У проекта большое количество открытых багов и обещаний добавить функциональности (например, как минимум, хочется движений мыши, загрузки файлов в формы).
Внимание сообщества в виде увеличения количества звездочек на GitHub’е и твитов в медиапространстве может быть хоть немного поспособствует активности разработки Dalek.js, который пилят уже примерно год несколько ребят из Германии, как считаете?
Оф.сайт Dalek.jsDalek.js на GitHubDalek.js в Твиттере