SlideShare a Scribd company logo
1 of 15
Download to read offline
Обзор средств для тестирования JavaScript-кода:
QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др.
Middle-developer
Чипига Сергей
Казань, Барс-Груп, 2013
QUnit
официальный сайт: http://qunitjs.com/
QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты
для кода на javascript.
QUnit
А так выглядят результаты тестирования в браузере:
JasmineJS
официальный сайт: http://pivotal.github.io/jasmine/
Jasmine это BDD фреймворк для тестирования JavaScript кода, позаимствовавший
многие черты из RSpec.
JasmineJS
Так выглядят тесты в браузере:
Mocha
официальный сайт: http://visionmedia.github.io/mocha/
Mocha - многофункциональный фреймворк для тестирования JavaScript,
работающий как с nodejs, так и с браузером, делает асинхронное тестирование
простым и веселым.
Mocha
Возможности и особенности:
• запуск тестов из браузера;
• тестирование асинхронных запросов на примитивном уровне;
• генерация отчетов покрытия тестами;
• предоставление javascript API для запуска тестов;
• поддержка таймаутов для асинхронных тестов;
• подсветка медленных тестов
• определение утечек глобальных переменных
• возможность использовать любую библиотеку утверждений
• хуки before, after, after each, before each
ChaiJS
официальный сайт: http://chaijs.com/
ChaiJS - это BDD / TDD библиотека утверждений для nodejs и браузера, которая
может быть легко использована в паре с любым фреймворком тестирования
JavaScript.
assert
assert.typeOf(foo, 'string', 'foo is a string');
assert.equal(foo, 'bar', 'foo equal `bar`');
assert.lengthOf(foo, 3, 'foo`s value has a length of 3');
assert.lengthOf(beverages.tea, 3, 'beverages has 3 types of tea');
expect
expect(foo).to.be.a('string');
expect(foo).to.equal('bar');
expect(foo).to.have.length(3);
expect(beverages).to.have.property('tea').with.length(3);
should
foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.length(3);
beverages.should.have.property('tea').with.length(3)
SinonJS
официальный сайт: http://sinonjs.org/
SinonJS - Standalone test spies, stubs and mocks for JavaScript. No dependencies,
works with any unit testing framework.
Karma
официальный сайт: http://karma-runner.github.io/0.8/index.html
Karma - Spectacular Test Runner for JavaScript
Особенности:
• Test on Real Devices
• Open Source
• Remote Control
• Easy Debugging
• Testing Framework Agnostic
• Continuous Integration
PhantomJS
официальный сайт: http://phantomjs.org/
https://twitter.com/phantomjs
PhantomJS - это возможности WebKit из консоли управлять JavaScript с поддержкой
различных стандартов и технологий: DOM, CSS, JSON, Canvas и SVG.
После запуска:
phantomjs loadspeed.js http://www.google.com
результат:
Loading http://www.google.com
Page title is Google
Loading time 719 msec
PhantomJS
Возможности:
• Headless web testing
• Page automation
• Screen capture
• Network monitoring
• Multiplatform
• Fast and native implementation
• Pure headless (no X11) on Linux
• Easy to install
ZombieJS
официальный сайт: http://zombie.labnotes.org/
ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода.
Имитирует поведение браузера. Умеет интегрироваться с различного рода
средствами тестирования JavaScript: QUnit, Jasmine, Mocha
ZombieJS
Поддерживает методы для быстрого написания тестов:
browser.authenticate().basic("me", "secret")
browser.visit(url, options, callback)
browser.text(selector, context?)
browser.query(selector, context?)
browser.back(callback)
browser.clickLink(selector, callback)
browser.fill(field, value, callback)
browser.pressButton(selector, callback)
Официальная документация: http://zombie.labnotes.org/zombie.pdf
Thank you for your attendance!

More Related Content

What's hot

Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
Alexander Akbashev
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Andrey Rebrov
 
Moscow DevOps meetup 18.05.13
Moscow DevOps meetup 18.05.13Moscow DevOps meetup 18.05.13
Moscow DevOps meetup 18.05.13
Alex Chistyakov
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
SQALab
 

What's hot (19)

Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23
 
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
КРИ-2013. "Нагрузочное тестирование или Боты - санитары сервера"
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
 
Moscow DevOps meetup 18.05.13
Moscow DevOps meetup 18.05.13Moscow DevOps meetup 18.05.13
Moscow DevOps meetup 18.05.13
 
openSUSE Build Server от Б до Ю
openSUSE Build Server от Б до ЮopenSUSE Build Server от Б до Ю
openSUSE Build Server от Б до Ю
 
Разработка CLI с помощью python-cliff
Разработка CLI с помощью python-cliffРазработка CLI с помощью python-cliff
Разработка CLI с помощью python-cliff
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
 
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей средыCтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...
 
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
 
Ansible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battleAnsible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battle
 

Similar to обзор средств для тестирования Java script

Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
yaevents
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
lshevtsov
 

Similar to обзор средств для тестирования Java script (20)

(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
 
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
 
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionJVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
JVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииJVM: краткий курс общей анатомии
JVM: краткий курс общей анатомии
 
Браузерные помощники тестировщика (QA Fest 2016)
Браузерные помощники тестировщика (QA Fest 2016)Браузерные помощники тестировщика (QA Fest 2016)
Браузерные помощники тестировщика (QA Fest 2016)
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testing
 
OpenSource инструменты. Тестируем Web-приложения
OpenSource инструменты. Тестируем Web-приложенияOpenSource инструменты. Тестируем Web-приложения
OpenSource инструменты. Тестируем Web-приложения
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 

More from Alexey Chumagin (7)

Контроль качетсва в компании iiko
Контроль качетсва в компании iikoКонтроль качетсва в компании iiko
Контроль качетсва в компании iiko
 
Tsung vs jmeter
Tsung vs jmeterTsung vs jmeter
Tsung vs jmeter
 
Jmeter швейцарский нож
Jmeter швейцарский ножJmeter швейцарский нож
Jmeter швейцарский нож
 
Автоматизация рутинных задач: Вкалывают роботы, счастлив человек!
Автоматизация рутинных задач: Вкалывают роботы, счастлив человек!Автоматизация рутинных задач: Вкалывают роботы, счастлив человек!
Автоматизация рутинных задач: Вкалывают роботы, счастлив человек!
 
Антон Куховаренко - Как работают тестировщики в кир
Антон Куховаренко - Как работают тестировщики в кирАнтон Куховаренко - Как работают тестировщики в кир
Антон Куховаренко - Как работают тестировщики в кир
 
Илья Евлампиев - Grinder
Илья Евлампиев - GrinderИлья Евлампиев - Grinder
Илья Евлампиев - Grinder
 
Антон Куликов - Знакомьтесь FitNess
Антон Куликов - Знакомьтесь FitNessАнтон Куликов - Знакомьтесь FitNess
Антон Куликов - Знакомьтесь FitNess
 

обзор средств для тестирования Java script

  • 1. Обзор средств для тестирования JavaScript-кода: QUnit, Jasmine, ZombieJS, PhantomJS, SinonJS и др. Middle-developer Чипига Сергей Казань, Барс-Груп, 2013
  • 2. QUnit официальный сайт: http://qunitjs.com/ QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript.
  • 3. QUnit А так выглядят результаты тестирования в браузере:
  • 4. JasmineJS официальный сайт: http://pivotal.github.io/jasmine/ Jasmine это BDD фреймворк для тестирования JavaScript кода, позаимствовавший многие черты из RSpec.
  • 6. Mocha официальный сайт: http://visionmedia.github.io/mocha/ Mocha - многофункциональный фреймворк для тестирования JavaScript, работающий как с nodejs, так и с браузером, делает асинхронное тестирование простым и веселым.
  • 7. Mocha Возможности и особенности: • запуск тестов из браузера; • тестирование асинхронных запросов на примитивном уровне; • генерация отчетов покрытия тестами; • предоставление javascript API для запуска тестов; • поддержка таймаутов для асинхронных тестов; • подсветка медленных тестов • определение утечек глобальных переменных • возможность использовать любую библиотеку утверждений • хуки before, after, after each, before each
  • 8. ChaiJS официальный сайт: http://chaijs.com/ ChaiJS - это BDD / TDD библиотека утверждений для nodejs и браузера, которая может быть легко использована в паре с любым фреймворком тестирования JavaScript. assert assert.typeOf(foo, 'string', 'foo is a string'); assert.equal(foo, 'bar', 'foo equal `bar`'); assert.lengthOf(foo, 3, 'foo`s value has a length of 3'); assert.lengthOf(beverages.tea, 3, 'beverages has 3 types of tea'); expect expect(foo).to.be.a('string'); expect(foo).to.equal('bar'); expect(foo).to.have.length(3); expect(beverages).to.have.property('tea').with.length(3); should foo.should.be.a('string'); foo.should.equal('bar'); foo.should.have.length(3); beverages.should.have.property('tea').with.length(3)
  • 9. SinonJS официальный сайт: http://sinonjs.org/ SinonJS - Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework.
  • 10. Karma официальный сайт: http://karma-runner.github.io/0.8/index.html Karma - Spectacular Test Runner for JavaScript Особенности: • Test on Real Devices • Open Source • Remote Control • Easy Debugging • Testing Framework Agnostic • Continuous Integration
  • 11. PhantomJS официальный сайт: http://phantomjs.org/ https://twitter.com/phantomjs PhantomJS - это возможности WebKit из консоли управлять JavaScript с поддержкой различных стандартов и технологий: DOM, CSS, JSON, Canvas и SVG. После запуска: phantomjs loadspeed.js http://www.google.com результат: Loading http://www.google.com Page title is Google Loading time 719 msec
  • 12. PhantomJS Возможности: • Headless web testing • Page automation • Screen capture • Network monitoring • Multiplatform • Fast and native implementation • Pure headless (no X11) on Linux • Easy to install
  • 13. ZombieJS официальный сайт: http://zombie.labnotes.org/ ZombieJS - легковесный фреймворк для тестирования client-side Javascript-кода. Имитирует поведение браузера. Умеет интегрироваться с различного рода средствами тестирования JavaScript: QUnit, Jasmine, Mocha
  • 14. ZombieJS Поддерживает методы для быстрого написания тестов: browser.authenticate().basic("me", "secret") browser.visit(url, options, callback) browser.text(selector, context?) browser.query(selector, context?) browser.back(callback) browser.clickLink(selector, callback) browser.fill(field, value, callback) browser.pressButton(selector, callback) Официальная документация: http://zombie.labnotes.org/zombie.pdf
  • 15. Thank you for your attendance!