Está en la página 1de 9

Automatización de Aplicaciones WEB

Contenido

• Introducción teórica a Page Object Model

• Estructura de un proyecto POM

• Implementando Page Object Model

• Beneficios de implementación de POM


Introducción teórica a Page Object Model

Un patrón de diseño es una solución reutilizable a un problema recurrente en la ingeniería de software.

Es un patrón de diseño que representa a una pagina com.store.pages

web o sus componentes en una Clase, mejora la WebPage WebPage

reutilización y evita la duplicación de código en la HomePage.java LoginPage.java

ejecución de las pruebas, luego esta clases es usada


desde la lógica de la prueba. com.store.tests

Test Case 1
Selenium POM BaseTest.java
LoginTest.java

Top design patterns for test automation frameworks

Automatización de Aplicaciones Web: Page Object Model


Estructura de un proyecto POM

Non POM Structure POM Based Structure

Class A Class A

WebElement +
WebElement +
Method
Method

Class B
Test Methods
Test Methods

Automatización de Aplicaciones Web: Page Object Model


Estructura de un proyecto POM

Orden de ejecución de Test


LoginTest
BaseTest
• setup()
doLogin… ()
• doLogin … ()
doLoginFail .. ()
• tearDown()
Setup

Orden de ejecución de Test


RegisteTest
• setup()
tearDown Test Methods • registerNewAccount ()
• tearDown()

Automatización de Aplicaciones Web: Page Object Model


Implementando Page Object Model

By usernameInput = By.name("username");
LoginPage By passwordInput = By.name("password");
By submitButton = By.id(”register");

public LoginPage(WebDriver driver) { … }


WebElement +
Method public void with(String username, String password) { …}

public boolean sucessLogin() { … }

@Test @BeforeMethod
LoginTest void testLoginSuccess() { BaseTest void setup() { ….}

Test Methods } Methods @AfterMethod


void teardown() { …}

Automatización de Aplicaciones Web: Page Object Model


Implementando Page Object Model

RegisterPage
BaseTest
WebDriver driver;

WebDriver driver; RegisterPage (WebDriver driver )

RegisterTest
public RegisterPage(WebDriver
@BeforeMethod Extends Test Methods driver){
void setup() { ….} this.driver2 = driver;
}
@AfterMethod
void teardown() { …}

registerPage = new RegisterPage(driver);

Automatización de Aplicaciones Web: Page Object Model


Beneficios de Implementación de POM

• Facilita el mantenimiento del código (el flujo en la interfaz de usuario está separado de la verificación).

• Código sea legible (los métodos tendrán nombres más realistas).

• Reutilización del código (el repositorio de objetos es independiente de los casos de prueba).

• El código se reduce en numero de líneas y se optimiza.

Automatización de Aplicaciones Web: Page Object Model

También podría gustarte