Tagi w testach automatycznych

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

Prezentacja

Tagi w testach automatycznych

Tagi w testach automatycznych

Tagi w testach automatycznych

Tagi w testach automatycznych

Tagi w testach automatycznych

Dodatkowe materiały

TIP: W tej lekcji bazujemy na kodzie jaki otrzymaliśmy w lekcji Playwright i Page Object Model / Rozwiązanie – agregujemy akcje.

Cały kod potrzeby do realizacji tematów z tej lekcji znajdziesz też w naszym repozytorium: playwright_automatyzacja_wprowadzenie.

A dokładniej bazujemy na projekcie, który znajdziesz w katalogu S03_pom / L11_pom_solution.

Na nagraniu pokazuje jak skorzystać z takiego projektu 😉

Tagi w Playwright służą do kategoryzacji testów, umożliwiając łatwe filtrowanie i zarządzanie testami na podstawie określonych kryteriów. Można dodawać tagi do pojedynczych testów lub grup testów podczas ich deklarowania.

Aby dodać tag do testów można użyć 2 sposobów.
Pierwszy polega on na dodaniu w tytule testu @ a następnie ciągu znaków (bez spacji).
Drugi polega na dodaniu specjalnego obiektu z konfiguracją tagów (tzw. TestDetails).

W tej lekcji skupimy się na pierwszym, starszym sposobie. Zobaczmy jak on wygląda na przykładach.

Przykładowo zapis:

successful login with correct credentials @smoke

oznacza dodanie do testu tagu @smoke.

successful login with correct credentials @smoke @login

oznacza dodanie do testu tagu @smoke oraz @login.

Dodatkowe materiały

Bazujemy na kodzie lekcji L11_pom_solution

Uruchamianie testów, które zawierają w nazwie ciąg znaków @login:

npx playwright test --grep "@login"

Powyższa komenda spowoduje uruchomienie testów:

successful login with correct credentials @smoke @login

unsuccessful login with too short username @login

unsuccessful login with too short password @login

Uruchamianie testów, które nie zawierają w nazwie ciągu znaków @login:

npx playwright test --grep-invert "@login"

Powyższa komenda spowoduje uruchomienie testów:

simple payment @integration @payment

quick payment with correct data @integration @pulpit

successful mobile top-up @integration @pulpit

correct balance after successful mobile top-up @integration @pulpit

Uruchamianie testów, które zawierają w nazwie ciąg znaków @payment lub @login:

npx playwright test --grep "@payment|@login"

Powyższa komenda spowoduje uruchomienie testów:

successful login with correct credentials @smoke @login

unsuccessful login with too short username @login

unsuccessful login with too short password @login

simple payment @integration @payment

Uruchamianie testów, które zawierają w nazwie ciąg znaków @integration oraz @pulpit:

npx playwright test --grep "(?=.*@integration)(?=.*@pulpit)"

Powyższa komenda spowoduje uruchomienie testów:

quick payment with correct data @integration @pulpit

successful mobile top-up @integration @pulpit

correct balance after successful mobile top-up @integration @pulpit
TIP: Tagi omawiamy dokładniej w zaawansowanym kursie Profesjonalny framework do testów z Playwright, który wchodzi w skład Programu Testy automatyczne z Playwright.

Przedstawiamy tam koncept tagów we frameworku w zestawieniu z wymaganiami biznesowymi, różne sposoby ich uruchamiania oraz prezentacje w raportach.

O czym pamiętać przy tagach?

  • Bądź konsekwentny

    Używaj konsekwentnych nazw i konwencji dla tagów w całym projekcie, aby ułatwić filtrowanie i raportowanie.

  • Utrzymuj prostotę

    Ogranicz ilość różnych tagów, aby uniknąć nadmiernego komplikowania systemu testów i utrudniania ich zarządzania.

  • Spisz ustalenia

    Utrzymuj aktualną dokumentację dotyczącą tego, jakie tagi są używane i co oznaczają, co pomoże nowym użytkownikom zrozumieć logikę tagowania.

  • Wykorzystuj do grupowania

    Taguj testy według typu, priorytetu lub funkcjonalności, co pomoże w szybkim selekcjonowaniu odpowiednich testów w zależności od kontekstu (np. szybkie testy, testy regresji, testy poszczególnych modułów itp.).

Linki

10 komentarzy

      1. Wygląda, że jest identyczny jak w tej lekcji, różnica z tego co widzę jest w imporcie oraz tym, że w moim eksportuje od razu defineConfig, a w kodzie z lekcji widzę, jest zdefiniowanie konfigu, a następnie eksport.

        import { defineConfig, devices } from "@playwright/test";
        export default defineConfig({
          testDir: "./tests",
          timeout: 30 * 1000,
          expect: {
            timeout: 5000,
          },
          fullyParallel: true,
          forbidOnly: !!process.env.CI,
          retries: process.env.CI ? 2 : 0,
          workers: process.env.CI ? 1 : undefined,
          reporter: "html",
          use: {
            actionTimeout: 0,
            baseURL: "https://demo-bank.vercel.app/",
            trace: "retain-on-failure",
            video: "retain-on-failure",
          },
          projects: [
            {
              name: "chromium",
              use: { ...devices["Desktop Chrome"] },
            },
          ],
        });
        
        Avatar Mateusz
        1. Faktycznie już widze o który tag chodzi 🙂
          W szczegółach danego testu w raporcie wyświetla się dodatkowy tag, który jest powiązany z nawa projektu, czyli tym co zadeklarujemy w polu name (w naszym przypadku to chromium):

          projects: [
          {
          name: “chromium”,
          use: { …devices[“Desktop Chrome”] },
          },
          

          Aktualnie nie znam łatwego pominięcia tego tagu, a do głowy przychodzą mi 2 bardziej zaawansowane opcje:
          – napisanie własnego reportera, który będzie pomijał ten tag
          – skrypt do modyfikacji pliku wyników po testach

  1. Zauważyłem, że w Materiałach dodatkowych jest mały bład 🙂 jest mowa o uruchomieniu testów, które zawierają w nazwie ciąg znaków @login a w komendzie jest uruchomienie z ciągiem @pulpit

    npx playwright test --grep "(?=.*@integration)(?=.*@pulpit)"
    
    Avatar Seweryn Soltys
  2. Hej, w sekcji dodatkowych materiałów jest napisane:

    Uruchamianie testów, które zawierają w nazwie ciąg znaków @payment oraz @login:
    npx playwright test –grep “(?=.*@integration)(?=.*@pulpit)”

    To chyba powinno być w takim wypadku npx playwright test –grep “(?=.*@payment)(?=.*@login)” ?

    Avatar Tomasz Pondo
    1. Hej, dzięki za zwrócenie uwagi!
      Faktycznie wkradła się mi tam literówka – powinno być integration w zdaniu i wtedy zgadza się z poleceniem i wynikiem 😉
      Dzięki za zwrócenie uwagi – poprawione!

      Krzysiek Kijas Krzysiek Kijas

Dodaj komentarz

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