SlideShare a Scribd company logo
1 of 30
Download to read offline
Тестирование web-приложений на базе технологий
Ruby / Cucumber / Watir WebDriver
TDD BDD
Test-driven development:
pазработка через тестирование
Behavior-driven development:
pазработка через поведение
Виды тестирования (по охвату тестируемого приложения)
модульное интеграционное
системное приемочное
Cucumber гибкий BDD-фреймворк для написания acceptance-тестов
scenario 1
scenario 3
scenario 2
scenario 4
background
Feature:
step
definitions
Feature + scenarios + steps
Background
Step definitions
env.rb
hooks.rb
World
Запуск тестов
• стандартный запуск:
• через rake:
Cucumber HTML formatter
Selenium WebDriver – это программная
библиотека для управления браузерами.
Watir WebDriver – ruby-фреймворк для
автоматизации тестов веб-приложений,
который базируется на библиотеке
Selenium WebDriver.
Инициализация драйвера
Web Elements
методы доступа и манипулирования web-елементами
страницы
Text fields and select lists
Radiobuttons and checkboxes
Buttons and links
Divs and spans
WYSIWYG Editors (What You See Is What You Get)
Ожидание элементов (AJAX ожидания)
Явные ожидания (explicit waits)
• Watir::Wait.until { ... }: where you can wait for a block to be true
• object.when_present.set: where you can do something when it’s present
• object.wait_until_present: where you just wait until something is present
• object.wait_while_present: where you just wait until something disappears
Неявные ожидания (implicit waits)
Page Objects
шаблон проектирования тестового приложения для поиска
конкретных элементов страницы
Watirsome
RSpec гибкий BDD-фреймворк для написания unit-тестов
RSpec Expectations (part 1)
RSpec Expectations (part 2)
RSpec Expectations (part 3)
RSpec Expectations (part 4)
References
• Все о cucumber: https://cucumber.io/
• Cucumber wiki: https://github.com/cucumber/cucumber/wiki/A-Table-Of-Content
• Все о Selenium WebDriver (ru): http://selenium2.ru/
• Все о Watir WebDriver: http://watirwebdriver.com/
• Концепция PageObject: http://martinfowler.com/bliki/PageObject.html
• Watirsome на github: https://github.com/p0deje/watirsome
• Rspec core: http://rspec.info/documentation/3.3/rspec-core
• Rspec expectations: http://rspec.info/documentation/3.3/rspec-expectations/
• Rspec guidelines: http://betterspecs.org/
• Ruby и тестирование: https://github.com/atinfo/awesome-test-automation/blob/
master/ruby-test-automation.md

More Related Content

What's hot

Selenium. Stas Kuzminov
Selenium. Stas KuzminovSelenium. Stas Kuzminov
Selenium. Stas Kuzminov
ADCI Solutions
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
GeeksLab Odessa
 

What's hot (20)

selenium stack in python
selenium stack in pythonselenium stack in python
selenium stack in python
 
Selenium. Stas Kuzminov
Selenium. Stas KuzminovSelenium. Stas Kuzminov
Selenium. Stas Kuzminov
 
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
 
Pres1
Pres1Pres1
Pres1
 
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
 
Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерахQA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
QA Fest 2016. Татьяна Люлюченко. Немного о мобильных браузерах
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
AngularJS basics & theory
AngularJS basics & theoryAngularJS basics & theory
AngularJS basics & theory
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
 
Selenium Begins
Selenium BeginsSelenium Begins
Selenium Begins
 
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindingsSelenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
 
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
Сергей Морковкин "Разработка realtime SPA с использованием VueJS и RethinkDB"
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 

Similar to Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver

MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
ITGinGer
 

Similar to Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver (20)

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...
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0
 
Watir&web driver
Watir&web driverWatir&web driver
Watir&web driver
 
Great functional testing with WebDriver and Thucydides
Great functional testing with WebDriver and ThucydidesGreat functional testing with WebDriver and Thucydides
Great functional testing with WebDriver and Thucydides
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
 
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Integration / Acceptance тестирование с помощью Cucumber
Integration / Acceptance тестирование с помощью CucumberIntegration / Acceptance тестирование с помощью Cucumber
Integration / Acceptance тестирование с помощью Cucumber
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 

More from Alex Mikitenko

More from Alex Mikitenko (9)

Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
 
End-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemEnd-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystem
 
Dynamic Ruby. Lesson #5: define_method and its friends
Dynamic Ruby. Lesson #5: define_method and its friendsDynamic Ruby. Lesson #5: define_method and its friends
Dynamic Ruby. Lesson #5: define_method and its friends
 
Dynamic Ruby. Lesson #4: method_missing and its friends
Dynamic Ruby. Lesson #4: method_missing and its friendsDynamic Ruby. Lesson #4: method_missing and its friends
Dynamic Ruby. Lesson #4: method_missing and its friends
 
Dynamic Ruby. Lesson #3: Blocks, procs and lambdas
Dynamic Ruby. Lesson #3: Blocks, procs and lambdasDynamic Ruby. Lesson #3: Blocks, procs and lambdas
Dynamic Ruby. Lesson #3: Blocks, procs and lambdas
 
Dynamic Ruby. Lesson #2: Methods and modules
Dynamic Ruby. Lesson #2: Methods and modulesDynamic Ruby. Lesson #2: Methods and modules
Dynamic Ruby. Lesson #2: Methods and modules
 
Dynamic Ruby. Lesson #1: Object model
Dynamic Ruby. Lesson #1: Object modelDynamic Ruby. Lesson #1: Object model
Dynamic Ruby. Lesson #1: Object model
 
Ruby: интерпретируемый, динамичный, человеколюбивый
Ruby: интерпретируемый, динамичный, человеколюбивыйRuby: интерпретируемый, динамичный, человеколюбивый
Ruby: интерпретируемый, динамичный, человеколюбивый
 
Introduction to Ubuntu
Introduction to UbuntuIntroduction to Ubuntu
Introduction to Ubuntu
 

Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver