PageObject

PageObject (з англійської «об'єкт сторінки») шаблон проєктування, що використовується при написанні автоматизованих тестів[1], який дає змогу абстрагуватись від окремих елементів HTML і інкапсулювати їх у функції доступу до елементів інтерфейсу вищого рівня, як їх бачить користувач. PageObject є об'єктом ООП, і містить методи, на основі яких створюється DSL для керування застосунком на основі якої пишуть варіанти тестування. Хоча в назві міститься слово «сторінка», один PageObject не обов'язково відповідає одній сторінці, він відповідає певній частині інтерфейсу, можливою правильнішою назвою була б Panel Object, але поточна назва вже стала поширеною.[2]

Цей шаблон уперше застосували в проєкті WebDriver, який пізніше об'єднався з Selenium.[3]

Переваги

  • Розділення логіки роботи та представлення
  • Зменшення дублювання коду для пошуку елементів керування застосунком
  • При змінах інтерфейсу, що не зачіпають логіки, потрібно буде змінити лише PageObject, а не логіку тестів.[1]

Структура

Page Object зазвичай містить лише код для доступу до елементів керування і не містить ніяких тестових припущень. Єдині перевірки, які здійснюються під час створення об'єкта — це те, що інтерфейс та елементи керування на ньому завантажились і відобразились коректно.[1]

З елементами керування можна або взаємодіяти, або отримувати від них інформацію. Наприклад, галочка може відображатись у змінну типу boolean

Приклади

Цей паттерн можна реалізувати на різних об'єктно орієнтованих мовах. Існують реалізації на Java[4], JavaScript[5], Python[6], Ruby[7]


Див. також

Посилання

  1. Test Design Considerations — Selenium Documentation. Процитовано 11 березня 2016.
  2. Фаулер, Мартін. PageObject. martinfowler.com. Процитовано 11 березня 2016.
  3. Page Objects in Python. The Pragmatic Bookshelf. Процитовано 20 квітня 2016.
  4. Set up Page Object Model (POM) in Selenium Automation Framework. TOOLSQA. Процитовано 20 квітня 2016.
  5. Protractor - end to end testing for AngularJS. Процитовано 12 березня 2016.
  6. 6. Page Objects — Selenium Python Bindings 2 documentation. Процитовано 20 квітня 2016.
  7. UI Tests – Introducing a simple DSL. CheezyWorld. Процитовано 20 квітня 2016.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.