Демонстрация работы инструмента записи веб-элементов PageObject для Selenium WebDriver при помощи SWD Page Recorder. Демонстрация работы фреймворка SWD Starter Kit
1 of 45
More Related Content
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
1. SWD Page Recorder
Записывает PageObject'ы со скоростью ниндзя
Dmytro Zharii. EPAM Systems
Selenium Camp 2014. Kyiv
4. На повестке...
TODO: Не забыть добавить салйд с агендой,
чтобы небыло как в прошлый раз.
НЕ ЗАБУдЬ!!!!!!!!11111
Ты помнишь как ты выдумывал агенду
во время прошлого доклада????
5. История...
Команда 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-ти серий пытаются разработыть
мегамасштабируемый и ультрагибкий
фреймворк, венец инженерной мысли.
6. Record&Play. Что было
сделано:
•
Выбран инструмент
•
Selenium IDE
•
Selenium Builder
•
Eclipse / Idea
•
Visual Studio
•
Записаны тесты
•
Был сгенерирован код тестов
•
Добавлена возможность запуска
не только «на моей машине»
8. Framework. Что было сделано:
•
•
•
•
•
Выбраны инструменты автоматизации
Придумана архитектура и слои фреймворка:
•
Работа со страницами
•
Тесты
•
Отдельные бизнес-шаги
•
Работа с БД
Выработаны соглашения:
•
Как писать код
•
Как добавлять новые тесты
Были записаны первые PageObject классы
Создан базовый модуль отчётности
22. SWD Page Recorder
В браузере:
•Записать веб-элементы/локаторы
В приложении:
•Оптимизировать локаторы
•Сгенерировать код PageObject
В IDE:
•Продолжить писать тесты с уже готовыми
локаторами
23. Вместо того, чтобы...
• 10 START: Руками выгрызть один локатор из браузера
• Руками добавить его в код:
• Создать новый класс
• Добавить поле и аттрибут FindsBy
• Запустить тест, чтобы посмотреть как работает
• Ай. Не работает
• Почесать затылок
• Отредактировать локатор в коде
• Запустить тест для проверки
• Ай. Опять не работает
• Почесать затылок коллегам...
• Ура заработало!
• GOTO 10 'Надо же второй локатор добыть! '
29. Работа с WebDriver
• SwdBrowser – умеет автоматически создавать экземпляр
WebDriver'а при первом обращении
• Браузер создаётся на основе конфигурационного файла
Config.config:
• А ещё SwdBrowser умеет отлавливать JavaScript ошибки
– HandleJavaScriptErrors()
И много других приятных мелочей…
31. Уже готово!
1. Готовые библиотечные методы расширения:
• WaitUntilVisible():
txtName.WaitUntilVisible() .SendKeys(“Hello”)
• GetElementText():
myPage.txtName.GetElementText()
получает значение из тэгов input,
select и других
2. Поддержка Smoke-тестов для PageObject
класса
33. Что тестирует такой
Smoke Test?
•
•
Путь к Странице возможен?
Элементы Страницы
соответствуют
PageObject декларации?
34. Что тестирует такой
Smoke Test?
А не случилось ли по пути к странице
ошибок:
•Server / HTTP (500)?
•JavaScript исключений?
Такие ошибки могут быть
автоматически отловлены
фреймворком
40. Выводы: SWD Page Recorder
Всё в одном флаконе
Запись Page Object классов
•Отладка локаторов
–
•Работа с любым браузером WebDriver
•Генерация кода Page Object на языках
C#
Java
Ruby...
Свой шаблон
Свой генератор
•
41. Выводы: SWD Starter Kit
•
•
•
•
•
Готовая структура проекта
Хорошие практики автоматизации
Кроссбраузерный запуск тестов
Поддержка Smoke Test'ов
Интеграция с Page Recorder
45. Credits
•
•
This presentation template was borrowed from
http://www.slideshare.net/gaoliang641/lessons-learned-on-software-testingautomation (gaoliang641)