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

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

description

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

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

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)