web driver история одной миграции
DESCRIPTION
SeleniumCamp'2012TRANSCRIPT
![Page 1: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/1.jpg)
WebDriver: история одной миграции
Игорь Хрол
![Page 2: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/2.jpg)
О себе• Игорь Хрол• Специализируюсь на
автоматизации тестирования с 2006 года
• Инструменты:– Selenium, HP QTP, Watir,
TestComplete, Jmeter• E-mail: [email protected] • www.autotest.by - основатель
![Page 3: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/3.jpg)
О чём говорить будем?
• Зачем мигрировать?• Как запланировать миграцию?• Во сколько обойдётся?• Как сделать её?
![Page 4: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/4.jpg)
Зачем мигрировать?
Быстрая скорость работы на Internet Explorer
![Page 5: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/5.jpg)
Зачем мигрировать?
• Работа с объектами, а не со строками• Поддержка иерархии объектов
![Page 6: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/6.jpg)
Зачем мигрировать?
Поддержка community
![Page 7: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/7.jpg)
Зачем мигрировать?
• Поддержка мобильных устройств– Android Browser– iPhone Browser
• Но для Navite-приложений пока надо искать что-то другое
![Page 8: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/8.jpg)
Что было до миграции?
• 70% кода связано с Selenium Flex API• 30% - работа с HTML• 500k строк кода• 7 дней выполнения тестов
Начало активной работы с HTML – дополнительная причина мигрировать
![Page 9: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/9.jpg)
WebdriverBackedSelenium
• Что за зверь?• Инструмент доступа к API Selenium 1.0
через объект WebDriver’a
![Page 10: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/10.jpg)
WebdriverBackedSelenium
Selenium 2.0
Снова Selenium 2.0Selenium 1.0
![Page 11: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/11.jpg)
WebdriverBackedSelenium
• Почему отказались:– Наличие большого объёма JavaScript-вставок– Половинчатое решение, которое надо было бы
всё равно переписывать в будущем– Проблемы с CSS-локаторами
![Page 12: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/12.jpg)
Инициация проекта
Прототипирование
Миграция ядра/архитектуры
Миграция реиспользуемых
компонент
Выполнение и отладка тестов
Структура работ по миграции
![Page 13: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/13.jpg)
Этапы – получить добро начальства
![Page 14: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/14.jpg)
Этапы – прототип
![Page 15: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/15.jpg)
Этапы – переписывание ядраSelenium Flex API
Вместо user-extensions.js:((JavascriptExecutor)webdriver).executeScript(script)
Подходит для других расширений
executeScript(java.lang.String script, java.lang.Object... args)
Удобно работать с параметрами
![Page 16: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/16.jpg)
Этапы – переписывание ядраBaseUIElement class (Selenium 1.0)
BaseWebUIElement class (Selenium 1.0)
![Page 17: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/17.jpg)
Этапы – переписывание ядра
BaseWebUIElement class (WebDriver)
![Page 18: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/18.jpg)
Этапы – переписывание ядра
BaseWebUIElement class
![Page 19: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/19.jpg)
Frames
Теперь нужно обязательно выбирать
![Page 20: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/20.jpg)
Этапы – переписывание реиспользуемых компонент
Selenium 1.0
WebDriver
![Page 21: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/21.jpg)
Этапы – переписывание реиспользуемых компонент
Selenium 1.0
WebDriver
![Page 22: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/22.jpg)
Этапы – refactoring
![Page 23: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/23.jpg)
Этапы – run & debug
Цель:• Выполнить все тесты, чтобы убедиться, что
миграция закончена
![Page 24: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/24.jpg)
Как влияет на текущие задачи?
• Миграция проводилась в отдельной ветке в системе контроля версий
• На первых нескольких этапах был вовлечён только один человек (Test Automation Architect)
• Работы велись между фазами проекта
![Page 25: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/25.jpg)
Как влияет на текущие задачи?
• Итого: на использование автоматизации тестирования миграция не повлияла
![Page 26: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/26.jpg)
Как планировали?
𝑇𝑜𝑡𝑎𝑙=𝑁𝑛∗𝑇 𝑛+
𝑀𝑚
∗𝑇𝑚+𝑇 𝑘
Всего компонент (java-классов) Всего тестов
Промигрировали компонент
Время на компоненты
Промигрировали тестов
Промигрировали тестов
«Заточка» ядра и всякие
неприятности
![Page 27: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/27.jpg)
Сколько времени ушло?
Всего: около 10-12 человеко-месяцев
Ядро и основные компоненты
Большинство компонент и тесты
Архитектор2 месяца
50% команды (7-10 человек) 1 месяц
![Page 28: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/28.jpg)
Tips&Tricks
![Page 29: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/29.jpg)
Native Clickshttp://code.google.com/p/selenium/issues/detail?id=2700http://code.google.com/p/selenium/issues/detail?id=2950
![Page 30: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/30.jpg)
Ввод текста в поля• Selenium 1.0: просто выставлялся• Webdriver: clear() – не всегда работает
![Page 31: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/31.jpg)
Выводы• Переход на WebDriver не страшен• В миграции помогает хорошо
сформированных до этого фреймворк• В WebDriver еще есть проблемы, но они
быстро исправляются
![Page 32: Web driver история одной миграции](https://reader035.vdocuments.mx/reader035/viewer/2022062220/557ef350d8b42aa30a8b4c11/html5/thumbnails/32.jpg)
Вопросы