Sobes.tech
Junior — Middle

El tudná magyarázni a Page Object minta fogalmát és alkalmazását a tesztautomatizálásban?

sobes.tech MI

Válasz az MI-től

A Page Object minta egy tervezési minta az automatizált tesztelésben, amely szerint minden weboldalhoz vagy komponenshez külön objektumot (osztályt vagy modult) hozunk létre.

A fő ötlet, hogy ebben az objektumban kapszulázzuk az oldal összes elemét és az azokkal való interakció módszereit. Ez javítja a tesztek olvashatóságát, újrahasznosíthatóságát és karbantartását.

Például, ahelyett, hogy minden tesztben közvetlenül írnánk szelektorokat és műveleteket, létrehozunk egy osztályt:

class LoginPage {
  constructor(driver) {
    this.driver = driver;
    this.usernameInput = '#username';
    this.passwordInput = '#password';
    this.loginButton = '#login';
  }

  async login(username, password) {
    await this.driver.type(this.usernameInput, username);
    await this.driver.type(this.passwordInput, password);
    await this.driver.click(this.loginButton);
  }
}

A tesztekben így használjuk:

const loginPage = new LoginPage(driver);
await loginPage.login('user', 'pass');

Ez a megközelítés megkönnyíti a karbantartást: ha megváltozik az oldal szerkezete, csak a Page Object-et kell frissíteni, nem az összes tesztet.