Teraz Ty – podstawowy POM w testach

TIP: Ta lekcja jest częścią rozwijanego Programu Testy Automatyczne z Playwright 🎭

Prezentacja

Teraz Ty - podstawowy POM w testach

Dodatkowe materiały

Bazujemy na kodzie lekcji L04_pom_negative_tests

Treść zadania

Zrefaktoryzuj testy automatyczne pulpitu (z pliku pulpit.spec.ts) oraz płatności (z pliku payment.spec.ts), aby wykorzystywały one wzorzec POM.

Podczas rozwiązywania tego zadania wzoruj się na naszej poprzedniej lekcji, gdzie refaktoryzowaliśmy testy logowania z pliku login.spec.ts.

Wykorzystaj tutaj całą zdobytą we wcześniejszych lekcjach wiedzę 🙂

Na końcu ej lekcji znajdziesz podpowiedzi do tego zadania, ale zachęcam Cię do samodzielnej implementacji i tylko posiłkowania się podpowiedziami 😉

Reasumując:

  • zamodeluj stronę Płatności jako payment.page.ts
  • wykorzystaj zamodelowaną stronę Płatności w testach payment.spec.ts
  • zamodeluj stronę Pulpitu jako pulpit.page.ts
  • wykorzystaj zamodelowaną stronę Pulpitu w testach pulpit.spec.ts
  • w testach Logowania, w login.spec.ts, również wykorzystywany jest fragment strony Pulpitu – przy sprawdzeniu nazwy użytkownika po zalogownaniu. Wykorzystaj tutaj wcześniej przygotowany obiekt strony pulpit.page.ts
UWAGA: W testach Płatności, w payment.spec.ts, w sekcji beforeEach wykorzystujemy lewe boczne menu do wejścia na stronę Płatności.

Dokładniej jest to linia:

await page.getByRole('link', { name: 'płatności' }).click();

w beforeEach:

test.beforeEach(async ({ page }) => {
    const userId = loginData.userId;
    const userPassword = loginData.userPassword;


    await page.goto('/');
    const loginPage = new LoginPage(page);
    await loginPage.loginInput.fill(userId);
    await loginPage.passwordInput.fill(userPassword);
    await loginPage.loginButton.click();


    await page.getByRole('link', { name: 'płatności' }).click();
  });

⚠ W tym zadaniu pozostaw ten element w obecnej postaci i nie wykonuj tutaj refaktoryzacji (tylko w beforeEach). ⚠.

Możesz się zastanowić nad rozwiązaniem, jak zamodelować takie menu, ale o tym elemencie opowiem Ci w kolejnych lekcjach 🙂

Podpowiedzi

Kroki do wykonania

Kroki jakie musisz wykonać:

  1. na początku refaktoryzacji oraz po zmianie każdego z testów – uruchom dany test, aby zobaczyć, czy kończy się powodzeniem,
  2. wprowadzenie wzorca POM zacznij od przygotowania pliku (modułu) w katalogu pages – np payment.page.ts oraz pulpit.page.ts
  3. plik ten powinien zawierać klasę, której nazwa opiera się na modelowanej stronie – np PaymentPage albo PulpitPage
Nie zapomnij! Asynchroniczność akcji
  1. o await przed wykonywaniem poszczególnych akcji na lokatorach w testach – identycznie jak w testach logowania w login.spec.ts:
    await loginPage.loginInput.fill(userId);
    
Nie zapomnij! Na sam koniec...
  1. na końcu uruchom wszystkie testy, aby zobaczyć, czy kończą się powodzeniem,
  2. w testach Logowania, w login.spec.ts, wykorzystywany jest fragment strony Pulpitu – przy sprawdzeniu nazwy użytkownika po zalogownaniu. Lokator tego elementu umieść w obiekcie strony pulpit.page.ts jako userNameText

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *