SlideShare a Scribd company logo
Selenium тесты.
От RC и одного пользователя к
WebDriver, PageObject и пулу
пользователей.
О чем это я...
● Обзор програмных продуктов Selenium.
● Этапы тестирования и о тестах на каждом из
них.
● Наши первые автотесты. Как и почему мы
потом многое переписали.
● Что мы получили в итоге.
Интеграционное тестирование - тестирование
совокупности компонентов системы.
Selenium - инструмент для автоматизированного
управления браузерами. Включает в себя:
Selenium IDE
Selenium Remote Control
Selenium Webdriver
Selenium Server & Selenium Grid
Selenium IDE - расширение для Firefox, позволяющее
записывать и воспроизводить действия пользователя в
браузере.
Selenium WebDriver - cемейство драйверов для
различных браузеров и набор клиентских
библиотек на разных языках программирования.
Selenium Remote Control - предшественник
Selenium WD. На данный момент работа над
проектом преостановлена и в дальнейшем он
развиваться не планируется.
Selenium Server - это сервер, который
позволяет управлять браузером с удалённой
машины, по сети...
Grid - кластер из нескольких серверов Selenium.
Как мы используем Selenium тесты.
Когда мы используем Selenium тесты.
● Девел - работа с тестовыми даными.
● Шоты - опционально, по группам.
● Стейджинг - все тесты, всегда.
● Продакшн - только критические тесты.
Какие проверки мы автоматизировали..
● Функциональность сайта
● Наличие ошибок в Javascript
● Расположение элементов (не верстку!)
Первые тесты Selenium.
Покрытие тестами web-версию Badoo.
Покрыть быстро
все фичи и
запустить в ТС
Покрытие мобильной версии Badoo тестами.
WD
RC
С чем пришлось бороться…
● Тесты написаны на двух
разных фреймворках.
● Библиотека разрослась и
с ней сложно работать.
● Тесты слишком длинные.
“Прослойка” между RC и WD.
Webdriver
Тест для RC Тест для WD
МАГИЯ!
Плюсы перехода на Webdriver
● Появилась возможность писать тесты для
различных браузеров.
● Единая библиотека для всех тестов.
● Использовать selenium grid. Параллелить
тесты.
Как было в начале...
Тест
BadooSeleniumTC
ТестТест
Новый подход в организации библиотеки.
Тест
API
BadooWebDriverTC
Тест Тест
UI UIUI APIAPI
Как здорово иметь удобную библиотеку!!
● Более читаемый код. Логика отдельно,
взаимодействие с интерфейсом отдельно...
● Писать новые тесты с каждым разом
проще!!
● При изменении компонента в проекте
меняется только код UI, сам тест не
меняется..
Почему тесты идут так долго?..
Подготовка данных для теста...
●
●
Предустановленные
пользователи
Апи на стороне
сервера.
Интеграция QaApi в тесты...
Selenium Server
Тест
QaApi
Возможности QaApi
● Быстрая подготовка данных к тесту до его
начала.
● Универсальный доступ к данным
пользователя.
● Возможность “очистки” пользователей для
повторного использование.
● Пул пользователей на почти все возможные
кейзы.
Пул пользователей на все случаи жизни.....
Что мы получили в итоге
● Кроссплатформенные и кроссбраузерные
тесты.
● Короткие тесты, проверяющие конкретный
кейз.
● Возможность запускать тесты параллельно.
~30 тестов / 1 поток == 25 минут.
~300 тестов / 10 поток ~= 10 минут.
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного пользователя к WebDriver, Page Object и пулу пользователей".

More Related Content

PDF
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
PPTX
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
PDF
Javascript-фреймворки:
 должен остаться только один
PPTX
Денис Иванов
PPTX
переезд мониторинга
PDF
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
PDF
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Javascript-фреймворки:
 должен остаться только один
Денис Иванов
переезд мониторинга
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
Организация надежного резервного копирования веб-проекта. Практика и подводны...

What's hot (20)

PPTX
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
PDF
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
PDF
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
PPTX
Александр Афенов
PDF
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
PDF
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
PPTX
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
PDF
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PDF
Антон Галицын
PPTX
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
PPTX
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
PDF
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
PDF
Тестируем мобильное приложение в суровых реалиях Интернета
PDF
Golang в avito
PPTX
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
PDF
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
PDF
Alexei Vladishev - Zabbix 3.0 что дальше
PDF
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
PPTX
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Александр Афенов
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Антон Галицын
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Тестируем мобильное приложение в суровых реалиях Интернета
Golang в avito
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
Alexei Vladishev - Zabbix 3.0 что дальше
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
Ad

Viewers also liked (20)

PDF
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
PDF
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
PDF
Доклад Алексея Деревянкина (Skype) на конференции LoveQA. "Нагрузочное тестир...
PDF
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
PDF
грабли автоматизации тестирования мобильного веба с помощью Selenium 2
PDF
как работают яндекс.пробки
PDF
Yandex1
PDF
Yandex20131017 ageev-2
PDF
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
PDF
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
PDF
Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...
PDF
5 способов деплоя PHP-кода в условиях хайлоада
PDF
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
PPT
Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...
PPT
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
PPT
LinkMeUp-V15 (05.2014)
PPTX
Типичные ошибки начинающих писать тесты на WebDriver
PDF
как математика позволяет зарабатывать деньги
PPTX
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад Алексея Деревянкина (Skype) на конференции LoveQA. "Нагрузочное тестир...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
грабли автоматизации тестирования мобильного веба с помощью Selenium 2
как работают яндекс.пробки
Yandex1
Yandex20131017 ageev-2
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...
5 способов деплоя PHP-кода в условиях хайлоада
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
LinkMeUp-V15 (05.2014)
Типичные ошибки начинающих писать тесты на WebDriver
как математика позволяет зарабатывать деньги
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
Ad

Similar to Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного пользователя к WebDriver, Page Object и пулу пользователей". (20)

PPTX
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
PDF
Selenium. Stas Kuzminov
PPT
Selenium Begins
PPTX
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
PPTX
Каким будет Selenium 3.0 и Selenium 4.0
PDF
Погружение в Selenide [NoBugs WTF PRO уровень]
PPTX
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
PPT
Автоматизированное тестирование мобильных приложений
PPTX
Расширяемая платформа для создания и управления автоматизированными тестами н...
PPTX
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PPT
Open Source Testing Framework: real project example and best practices
PPT
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
PDF
DevOps guide for awesome quality assurance
PPTX
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
PPT
Netbeans Desktop Applications
PDF
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
PDF
Appery.io Ukraine_2016
PPTX
Appium confet qa
PDF
Экскурс в мир WEB разработки
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
Selenium. Stas Kuzminov
Selenium Begins
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Каким будет Selenium 3.0 и Selenium 4.0
Погружение в Selenide [NoBugs WTF PRO уровень]
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Автоматизированное тестирование мобильных приложений
Расширяемая платформа для создания и управления автоматизированными тестами н...
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Open Source Testing Framework: real project example and best practices
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
DevOps guide for awesome quality assurance
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
Netbeans Desktop Applications
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
Appery.io Ukraine_2016
Appium confet qa
Экскурс в мир WEB разработки

More from Badoo Development (20)

PDF
Viktar Karanevich – iOS Parallel Automation
PDF
Как мы делаем модули PHP в Badoo – Антон Довгаль
PDF
Григорий Джанелидзе, OK.RU
PPTX
Андрей Сидоров, Яндекс.Браузер
PDF
Филипп Уваров, Avito
PDF
Cocoaheads Meetup / Alex Zimin / Swift magic
PDF
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
PDF
Alex Krasheninnikov – Hadoop High Availability
PDF
Андрей Денисов – В ожидании мониторинга баз данных
PDF
Александр Зобнин, Grafana Labs
PDF
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
PPTX
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
PDF
TechLeads meetup: Алексей Рыбак, Badoo
PPTX
TechLeads meetup: Евгений Потапов, ITSumma
PDF
TechLeads meetup: Макс Лапшин, Erlyvideo
PDF
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
PPTX
Как мы готовим MySQL
PPTX
Архитектура хранения и отдачи фотографий в Badoo
PDF
ChromeDriver Jailbreak
PDF
Git хуки на страже качества кода
Viktar Karanevich – iOS Parallel Automation
Как мы делаем модули PHP в Badoo – Антон Довгаль
Григорий Джанелидзе, OK.RU
Андрей Сидоров, Яндекс.Браузер
Филипп Уваров, Avito
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Alex Krasheninnikov – Hadoop High Availability
Андрей Денисов – В ожидании мониторинга баз данных
Александр Зобнин, Grafana Labs
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Макс Лапшин, Erlyvideo
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Как мы готовим MySQL
Архитектура хранения и отдачи фотографий в Badoo
ChromeDriver Jailbreak
Git хуки на страже качества кода

Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного пользователя к WebDriver, Page Object и пулу пользователей".

  • 1. Selenium тесты. От RC и одного пользователя к WebDriver, PageObject и пулу пользователей.
  • 2. О чем это я... ● Обзор програмных продуктов Selenium. ● Этапы тестирования и о тестах на каждом из них. ● Наши первые автотесты. Как и почему мы потом многое переписали. ● Что мы получили в итоге.
  • 3. Интеграционное тестирование - тестирование совокупности компонентов системы.
  • 4. Selenium - инструмент для автоматизированного управления браузерами. Включает в себя: Selenium IDE Selenium Remote Control Selenium Webdriver Selenium Server & Selenium Grid
  • 5. Selenium IDE - расширение для Firefox, позволяющее записывать и воспроизводить действия пользователя в браузере.
  • 6. Selenium WebDriver - cемейство драйверов для различных браузеров и набор клиентских библиотек на разных языках программирования.
  • 7. Selenium Remote Control - предшественник Selenium WD. На данный момент работа над проектом преостановлена и в дальнейшем он развиваться не планируется.
  • 8. Selenium Server - это сервер, который позволяет управлять браузером с удалённой машины, по сети...
  • 9. Grid - кластер из нескольких серверов Selenium.
  • 10. Как мы используем Selenium тесты.
  • 11. Когда мы используем Selenium тесты. ● Девел - работа с тестовыми даными. ● Шоты - опционально, по группам. ● Стейджинг - все тесты, всегда. ● Продакшн - только критические тесты.
  • 12. Какие проверки мы автоматизировали.. ● Функциональность сайта ● Наличие ошибок в Javascript ● Расположение элементов (не верстку!)
  • 14. Покрытие тестами web-версию Badoo. Покрыть быстро все фичи и запустить в ТС
  • 16. С чем пришлось бороться… ● Тесты написаны на двух разных фреймворках. ● Библиотека разрослась и с ней сложно работать. ● Тесты слишком длинные.
  • 17. “Прослойка” между RC и WD. Webdriver Тест для RC Тест для WD МАГИЯ!
  • 18. Плюсы перехода на Webdriver ● Появилась возможность писать тесты для различных браузеров. ● Единая библиотека для всех тестов. ● Использовать selenium grid. Параллелить тесты.
  • 19. Как было в начале... Тест BadooSeleniumTC ТестТест
  • 20. Новый подход в организации библиотеки. Тест API BadooWebDriverTC Тест Тест UI UIUI APIAPI
  • 21. Как здорово иметь удобную библиотеку!! ● Более читаемый код. Логика отдельно, взаимодействие с интерфейсом отдельно... ● Писать новые тесты с каждым разом проще!! ● При изменении компонента в проекте меняется только код UI, сам тест не меняется..
  • 22. Почему тесты идут так долго?..
  • 23. Подготовка данных для теста... ● ● Предустановленные пользователи Апи на стороне сервера.
  • 24. Интеграция QaApi в тесты... Selenium Server Тест QaApi
  • 25. Возможности QaApi ● Быстрая подготовка данных к тесту до его начала. ● Универсальный доступ к данным пользователя. ● Возможность “очистки” пользователей для повторного использование. ● Пул пользователей на почти все возможные кейзы.
  • 26. Пул пользователей на все случаи жизни.....
  • 27. Что мы получили в итоге ● Кроссплатформенные и кроссбраузерные тесты. ● Короткие тесты, проверяющие конкретный кейз. ● Возможность запускать тесты параллельно. ~30 тестов / 1 поток == 25 минут. ~300 тестов / 10 поток ~= 10 минут.