SlideShare a Scribd company logo
1 of 14
Автоматизированное
тестирование UI на C# +
Selenium WebDriver

Александр Лоскутов
Как тестировать веб-приложения
• «Через HTTP»
HTTP Response
HTTP
Client

Server
HTTP Request

• «Через браузер»
Browser
Automation
Client

Browser

Server
Преимущества и недостатки
• «Через HTTP»
• Преимущества
• HTTP – это стандарт
• Универсальность и простота

• Недостатки
• Тестирование только серверной части
• Сложная логика запросов (AJAX)

• «Через браузер»
• Преимущества
• Тестирование пользовательского интерфеса
• Точная эмуляция действий пользователя

• Недостатки
• Сложность интеграции с браузером
• Нет стандартного протокола
• Скорость работы тестирования
Интерграция с браузером
• Нужно внедрить и выполнить JS
• Преодоление ограничений наложенны на JS
• Действия не доступные JS

«спереди»
Browser
Automation
Client

«сзади»

Browser

Server
Управление браузером
• Push-модель
Browser
Automation
Client
Browser
Automation
Client

COM

IE
FF
HTML
SERVER

• Pull-модель
Browser
Automation
Client
HTML SERVER

Safari
Poller
История Selenium
•
•
•
•

2005 – плагин к браузеру FF (Selenium IDE)
2006 – Selenium Remote Control (1.0)
2009 - Selenium WebDriver
2011 – Предложен протокол W3C WebDriver
WebDriver на пути к стандарту
Реализация в браузерах
• Chrome
Browser
Automation
Client

RDP

WebDriver

Chrome

chromedriver

• Opera (Presto)
Browser
WebDriver
Automation
Client

Opera Debug

Opera

OperaDriver

• IE
Browser
WebDriver
Automation
Client

COM

IEDriverServer

IE
Реализация в браузерах
• FF
Browser
Automation
Client

Browser
Automation
Client

WebDriver

FF
HTML
SERVER

WebDriver

Marionette
Adapter

Marionette

FF
Selenium
•
•
•
•
•

Selenium RC (Selenium 1.0);
Selenium WebDriver (Selenium 2.0);
Selenium Server;
Selenium Grid;
Selenium IDE.
Альтернативы
• TestComplete
• Ranorex
• HP QuickTest Professional
«Проблемы» тестирование через
браузер
•
•
•
•

Сложность интеграции с браузером
Нет стандартного протокола
Скорость работы тестирования (PhantomJS и SlimerJS)
ПОДДЕЖРКА СТАРЫХ ВЕРСИЙ БРАУЗЕР
Браузер в облаках
•
•
•
•

Sauce labs
TestingBot
BrowserStack
BugBuster

More Related Content

What's hot

Технические моменты создания сайта
Технические моменты создания сайтаТехнические моменты создания сайта
Технические моменты создания сайта
Rinat Shaikhutdinov
 
Selenide
SelenideSelenide
Selenide
ISsoft
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
Media Gorod
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
Александр Шамрай
 

What's hot (19)

Mobile accessibility Testing / Тестирование доступности мобильного веба
Mobile accessibility Testing / Тестирование доступности мобильного вебаMobile accessibility Testing / Тестирование доступности мобильного веба
Mobile accessibility Testing / Тестирование доступности мобильного веба
 
Технические моменты создания сайта
Технические моменты создания сайтаТехнические моменты создания сайта
Технические моменты создания сайта
 
Причины и способы имитации back-end'а
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
 
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindingsSelenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
 
SECON'2016. Стахиевич Андрей, Selenide: используем listener-ы
SECON'2016. Стахиевич Андрей, Selenide: используем listener-ыSECON'2016. Стахиевич Андрей, Selenide: используем listener-ы
SECON'2016. Стахиевич Андрей, Selenide: используем listener-ы
 
ReSharper: прошлое и будущее
ReSharper: прошлое и будущееReSharper: прошлое и будущее
ReSharper: прошлое и будущее
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Доклад Александра Романова на SPCUA 2012
Доклад Александра Романова на SPCUA 2012 Доклад Александра Романова на SPCUA 2012
Доклад Александра Романова на SPCUA 2012
 
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
 
Автоматизация визуального тестирования
Автоматизация визуального тестированияАвтоматизация визуального тестирования
Автоматизация визуального тестирования
 
Selenide
SelenideSelenide
Selenide
 
Автоматизация тестирования WEB API
Автоматизация тестирования WEB APIАвтоматизация тестирования WEB API
Автоматизация тестирования WEB API
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
 
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
 
В топку Postman - пишем API автотесты в привычном стеке
В топку Postman - пишем API автотесты в привычном стекеВ топку Postman - пишем API автотесты в привычном стеке
В топку Postman - пишем API автотесты в привычном стеке
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
 
Mobile Automation based on Appium
Mobile Automation based on AppiumMobile Automation based on Appium
Mobile Automation based on Appium
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
 
Автоматизированное тестирование клиентской производительности
Автоматизированное тестирование клиентской производительностиАвтоматизированное тестирование клиентской производительности
Автоматизированное тестирование клиентской производительности
 

Viewers also liked

Инструменты для тестирования UI
Инструменты для тестирования UIИнструменты для тестирования UI
Инструменты для тестирования UI
ISsoft
 
Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations
Pavel Tsukanov
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
Pavel Tsukanov
 

Viewers also liked (20)

СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯ
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
 
Parallelization of Selenium tests with .NET/C# + NUnit
Parallelization of Selenium tests with .NET/C# + NUnitParallelization of Selenium tests with .NET/C# + NUnit
Parallelization of Selenium tests with .NET/C# + NUnit
 
Фреймворк Html Elements или как удобно взаимодействовать с веб-интерфейсами в...
Фреймворк Html Elements или как удобно взаимодействовать с веб-интерфейсами в...Фреймворк Html Elements или как удобно взаимодействовать с веб-интерфейсами в...
Фреймворк Html Elements или как удобно взаимодействовать с веб-интерфейсами в...
 
Инструменты для тестирования UI
Инструменты для тестирования UIИнструменты для тестирования UI
Инструменты для тестирования UI
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
 
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)Основы "мобильной" разработки на примере платформы iOs (iPhone)
Основы "мобильной" разработки на примере платформы iOs (iPhone)
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladev
 
Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations
 
RESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGNRESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGN
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВРАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
 
Unit tests
Unit testsUnit tests
Unit tests
 
Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требований
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 

Similar to Автоматизированное тестирование UI на C# + Selenium WebDriver

Remoto powered by Windows Azure
Remoto powered by Windows AzureRemoto powered by Windows Azure
Remoto powered by Windows Azure
Vitaly Baum
 
Фвтоматизированное тестирование с чего начать Part1
Фвтоматизированное тестирование  с чего начать Part1Фвтоматизированное тестирование  с чего начать Part1
Фвтоматизированное тестирование с чего начать Part1
DataArt
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
Ontico
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
Александр Шамрай
 

Similar to Автоматизированное тестирование UI на C# + Selenium WebDriver (20)

Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Remoto powered by Windows Azure
Remoto powered by Windows AzureRemoto powered by Windows Azure
Remoto powered by Windows Azure
 
Тестирование веб-проектов в Agile
Тестирование веб-проектов в AgileТестирование веб-проектов в Agile
Тестирование веб-проектов в Agile
 
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Повышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScriptПовышаем надёжность тестов через JavaScript
Повышаем надёжность тестов через JavaScript
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
 
Web application testing architecture
Web application testing architectureWeb application testing architecture
Web application testing architecture
 
Фвтоматизированное тестирование с чего начать Part1
Фвтоматизированное тестирование  с чего начать Part1Фвтоматизированное тестирование  с чего начать Part1
Фвтоматизированное тестирование с чего начать Part1
 
Тестируем мобильные приложения в облаках с appium
Тестируем мобильные приложения в облаках с appiumТестируем мобильные приложения в облаках с appium
Тестируем мобильные приложения в облаках с appium
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
 
Selenium на практике и подводные камни
Selenium на практике и подводные камниSelenium на практике и подводные камни
Selenium на практике и подводные камни
 
Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)Тимур Каримбаев (Ютинет.ру)
Тимур Каримбаев (Ютинет.ру)
 
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
 
The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 

More from Pavel Tsukanov

More from Pavel Tsukanov (15)

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫ
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
PaaS и SaaS
PaaS и SaaSPaaS и SaaS
PaaS и SaaS
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
 

Автоматизированное тестирование UI на C# + Selenium WebDriver