Playwright teszt

React

A Playwright segítségével futtathat egyetlen tesztet, egy tesztcsomagot vagy az összes tesztet. A tesztek futtathatók egy böngészőben vagy a –project kapcsolóval több böngészőben is.

Telepítés

A teszteléshez fel kell telepíteni a Playwright-ot: npm init playwright@latest
Csak a csomag telepítése meglévő projekthez: npm install -D @playwright/test majd npx playwright install

Az npx letölti a legfrissebb telepítőt, és néhány beállítást el kell végezni:

  • JavaScriptet vagy TypeScriptet szeretnél?
  • Hol legyenek a tesztek? (alapértelmezetten: tests mappa)
  • Szeretnél-e GitHub Actions munkafolyamatot?
  • Végül letölti a böngészőket is (ez több száz MB is lehet). A saját mappájában található böngészőket használja!

Kezdetben érdemes a npx playwright codegen parancsot kipróbálni, ami legenerálja az éppen megfigyelt elemhez az elérési lehetőséget. ( npx playwright codegen http://weboldal )

Alapvető Parancsok (CLI)

npx playwright test: Összes teszt futtatása (alapértelmezetten headless, azaz háttérben).

npx playwright test –ui: Interaktív UI mód megnyitása (idővonal, hálózati forgalom, debug).

npx playwright test –headed: Látható böngészőablakban futtatja a teszteket.

npx playwright codegen : Kódgenerátor megnyitása (rögzíti, amit kattintasz).

npx playwright show-report: Az utolsó futtatás HTML riportjának megnyitása.

npx playwright test sajat.spec.js Megadott nevű teszt futtatása (lehet ts és js fájl is)

Alap Szintaxis (Teszt felépítése)

A tesztfájlok általában .spec.js vagy .test.js kiterjesztésűek.

Lokátorok (Elemek kiválasztása)

A Playwright a felhasználói szemmel látható elemeket részesíti előnyben (Locators). A lokátor egy olyan objektum, amely bármikor képes megtalálni egy elemet az oldalon. A Seleniummal ellentétben a lokátor nem egy statikus elem, hanem egy „útmutató”: ha az elem eltűnik, majd újra megjelenik (pl. egy React frissítés miatt), a Playwright automatikusan újra megkeresi. Dokumentáció.

  • page.getByRole() – elem keresése explicit és implicit akadálymentességi attribútumok alapján.
  • page.getByText() – elem keresése szöveges tartalom alapján.
  • page.getByLabel() – űrlapvezérlő elem keresése a hozzá tartozó címke szövege alapján.
  • page.getByPlaceholder() – beviteli mező keresése a helyőrző szöveg alapján.
  • page.getByAltText() – elem (általában kép) keresése a szöveges alternatívája alapján.
  • page.getByTitle() az elem címattribútuma alapján történő megkereséséhez.
  • page.getByTestId() az elem data-testid attribútuma alapján történő megkereséséhez (más attribútumok is konfigurálhatók).

Akciók (Interakciók)

Minden akció async, tehát await kell eléjük!

  • Kattintás: await page.getByRole('button').click();
  • Gépelés: await page.locator('input').fill('Szöveg');
  • Checkbox bepipálás: await page.getByLabel('Feltételek').check();
  • Várakozás (ritkán kell): await page.waitForTimeout(1000); (Kerülendő, az auto-wait jobb!)

Assertions (Ellenőrzések)

Az expect függvényt használjuk az eredmények validálására. A legtöbb async, így kell eléjük az await.