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

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

Embed Size (px)

DESCRIPTION

Демонстрация работы инструмента записи веб-элементов PageObject для Selenium WebDriver при помощи SWD Page Recorder. Демонстрация работы фреймворка SWD Starter Kit

Citation preview

SWD Page Recorder

Dmytro Zharii. EPAM SystemsSelenium Camp 2014. Kyiv

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

Что Я?

Кто Я?

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

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

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

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

История...Команда 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();

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

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

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

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

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

Жизнь Record&Play

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

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

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

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

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

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

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

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

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

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

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

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

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

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

И... Демо!

SWD PageRecorder

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

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

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

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

Не любите XPath?

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

На C# и Java…

Ruby…

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

SWD Page Recorder

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

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

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

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

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

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

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

SWD.StarterKit

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

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

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

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

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

SWD.StarterKit

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

Работа с WebDriver

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

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

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

PageObject’ы:

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

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

Уже готово!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Код PageObject

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

А ещё...

Демо: Starter + Recorder

Выводы: SWD Page Recorder

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

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

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

Выводы: SWD Starter Kit

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

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

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

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

SWD-Tools.com

http://swd-tools.com

Кто Я?

Credits• This presentation template was borrowed from

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