SlideShare a Scribd company logo
SWD Page Recorder
Записывает PageObject'ы со скоростью ниндзя

Dmytro Zharii. EPAM Systems
Selenium Camp 2014. Kyiv
Что Я?
Кто Я?
На повестке...
TODO: Не забыть добавить салйд с агендой,
чтобы небыло как в прошлый раз.
НЕ ЗАБУдЬ!!!!!!!!11111
Ты помнишь как ты выдумывал агенду
во время прошлого доклада????
История...
Команда Record&Play – записывают тесты
при помощи Selenium IDE / Builder
Пишут тесты в Бот-стиле:
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();

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

2.

Умеют автоматически вызывать
PageFactory.InitElements(...)
Уже содержат свойство 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-testingautomation (gaoliang641)

More Related Content

PPTX
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
PPTX
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
PDF
Инструменты разные нужны, инструменты разные важны
PDF
SPA инструменты
PDF
Конструктор / Денис Паясь (Яндекс)
PDF
Инструментируй это
PDF
Жизнь в изоляции
PDF
Баба Яга против!
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Инструменты разные нужны, инструменты разные важны
SPA инструменты
Конструктор / Денис Паясь (Яндекс)
Инструментируй это
Жизнь в изоляции
Баба Яга против!

What's hot (19)

PDF
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
PDF
Автоматизация UI тестирования под Windows и Windows Phone
PDF
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
PDF
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
PDF
Опыт разработки эффективного SPA
PDF
Скриншоты как сервис
PDF
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
PPTX
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
PPT
Презентация: 1С-Bitrix — как начать
PDF
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
PDF
Расширь границы возможного вместе с Gradle
PDF
Фронтенд разработка без боли
PPTX
Chef @DevWeb
PPTX
Automation testing desktop applications
PPT
WepPerfomance,
PPTX
course js day 1
PDF
Paul Miller "Как подняться на open source"
PPTX
Стабильность WebGL приложений / Кирилл Дмитренко (Яндекс)
PDF
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Автоматизация UI тестирования под Windows и Windows Phone
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Опыт разработки эффективного SPA
Скриншоты как сервис
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Презентация: 1С-Bitrix — как начать
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
Расширь границы возможного вместе с Gradle
Фронтенд разработка без боли
Chef @DevWeb
Automation testing desktop applications
WepPerfomance,
course js day 1
Paul Miller "Как подняться на open source"
Стабильность WebGL приложений / Кирилл Дмитренко (Яндекс)
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
Ad

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

PPT
Page object with selenide
PPTX
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
PDF
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
PDF
Selenium. Stas Kuzminov
PPTX
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
PPTX
Great functional testing with WebDriver and Thucydides
Page object with selenide
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Selenium. Stas Kuzminov
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Great functional testing with WebDriver and Thucydides
Ad

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