Powrót do: Praktyczne wprowadzenie do testów automatycznych z Playwright
Tagi w testach automatycznych
Prezentacja
Dodatkowe materiały
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
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
- Oficjalna dokumentacja o działaniu polecenia grep w Playwright
- Lekcja o formatowaniu kodu w VS Code za pomocą prettiera – Prettier, czyli formatter kodu






Obecnie w generowanym raporcie z automatu doklejany jest tag dot. przeglądarki, która jest wykorzystywana – czy jest jakaś opcja by schować ten domyślny tag?
Hej,
Jak wygląda Twoja konfiguracja w playwright.config oraz w testach (pliki spec) które uruchamiasz?
Bo aktualnie na wersji 1.56.1 u mnie lokalnie nie są dodawane dodatkowe tagi, jednak zależa one od kilku ustawień 🙂
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"] }, }, ], });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
Hej, w sekcji “O czym pamiętać przy tagach?” jest dwa razy “Bądź konsekwentny” (chyba że tak ma być)
Hej, to takie mocne podkreślenie konsekwencji 😁
Dzięki za zgłoszenie – zaraz poprawie tę “literówkę”😉
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
Hej, faktycznie jest tutaj błąd w zapisie 🙂 Dzięki wielkie za zgłoszenie – poprawione (z @login na @pulpit) ! 🙂
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)” ?
Hej, dzięki za zwrócenie uwagi!
Faktycznie wkradła się mi tam literówka – powinno być
integrationw zdaniu i wtedy zgadza się z poleceniem i wynikiem 😉Dzięki za zwrócenie uwagi – poprawione!