Successfully reported this slideshow.
Your SlideShare is downloading. ×

процедурный и объектный подходы создания Page object'ов при автоматизированном тестировании web приложений

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 29 Ad

More Related Content

Similar to процедурный и объектный подходы создания Page object'ов при автоматизированном тестировании web приложений (20)

Recently uploaded (20)

Advertisement

процедурный и объектный подходы создания Page object'ов при автоматизированном тестировании web приложений

  1. 1. 1CONFIDENTIAL Процедурный и объектный подходы создания PageObject'ов при автоматизированном тестировании web-приложений. Сергей Мишанин 4 апреля 2015
  2. 2. 2CONFIDENTIAL Page Object – что это? Page Object – это паттерн проектирования, который позволяет отделять логику выполнения тестов от их реализации. Одного стандартного решения для реализации этого паттерна нет. Мы рассмотрим несколько самых распространённых подходов.
  3. 3. 3CONFIDENTIAL Подходы к созданию PageObject’ов Процедурный1 Смешанный (c использованием Selenium PageFactory)2 Объектный3 - FieldDecorator - MTAF by Me - HTML Elements by Yandex
  4. 4. 4CONFIDENTIAL Вклассе, описывающем страницу, создаём методы, реализующие все необходимые нам действия. https://code.google.com/p/selenium/wiki/PageObjects 1. Процедурный подход
  5. 5. 5CONFIDENTIAL 1. Процедурный подход
  6. 6. 6CONFIDENTIAL 1. Процедурный подход
  7. 7. 7CONFIDENTIAL 1. Процедурный подход PRO CONTRA • Дескрипторы небольших страниц можно легко и быстро реализовать • Для больших и сложных страниц количество методов увеличивается экспоненциально • Велик риск дублирования кода • Сложно поддерживать
  8. 8. 8CONFIDENTIAL Определяем элементы страницы как поля типа WebElement, инициализируем их с использованием класса PageFactory и автоматически получаем доступ ко всему спектру действий, предоставляемому интерфейсом WebElement. Таким образом мы можем избавиться от простейших методов взаимодействия с элементами. http://habrahabr.ru/post/134462/ 2. Смешанный подход
  9. 9. 9CONFIDENTIAL 2. Смешанный подход
  10. 10. 10CONFIDENTIAL 2. Смешанный подход PRO CONTRA • Избавляет от необходимости описывать простейшие методы, которые просто выполняют стандартные операции над WebElement’ами • Далеко не всегда взаимодействие с элементом на странице можно описать вызовом одного метода интерфейса WebElement.
  11. 11. 11CONFIDENTIAL Далеко не всегда простейшее действие с точки зрения логики текста можно выполнить с помощью вызова одного метода интерфейса WebElement. К тому же набор методов интерфейса WebElement зачастую избыточен. Поэтому было бы неплохо описывать элементы на странице с помощью собственных классов, которые бы реализовывали методы для выполнения простейших операций именно так, как нам нужно. 3. Объектный подход
  12. 12. 12CONFIDENTIAL 3.1. FieldDecorator
  13. 13. 13CONFIDENTIAL Интерфейс FieldDecorator используется фабрикой для декорирования объектов в классе страницы. По умолчанию используется класс DefaultFieldDecorator, но мы можем переопределить его и проинициализировать поля, описывающие элементы страницы объектами, оборачивающими WebElement и реализующими операции взаимодействия с элементами нужным нам образом. http://internetka.in.ua/selenium-fielddecorator/ http://internetka.in.ua/selenium-fielddecorator-2/ 3.1. FieldDecorator
  14. 14. 14CONFIDENTIAL 3.1. FieldDecorator
  15. 15. 15CONFIDENTIAL 3.1. FieldDecorator
  16. 16. 16CONFIDENTIAL 3.1. FieldDecorator
  17. 17. 17CONFIDENTIAL 3.1. FieldDecorator
  18. 18. 18CONFIDENTIAL 2. Смешанный подход PRO CONTRA • Проблема с простейшими действия над элементами решена • А если мы используем на странице сложные элементы (виджеты)? • Мы всё ещё вынуждены писать методы для работы с несколькими элементами на странице (например, метод для заполнения формы данными)
  19. 19. 19CONFIDENTIAL Фреймворк HTML Elements от Яндекса реализует объектный подход к созданию дескрипторов страниц. https://tech.yandex.ru/html-elements/ Имеет готовые реализации для таких типов элементов как: 3.2. Yandex HTML Elements • TextInput • Button • Link • TextBock • File Input • Checkbox • Radio • Select • Form • Table
  20. 20. 20CONFIDENTIAL 3.1. FieldDecorator
  21. 21. 21CONFIDENTIAL 2. Смешанный подход PRO CONTRA • Полноценная реализация объектного подхода • Есть готовые классы, описывающие базовые типы элементов • Библиотеку типов элементов можно расширять самостоятельно, в том числе описывать сложные элементы (виджеты и т.п.) • Элементы не обладают единым интерфейсом, поэтому в случае изменения типа элемента нужно будет править код во всех местах его использования • Имеющийся класс Form умеет работать только со стандартными элементами • При этом web-элементы на форме идентифицируются только по атрибуту name • Автор тестов обязан сам позаботиться о порядке заполнения полей. • Класс Table может работать только со стандартно размеченными таблицами
  22. 22. 22CONFIDENTIAL Mishanin’s Test Automation Framework Фреймворк, реализующий объектный подход, который изначально создавался как единый инструмент для работы автоматизаторов на нескольких параллельных проектах, разрабатывающих крупные бизнес-приложения. В связи с этим основной задачей было реализовать простую и удобную возможность работать с большим количеством сложных формам и таблиц. Позже эти наработки были успешно применены на других проектах. 3.3. MTAF
  23. 23. 23CONFIDENTIAL Ключевые особенности: 3.3. MTAF • Классы элементов реализуют единый интерфейс • Всем элементам присваивается уникальный идентификатор • Благодаря единому интерфейсу методы заполнения формы и считывания данных из формы универсальны, и будут работать с любыми типами элементов. • Автору тестов не нужно заботиться о порядке заполнения полей на форме. • Реализован механизм event handler’ов для элементов, за счёт чего можно расширять функционал стандартных классов-контроллеров • Контроллер для таблиц сам по себе не имеет привязки к разметке, с его помощью можно описать практически любую сущность, выглядящую на странице как таблица
  24. 24. 24CONFIDENTIAL 3.3. MTAF
  25. 25. 25CONFIDENTIAL 3.3. MTAF
  26. 26. 26CONFIDENTIAL 3.3. MTAF
  27. 27. 27CONFIDENTIAL 3.3. MTAF
  28. 28. 28CONFIDENTIAL 3.3. MTAF PRO CONTRA • Минимум ограничений для расширения фреймворка • Малая зависимость тестов от особенностей реализации элементов • Нет в открытом доступе • Подготовка модели приложения может потребовать более высоких навыков программирования
  29. 29. 29CONFIDENTIAL ??? Вопросы

×