SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Обзор средств для тестирования 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!

Weitere ähnliche Inhalte

Was ist angesagt?

Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...
Андрей Акиньшин и Михаил Филиппов «Rider: разговоры про внутренности и кроссп...SpbDotNet Community
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магияAleksey Solntsev
 
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23
"Непрерывная интеграция или "Кто всё сломал?", Виктор Русакович, MoscowJS 23MoscowJS
 
КРИ-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.13Alex Chistyakov
 
Разработка CLI с помощью python-cliff
Разработка CLI с помощью python-cliffРазработка CLI с помощью python-cliff
Разработка CLI с помощью python-cliffMikhail Kalinin
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр КолесеньIT Share
 
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 MachinesIosif Itkin
 
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Ontico
 
Cтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей средыCтандартизация рабочего окружения и автоматизация развертывания рабочей среды
Cтандартизация рабочего окружения и автоматизация развертывания рабочей средыWordCamp Kyiv
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderSQALab
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Pavel Chertorogov
 
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...
(Не) преждевременная оптимизация проекта на Unreal Engine 4 / Владимир Алямки...DevGAMM Conference
 
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?"IT Event
 
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 battleAlex Chistyakov
 

Was ist angesagt? (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
 

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

(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...QA Club Minsk
 
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 ...ISsoft
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
 
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionJVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionNikita Lipsky
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндексyaevents
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funAlexandr Khotemskoy
 
JVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииJVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииNikita Lipsky
 
Браузерные помощники тестировщика (QA Fest 2016)
Браузерные помощники тестировщика (QA Fest 2016)Браузерные помощники тестировщика (QA Fest 2016)
Браузерные помощники тестировщика (QA Fest 2016)Alexander Nedeliaev
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
 
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 testingIevgenii Katsan
 
OpenSource инструменты. Тестируем Web-приложения
OpenSource инструменты. Тестируем Web-приложенияOpenSource инструменты. Тестируем Web-приложения
OpenSource инструменты. Тестируем Web-приложенияlugnsk
 
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...QAFest
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...lshevtsov
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 

Ähnlich wie обзор средств для тестирования 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
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 

Mehr von Alexey Chumagin

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

Mehr von 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!