Le design pattern Page Object
30 novembre 2019

Licence Creative Commons

Le design pattern "page object" est un modèle de conception très populaire qui permet de structurer un code de tests automatisés dans le but d'éviter les problèmes de maintenabilité.




Les méthodes d'une classe de type "page object" correspondent à des actions possibles sur une page. Une "page object" doit fournir des mécanismes pour manipuler, observer et rechercher des éléments d'une page.

Ci-dessous un exemple de ce patron de conception


public class LoginTest extends BaseTest {

    @Test
    public void testLogin() {

        LoginPage loginPage = new LoginPage(this.getWebDriver());
        HomePage homePage = new HomePage(this.getWebDriver());

        loginPage.setUsername("administrator");
        loginPage.setPassword("password");
        loginPage.submit();

        if(homePage.isDisplayed()){
          this.setPassed();
        }

        this.setFailed();
   }
}

Les principaux avantages de ce modèle sont :

  • la réduction de la quantité de code dupliqué
  • la réutilisabilité des classes page object pour différents tests
  • une maintenance plus facile en cas de modification de l'interface utilisateur
  • un code plus lisible et plus compréhensible


Note: Une classe de type "page object" ne représente pas forcément une page entière mais peut représenter un élément significatif d'une page comme par exemple, le header d'une application web.



Références: