Top Banner
SWD Page Recorder Dmytro Zharii. EPAM Systems Selenium Camp 2014. Kyiv Записывает PageObject'ы со скоростью ниндзя
45

SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Dec 21, 2014

Download

Technology

Dmytro Zharii

Демонстрация работы инструмента записи веб-элементов PageObject для Selenium WebDriver при помощи SWD Page Recorder. Демонстрация работы фреймворка SWD Starter Kit
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: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

SWD Page Recorder

Dmytro Zharii. EPAM SystemsSelenium Camp 2014. Kyiv

Записывает PageObject'ы со скоростью ниндзя

Page 2: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Что Я?

Page 3: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Кто Я?

Page 4: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

На повестке...

TODO: Не забыть добавить салйд с агендой, чтобы небыло как в прошлый раз.

НЕ ЗАБУдЬ!!!!!!!!11111

Ты помнишь как ты выдумывал агенду во время прошлого доклада????

Page 5: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

История...Команда Record&Play – записывают тесты при помощи Selenium IDE / Builder Пишут тесты в Бот-стиле:

Команда Фреймворководов – на протяжении 256-ти серий пытаются разработыть мегамасштабируемый и ультрагибкий фреймворк, венец инженерной мысли.

var driver = new FirefoxDriver();driver.FindElement(By.CssSelector("img[alt=\"Le Freak\"]")).Click();driver.FindElement(By.LinkText("Add to cart")).Click();driver.FindElement(By.LinkText("Checkout >>")).Click();

Page 6: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Record&Play. Что было сделано:

• Выбран инструмент• Selenium IDE • Selenium Builder • Eclipse / Idea• Visual Studio

• Записаны тесты

• Был сгенерирован код тестов

• Добавлена возможность запуска не только «на моей машине»

Page 7: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Жизнь Record&Play

Page 8: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Framework. Что было сделано:

• Выбраны инструменты автоматизации• Придумана архитектура и слои фреймворка:

• Работа со страницами• Тесты• Отдельные бизнес-шаги• Работа с БД

• Выработаны соглашения: • Как писать код • Как добавлять новые тесты

• Были записаны первые PageObject классы• Создан базовый модуль отчётности

Page 9: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Жизнь Фреймворка

Page 10: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Как сократить риск смерти?

Page 11: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Я знаю как!(И Вы знаете как!)

• Готовая архитектура • Общепринятые практики

• Хорошие инструменты

• Начать со Smoke-тестов

Page 12: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

На повестке...

SWD Page Recorder – инструмент генерации PageObjects

SWD Starter Kit – фреймворк для вашего фреймворка

И... Демо!

Page 13: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

SWD PageRecorder

Page 14: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Автоматически генерирует XPath

Попробуйте самостоятельно на этой странице:http://derp-bear.herokuapp.com/forms/basic_form_example

Page 15: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Редактор локаторов

Page 16: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Не нравится предложенный XPath?

Page 17: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Не любите XPath?

Page 18: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Генерирует PageObject!

Page 19: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

На C# и Java…

Page 20: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Ruby…

Page 21: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

На чём угодно... И как угодно!

Page 22: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

SWD Page Recorder

В браузере: •Записать веб-элементы/локаторы

В приложении: •Оптимизировать локаторы •Сгенерировать код PageObject

В IDE:•Продолжить писать тесты с уже готовыми локаторами

Page 23: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Вместо того, чтобы...• 10 START: Руками выгрызть один локатор из

браузера• Руками добавить его в код:• Создать новый класс• Добавить поле и аттрибут FindsBy

• Запустить тест, чтобы посмотреть как работает • Ай. Не работает• Почесать затылок• Отредактировать локатор в коде• Запустить тест для проверки• Ай. Опять не работает• Почесать затылок коллегам... • Ура заработало!• GOTO 10 'Надо же второй локатор добыть!'

Page 24: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Page Recorder – круче тайм-менеджмента

Page 25: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

SWD.StarterKit

Page 26: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

А что, если этот велосипед – не подходит?

Разработайте свой!

Используйте уже изобретённые •Хорошие практики•Подходы•Архитектуру•Структуру

Page 27: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Либо... возьмите готовое

Доработайте или переделайте уже готовое!

SWD.StarterKit

Page 28: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Структура SWD.StarterKit

Page 29: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Работа с WebDriver

• SwdBrowser – умеет автоматически создавать экземпляр WebDriver'а при первом обращении

• Браузер создаётся на основе конфигурационного файлаConfig.config:

• А ещё SwdBrowser умеет отлавливать JavaScript ошибки – HandleJavaScriptErrors() И много других приятных мелочей…

Page 30: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

PageObject’ы:

1. Умеют автоматически вызывать PageFactory.InitElements(...)

2. Уже содержат свойство Driver, которое возвращает текущий экземпляр WebDriver

Page 31: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Уже готово!

1. Готовые библиотечные методы расширения: • WaitUntilVisible():

txtName.WaitUntilVisible().SendKeys(“Hello”)

• GetElementText(): myPage.txtName.GetElementText() получает значение из тэгов input, select и других

2. Поддержка Smoke-тестов для PageObject класса

Page 32: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Хотите идею для Smoke-теста?

Page 33: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Что тестирует такой Smoke Test?

• Путь к Странице возможен?

• Элементы Страницы соответствуют PageObject декларации?

Page 34: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Что тестирует такой Smoke Test?

А не случилось ли по пути к странице ошибок:

•Server / HTTP (500)?•JavaScript исключений?

Такие ошибки могут быть автоматически отловлены фреймворком

Page 35: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Самотестируемый PageObject

http://valleyridgefamilydental.com/wp-content/uploads/2013/07/child-with-ice-cream.jpg

Page 36: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Код PageObject

Page 37: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Нас спасёт Page Recorder, который:

Page 38: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

А ещё...

Page 39: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Демо: Starter + Recorder

Page 40: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Выводы: SWD Page Recorder

Всё в одном флаконе

•Запись Page Object классов•Отладка локаторов•Работа с любым браузером WebDriver•Генерация кода Page Object на языках

C# Java Ruby... Свой шаблон Свой генератор

Page 41: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Выводы: SWD Starter Kit

• Готовая структура проекта • Хорошие практики автоматизации • Кроссбраузерный запуск тестов• Поддержка Smoke Test'ов• Интеграция с Page Recorder

Page 42: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Узнать ещё больше!

SWD Page Recorder: Записывает PageObject-классы для Selenium WebDriver

SWD.Starter: Быстрый старт автоматизации тестирования UI на C# + Selenium WebDriver + PageObjects

Page 43: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

SWD-Tools.com

http://swd-tools.com

Page 44: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Кто Я?

Page 45: SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014

Credits• This presentation template was borrowed from

http://www.slideshare.net/gaoliang641/lessons-learned-on-software-testing-automation (gaoliang641)