SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя...
-
Upload
dmytro-zharii -
Category
Technology
-
view
4.717 -
download
4
description
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
• Записаны тесты
• Был сгенерирован код тестов
• Добавлена возможность запуска не только «на моей машине»
Framework. Что было сделано:
• Выбраны инструменты автоматизации• Придумана архитектура и слои фреймворка:
• Работа со страницами• Тесты• Отдельные бизнес-шаги• Работа с БД
• Выработаны соглашения: • Как писать код • Как добавлять новые тесты
• Были записаны первые PageObject классы• Создан базовый модуль отчётности
Я знаю как!(И Вы знаете как!)
• Готовая архитектура • Общепринятые практики
• Хорошие инструменты
• Начать со Smoke-тестов
На повестке...
SWD Page Recorder – инструмент генерации PageObjects
SWD Starter Kit – фреймворк для вашего фреймворка
И... Демо!
Автоматически генерирует XPath
Попробуйте самостоятельно на этой странице:http://derp-bear.herokuapp.com/forms/basic_form_example
SWD Page Recorder
В браузере: •Записать веб-элементы/локаторы
В приложении: •Оптимизировать локаторы •Сгенерировать код PageObject
В IDE:•Продолжить писать тесты с уже готовыми локаторами
Вместо того, чтобы...• 10 START: Руками выгрызть один локатор из
браузера• Руками добавить его в код:• Создать новый класс• Добавить поле и аттрибут FindsBy
• Запустить тест, чтобы посмотреть как работает • Ай. Не работает• Почесать затылок• Отредактировать локатор в коде• Запустить тест для проверки• Ай. Опять не работает• Почесать затылок коллегам... • Ура заработало!• GOTO 10 'Надо же второй локатор добыть!'
А что, если этот велосипед – не подходит?
Разработайте свой!
Используйте уже изобретённые •Хорошие практики•Подходы•Архитектуру•Структуру
Работа с 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 Test?
• Путь к Странице возможен?
• Элементы Страницы соответствуют PageObject декларации?
Что тестирует такой Smoke Test?
А не случилось ли по пути к странице ошибок:
•Server / HTTP (500)?•JavaScript исключений?
Такие ошибки могут быть автоматически отловлены фреймворком
Самотестируемый PageObject
http://valleyridgefamilydental.com/wp-content/uploads/2013/07/child-with-ice-cream.jpg
Выводы: 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