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

Post on 15-Jun-2015

18.186 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

SeleniumCamp'2012

TRANSCRIPT

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

Игорь Хрол

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

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

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

TestComplete, Jmeter• E-mail: khroliz@gmail.com • www.autotest.by - основатель

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

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

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

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

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

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

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

Поддержка community

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

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

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

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

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

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

WebdriverBackedSelenium

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

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

WebdriverBackedSelenium

Selenium 2.0

Снова Selenium 2.0Selenium 1.0

WebdriverBackedSelenium

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

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

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

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

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

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

компонент

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

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

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

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

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

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

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

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

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

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

BaseWebUIElement class (Selenium 1.0)

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

BaseWebUIElement class (WebDriver)

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

BaseWebUIElement class

Frames

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

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

Selenium 1.0

WebDriver

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

Selenium 1.0

WebDriver

Этапы – refactoring

Этапы – run & debug

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

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

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

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

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

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

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

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

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

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

𝑀𝑚

∗𝑇𝑚+𝑇 𝑘

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

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

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

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

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

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

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

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

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

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

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

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

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

Tips&Tricks

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

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

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

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

Вопросы

top related