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

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

Jun 15, 2015

Download

Technology

Igor Khrol

SeleniumCamp'2012
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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   история одной миграции

Вопросы