32
WebDriver: история одной миграции Игорь Хрол

Web driver история одной миграции

Embed Size (px)

DESCRIPTION

SeleniumCamp'2012

Citation preview

Page 1: Web driver   история одной миграции

WebDriver: история одной миграции

Игорь Хрол

Page 2: Web driver   история одной миграции

О себе• Игорь Хрол• Специализируюсь на

автоматизации тестирования с 2006 года

• Инструменты:– Selenium, HP QTP, Watir,

TestComplete, Jmeter• E-mail: [email protected] • www.autotest.by - основатель

Page 3: Web driver   история одной миграции

О чём говорить будем?

• Зачем мигрировать?• Как запланировать миграцию?• Во сколько обойдётся?• Как сделать её?

Page 4: Web driver   история одной миграции

Зачем мигрировать?

Быстрая скорость работы на Internet Explorer

Page 5: Web driver   история одной миграции

Зачем мигрировать?

• Работа с объектами, а не со строками• Поддержка иерархии объектов

Page 6: Web driver   история одной миграции

Зачем мигрировать?

Поддержка community

Page 7: Web driver   история одной миграции

Зачем мигрировать?

• Поддержка мобильных устройств– Android Browser– iPhone Browser

• Но для Navite-приложений пока надо искать что-то другое

Page 8: Web driver   история одной миграции

Что было до миграции?

• 70% кода связано с Selenium Flex API• 30% - работа с HTML• 500k строк кода• 7 дней выполнения тестов

Начало активной работы с HTML – дополнительная причина мигрировать

Page 9: Web driver   история одной миграции

WebdriverBackedSelenium

• Что за зверь?• Инструмент доступа к API Selenium 1.0

через объект WebDriver’a

Page 10: Web driver   история одной миграции

WebdriverBackedSelenium

Selenium 2.0

Снова Selenium 2.0Selenium 1.0

Page 11: Web driver   история одной миграции

WebdriverBackedSelenium

• Почему отказались:– Наличие большого объёма JavaScript-вставок– Половинчатое решение, которое надо было бы

всё равно переписывать в будущем– Проблемы с CSS-локаторами

Page 12: Web driver   история одной миграции

Инициация проекта

Прототипирование

Миграция ядра/архитектуры

Миграция реиспользуемых

компонент

Выполнение и отладка тестов

Структура работ по миграции

Page 13: Web driver   история одной миграции

Этапы – получить добро начальства

Page 14: Web driver   история одной миграции

Этапы – прототип

Page 15: Web driver   история одной миграции

Этапы – переписывание ядраSelenium Flex API

Вместо user-extensions.js:((JavascriptExecutor)webdriver).executeScript(script)

Подходит для других расширений

executeScript(java.lang.String script, java.lang.Object... args)

Удобно работать с параметрами

Page 16: Web driver   история одной миграции

Этапы – переписывание ядраBaseUIElement class (Selenium 1.0)

BaseWebUIElement class (Selenium 1.0)

Page 17: Web driver   история одной миграции

Этапы – переписывание ядра

BaseWebUIElement class (WebDriver)

Page 18: Web driver   история одной миграции

Этапы – переписывание ядра

BaseWebUIElement class

Page 19: Web driver   история одной миграции

Frames

Теперь нужно обязательно выбирать

Page 20: Web driver   история одной миграции

Этапы – переписывание реиспользуемых компонент

Selenium 1.0

WebDriver

Page 21: Web driver   история одной миграции

Этапы – переписывание реиспользуемых компонент

Selenium 1.0

WebDriver

Page 22: Web driver   история одной миграции

Этапы – refactoring

Page 23: Web driver   история одной миграции

Этапы – run & debug

Цель:• Выполнить все тесты, чтобы убедиться, что

миграция закончена

Page 24: Web driver   история одной миграции

Как влияет на текущие задачи?

• Миграция проводилась в отдельной ветке в системе контроля версий

• На первых нескольких этапах был вовлечён только один человек (Test Automation Architect)

• Работы велись между фазами проекта

Page 25: Web driver   история одной миграции

Как влияет на текущие задачи?

• Итого: на использование автоматизации тестирования миграция не повлияла

Page 26: Web driver   история одной миграции

Как планировали?

𝑇𝑜𝑡𝑎𝑙=𝑁𝑛∗𝑇 𝑛+

𝑀𝑚

∗𝑇𝑚+𝑇 𝑘

Всего компонент (java-классов) Всего тестов

Промигрировали компонент

Время на компоненты

Промигрировали тестов

Промигрировали тестов

«Заточка» ядра и всякие

неприятности

Page 27: Web driver   история одной миграции

Сколько времени ушло?

Всего: около 10-12 человеко-месяцев

Ядро и основные компоненты

Большинство компонент и тесты

Архитектор2 месяца

50% команды (7-10 человек) 1 месяц

Page 28: Web driver   история одной миграции

Tips&Tricks

Page 30: Web driver   история одной миграции

Ввод текста в поля• Selenium 1.0: просто выставлялся• Webdriver: clear() – не всегда работает

Page 31: Web driver   история одной миграции

Выводы• Переход на WebDriver не страшен• В миграции помогает хорошо

сформированных до этого фреймворк• В WebDriver еще есть проблемы, но они

быстро исправляются

Page 32: Web driver   история одной миграции

Вопросы