Pull to refresh

Dalek.js — простое функциональное тестирование веб-приложений

Reading time 2 min
Views 23K
Вы знаете, что такое 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.js
Dalek.js на GitHub
Dalek.js в Твиттере
Tags:
Hubs:
+30
Comments 26
Comments Comments 26

Articles