ОСОБЛИВОСТІ СТРУКТУРИ ПРОЄКТУ ІЗ ВИКОРИСТАННЯМ ПАТЕРНІВ ПРОЄКТУВАННЯ PAGE OBJECT ТА PAGE FACTORY
DOI:
https://doi.org/10.32689/maup.it.2022.4.2Ключові слова:
проєкт, патерн проєктування, Page Object, Page Factory, авто-тест, веб-елемент, веб-додаток, фреймворкАнотація
Стаття присвячена дослідженню особливостей структури проєктів із використанням патернів проєктування Page Object та Page Factory для написання авто-тестів. У якості мови програмування обрано об’єктно-орієнтовану мову програмування Java, а проєкти створено в IntelliJ IDEA. Розглянуто тест кейс створення нового акаунту на сайті. Написано відповідні авто-тести із використанням патернів проєктування PageObject та PageFactory та із застосуванням програмних бібліотек Selenium-java, WebDriverManager та фреймворку TestNG. Інформація, яка є необхідною для успішного створення нового акаунту на сайті, зчитується з файлу, який має розширення properties та зберігається у папці resources. Сформано звіт успішності проходження представленого авто-тесту. Кожну сторінку веб-додатку представлено окремим класом, в якому знаходяться методи, що будуть працювати з ними. Веб-елементи є прихованими (private) та зберігаються окремо у проєкті, де використано лише патерн проєктування Page Object. Методи класів сторінок повертають нові об’єкти класів сторінок відповідно до написаного тестового сценарію. Скрипт авто-тестів відокремлено від веб-елементів та методів, що імітують дії користувача. Також використовуючи анотації @BeforeSuite, @AfterSuite та @BeforeClass, створені методи, які відповідають початку та завершенню кожного тестового набору. Наведено структури проєктів із використанням патерну Page Object та Page Factory. Так як патерн проєктування Page Factory є добре оптимізованим та використовується для ініціалізації об’єктів сторінки або для створення об’єкта самої сторінки, він спрощує структуру проєкту. Веб-елементи відповідних сторінок зберігаються у відповідних класах, в не окремо від них.
Посилання
Yoni Flenner. Page Object Model-Make It Simple, Use Abstraction. URL: https://blog.testproject.io/2017/07/16/page-object-model/ [in English]
Graham D., Black R., Erik van Veenendal. Foundations of Software Testing: ISTQB Certification, 4 th Edition. United Kingdom : EMEA, 2018. 273 p. [in English]
Anton Angelov, “Design Patterns for High-Quality Automated Tests: High-Quality Test Attributes and Best Practices”. United States: Kindle Edition, 2021. 348 p. [in English]
Erich Gamma, Richard Helm, Ralph Johnson, John Vissdes, "Design Patterns: Elements of Reusable Object-Oriented Software". United States: Addison-Wesley, 1994. 395 p. [in English]
Seretta Gamba, Dorothy Graham, “A Journey through Test Automation Patterns: One team’s adventures with the Test Automation Patterns”. United States: CreateSpace Independent Publishing Platform, 2018. 364 p. [in English]
Page Object Model (POM). URL: https://www.geeksforgeeks.org/page-object-model-pom/ [in English]
Amir Ghahrai. Page Object Model Framework with Java and WebDriver. URL: https://devqa.io/page-objectframework-java-webdriver/ [in English]
Krishna Rungta. Page Object Model (POM) & Page Factory in Selenium. URL: https://www.guru99.com/page-objectmodel-pom-page-factory-in-selenium-ultimate-guide.html [in English]
Selenium and TestNG. URL: https://testng.org/doc/selenium.html [in English]
Gunjan Kaushik, Ravinder Singh. Page Object Model using Page Factory in Selenium WebDriver. URL: https://www.toolsqa.com/selenium-webdriver/page-factory-in-selenium/ [in English]