Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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

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