SWD Page Recorder Dmytro Zharii. EPAM Systems Selenium Camp 2014. Kyiv Записывает PageObject'ы со скоростью ниндзя
Dec 21, 2014
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