28
Selenium тесты. От RC и одного пользователя к WebDriver, PageObject и пулу пользователей.

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

Embed Size (px)

DESCRIPTION

Презентация с первой конференции Badoo для тестировщиков LoveQA.

Citation preview

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

Selenium тесты.

От RC и одного пользователя к WebDriver, PageObject и пулу

пользователей.

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

О чем это я...

● Обзор програмных продуктов Selenium.

● Этапы тестирования и о тестах на каждом из них.

● Наши первые автотесты. Как и почему мы потом многое переписали.

● Что мы получили в итоге.

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

Интеграционное тестирование - тестирование совокупности компонентов системы.

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

Selenium - инструмент для автоматизированного управления браузерами. Включает в себя:

Selenium IDE

Selenium Remote Control

Selenium Webdriver

Selenium Server & Selenium Grid

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

Selenium IDE - расширение для Firefox, позволяющее записывать и воспроизводить действия пользователя в браузере.

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

Selenium WebDriver - cемейство драйверов для различных браузеров и набор клиентских библиотек на разных языках программирования.

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

Selenium Remote Control - предшественник Selenium WD. На данный момент работа над проектом преостановлена и в дальнейшем он развиваться не планируется.

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

Selenium Server - это сервер, который позволяет управлять браузером с удалённой машины, по сети...

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

Grid - кластер из нескольких серверов Selenium.

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

Как мы используем Selenium тесты.

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

Когда мы используем Selenium тесты.

● Девел - работа с тестовыми даными.

● Шоты - опционально, по группам.

● Стейджинг - все тесты, всегда.

● Продакшн - только критические тесты.

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

Какие проверки мы автоматизировали..

● Функциональность сайта

● Наличие ошибок в Javascript

● Расположение элементов (не верстку!)

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

Первые тесты Selenium.

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

Покрытие тестами web-версию Badoo.

Покрыть быстро

все фичи и

запустить в ТС

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

Покрытие мобильной версии Badoo тестами.

WD

RC

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

С чем пришлось бороться…

● Тесты написаны на двухразных фреймворках.

● Библиотека разрослась ис ней сложно работать.

● Тесты слишком длинные.

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

“Прослойка” между RC и WD.

Webdriver

Тест для RC Тест для WD

МАГИЯ!

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

Плюсы перехода на Webdriver

● Появилась возможность писать тесты для различных браузеров.

● Единая библиотека для всех тестов.

● Использовать selenium grid. Параллелить тесты.

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

Как было в начале...

Тест

BadooSeleniumTC

ТестТест

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

Новый подход в организации библиотеки.

Тест

API

BadooWebDriverTC

Тест Тест

UI UIUI APIAPI

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

Как здорово иметь удобную библиотеку!!

● Более читаемый код. Логика отдельно, взаимодействие с интерфейсом отдельно...

● Писать новые тесты с каждым разом проще!!

● При изменении компонента в проекте меняется только код UI, сам тест не меняется..

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

Почему тесты идут так долго?..

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

Подготовка данных для теста...

Предустановленные пользователи

Апи на стороне сервера.

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

Интеграция QaApi в тесты...

Selenium Server

Тест

QaApi

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

Возможности QaApi

● Быстрая подготовка данных к тесту до его начала.

● Универсальный доступ к данным пользователя.

● Возможность “очистки” пользователей для повторного использование.

● Пул пользователей на почти все возможные кейзы.

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

Пул пользователей на все случаи жизни.....

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

Что мы получили в итоге

● Кроссплатформенные и кроссбраузерные тесты.

● Короткие тесты, проверяющие конкретный кейз.

● Возможность запускать тесты параллельно.

~30 тестов / 1 поток == 25 минут.~300 тестов / 10 поток ~= 10 минут.

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