Playwright: Automatizované testovanie pre moderné webové aplikácie

Playwright od Microsoftu je dnes prvou voľbou pre tímy, ktoré chcú spúšťať E2E testy v Chromium, Firefoxe aj WebKite jedným príkazom. Verzia 1.50+ priniesla rozšírenú podporu pre .NET a Javu, vylepšený Trace Viewer pre vizuálne debugovanie a Playwright MCP server, ktorý sprístupňuje prehliadač AI asistentom. V článku ti priblížime inštaláciu od nuly, prvý test za 10 minút, porovnanie so Selenium, Cypress a Robot Frameworkom a integráciu do CI/CD pipeline cez GitHub Actions.

Testerka pracuje s notebookom a vizuálnym rozhraním Playwright testov.
Playwright automatizované testovanie

V článku sa dozvieš:

    Playwright testing pokrýva celý stack od E2E testov cez komponentové testy až po vizuálnu regresnú analýzu. Kde Playwright skutočne vyniká, a kde sú hranice jeho použitia?

    Čo je Playwright?

    Playwright je open-source framework na automatizované testovanie (end-to-end testing) webových aplikácií, vyvíjaný spoločnosťou Microsoft. Poskytuje jednotné API pre ovládanie prehliadačov Chromium, Firefox a WebKit – test napíšeš raz a spustíš ho vo všetkých troch prehliadačoch bez zmeny kódu.

    Playwright v číslach:

    • GitHub: ~78 000 hviezdičiek, 670+ prispievateľov – komunita, ktorá rastie raketovo
    • npm stiahnutia: 30 – 35 miliónov týždenne – aktívne ho používajú tisíce projektov
    • podporované jazyky: JavaScript/TypeScript, Python, Java, .NET (C#) – rovnaké testy naprieč tímami
    • vývoj: 150+ vydaní za rok, neustále nové funkcie a opravy

    Playwright je navrhnutý špecificky na testovanie webových aplikácií v rôznych prehliadačoch a platformách. Na rozdiel od starších nástrojov pracuje priamo s prehliadačovým protokolom (CDP pre Chromium, vlastný protokol pre Firefox/WebKit), čo mu poskytuje rýchlostnú výhodu a stabilitu.

    Vieš, že…

    …jednou z najvýznamnejších noviniek je podpora pre Playwright MCP (Model Context Protocol) – štandard, ktorý umožňuje AI asistentom (napr. GitHub Copilot, Claude) priamo ovládať prehliadač a interagovať s webovými stránkami? To otvára nové možnosti pre AI-asistovaný Playwright E2E testing a automatizáciu.

    Výhody používania Playwright

    Prečo si Playwright získal dôveru testerov po celom svete? Pozrime sa na vlastnosti, ktoré ho odlišujú od konkurencie.

    • Podpora pre viacero prehliadačov

    Playwright podporuje Chromium, Firefox a WebKit (základ pre Safari). Testy napíšeš raz a spustíš ich vo všetkých troch prehliadačoch bez potreby meniť testovací kód. Táto cross-browser kompatibilita je kľúčová pre tímy, ktoré musia garantovať funkčnosť aplikácie pre širokú bázu používateľov.

    • Auto-waiting mechanizmus

    Playwright automaticky čaká, kým sú elementy pripravené na interakciu. Tento mechanizmus sa nazýva automatické čakanie (auto-waiting). Namiesto manuálneho nastavovania časových limitov (sleep, explicit waits) Playwright sleduje skutočný stav elementu – či je viditeľný, klikateľný, načítaný. Výsledok je dramaticky menej nestabilných testov (tzv. flaky tests). Je to základná konkurenčná výhoda oproti Selenium.

    Príklad: keď zavoláš page.click(‚#submit‘), Playwright automaticky počká, kým je tlačidlo zobrazené, enabled a stabilné – bez jediného riadku extra kódu.

    • Playwright MCP a AI integrácia

    Playwright MCP je server, ktorý sprístupňuje Playwright schopnosti AI asistentom cez štandardizovaný protokol. AI agent môže prostredníctvom Playwright ovládať prehliadač, vykonávať akcie na webových stránkach a spúšťať testy bez manuálnej asistencie.

    Playwright AI využitie v praxi:

    • AI-asistované generovanie testov z prirodzeného jazyka
    • Automatická explorácia webovej aplikácie a detekcia regresií
    • Integrácia s CI/CD pipeline cez AI orchestráciu

    13 min.AI asistenti na testovanie softvéru: Využitie, výhody, vytvorenie

    Využitie AI asistentov na testovanie softvéru a prácu v QA tímoch

    Zisti, ako ti AI na testy dokáže zjednodušiť testovanie softvéru. Pozri si návod na vytvorenie a praktické tipy pre testerov.

    • Trace Viewer a debugging

    Nástroj na sledovanie behu testov (Trace Viewer) zaznamenáva každý krok testu – vrátane screenshotov, sieťových požiadaviek, konzolových logov a DOM stavu. Pri zlyhaní testu otvoríš trace súbor a vidíš presne, čo sa stalo a prečo. Spustenie je jednoduché:

    npx playwright show-trace trace.zip

    Pre vizuálnu regresnú analýzu môžeš Playwright kombinovať s Applitools – AI nástrojom, ktorý porovnáva screenshoty a detekuje vizuálne zmeny automaticky.

    • Rýchlosť a paralelné spúšťanie

    Playwright je navrhnutý pre rýchlosť. Vďaka paralelnému spúšťaniu testov (parallel execution) a izolovaným browser contexts môžeš spúšťať desiatky testov súčasne bez zdieľania stavu. V porovnaní so Selenium sú časy spustenia testov typicky o 30 – 50 % kratšie. Pre cloudové spúšťanie testov na reálnych zariadeniach môžeš použiť platformy ako BrowserStack, ktoré natívne podporujú Playwright.

    Playwright vs Selenium

    Selenium je dlhodobo najpoužívanejším frameworkom na automatizáciu prehliadačov. Aké má výhody a nevýhody v porovnaní s Playwright?

    Kritérium Playwright Selenium 4.x
    Architektúra Natívny protokol (CDP / WebSocket) WebDriver protokol (HTTP)
    Rýchlosť Rýchlejší (priamy protokol) Pomalší (HTTP overhead)
    Auto-waiting Áno, vstavané Nie (manuálne waits)
    Cross-browser Chromium, Firefox, WebKit Všetky vrátane IE, Edge, Safari
    Jazyky JS/TS, Python, Java, .NET Java, Python, C#, Ruby, JS…
    Mobilné testovanie Emulácia (nie reálne zariadenia) Appium integrácia
    Zrelosť Relatívne nový (2020+) Osvedčený (2004+), veľká komunita
    Legacy projekty Migrácia potrebná Ideálny – nemeň čo funguje

    Ukážka rovnakého testu: Selenium (Python) vs Playwright (JavaScript):

    Selenium (Python):

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    
    driver = webdriver.Chrome()
    driver.get('https://example.com/login')
    driver.find_element(By.ID, 'email').send_keys('test@example.com')
    driver.find_element(By.ID, 'password').send_keys('heslo123')
    WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, '[data-testid="login-btn"]'))
    ).click()
    assert '/dashboard' in driver.current_url
    driver.quit()

    Playwright (JavaScript):

    const { test, expect } = require('@playwright/test');
    
    
    test('prihlásenie užívateľa', async ({ page }) => {
      await page.goto('https://example.com/login')
      await page.fill('#email', 'test@example.com');
      await page.fill('#password', 'heslo123');
      await page.click('[data-testid="login-btn"]');
      await expect(page).toHaveURL('/dashboard');
    });

    Kedy zvoliť Selenium: Selenium ostáva relevantným pre legacy projekty s rozsiahlou existujúcou test suite alebo pre tímy, ktoré testujú v IE alebo na reálnych mobilných zariadeniach cez Appium.

    Kedy zvoliť Playwright: Playwright je lepšia voľba pre nové projekty – je rýchlejší, stabilnejší a má modernejšie API.

    Playwright vs Cypress

    Cypress 13+ priniesol viaceré novinky – component testing, lepšiu multi-browser podporu a vylepšený debug zážitok. Napriek tomu zostávajú medzi Playwright a Cypress zásadné rozdiely.

    Kritérium Playwright Cypress 13+
    Prehliadače Chromium, Firefox, WebKit (Safari) Chrome, Firefox, Edge (nie Safari)
    Jazyky JS/TS, Python, Java, .NET JavaScript/TypeScript
    Asynchrónnosť Natívny async/await Vlastný retry-ability mechanizmus
    Paralelné spúšťanie Vstavané, bez extra konfigurácie Platená funkcia (Cypress Cloud)
    Mobilná emulácia Áno (viewport + UA) Obmedzená
    Trace Viewer Áno, pokročilý Nie (screenshots/video)
    Playwright MCP Áno Nie
    Učiaca krivka Strmšia Plochšia – rýchly začiatok

    Performance porovnanie na reálnom projekte (200 E2E testov):

    Nástroj Konfigurácia Čas behu Náklady
    Playwright 4 workers, lokálne ~2 min 10 sek zdarma
    Cypress (bez Cloud) sériovo ~6 min 40 sek zdarma
    Cypress Cloud paralelne, 4 stroje ~2 min 30 sek platená licencia

    Playwright dosahuje porovnateľné časy ako Cypress Cloud bez akýchkoľvek dodatočných nákladov. Pre tímy, ktoré nechcú platiť za paralelizáciu, je to výrazná výhoda.

    Kedy zvoliť Playwright: Ak potrebuješ cross-browser pokrytie vrátane Safari/WebKit, pracuješ v Pythone/Jave, alebo potrebuješ paralelné spúšťanie bez platenej cloudovej licencie.

    Kedy zvoliť Cypress: V prípade, že tím je primárne JS/TS, preferuješ jednoduché nastavenie a rýchly onboarding, a Safari podpora nie je kritická.

    Playwright vs Robot Framework

    Robot Framework je open-source nástroj na automatizované testovanie, ktorý používa keyword-driven prístup – testy sa píšu ako čitateľné tabuľky kľúčových slov, nie ako programovací kód. Je obľúbený najmä v tímoch, kde testeri nemajú silné programátorské zázemie.

    Kritérium Playwright Robot Framework
    Prístup Code-driven (programovací kód) Keyword-driven (tabuľky)
    Jazyk testov JS/TS, Python, Java, .NET Robotí jazyk (+ Python knižnice)
    Technická náročnosť Vyššia – potrebné programovanie Nižšia – vhodný pre non-tech testerov
    Rýchlosť Rýchlejší Pomalší
    Browser automation Natívna Cez knižnice (SeleniumLibrary, Browser)
    Komunita Rýchlo rastúca Zavedená, najmä v Európe
    Vhodné pre SDET, vývojári, automation inžinieri Manuálni testeri, akceptačné testy

    Kedy zvoliť Playwright: Ak tím tvoria z väčšiny programátori alebo SDET inžinieri, Playwright je efektívnejšia voľba.

    Kedy zvoliť Robot Framework: Robot Framework vyniká tam, kde business analytici alebo manuálni testeri potrebujú písať a čítať testy bez hlbokých programátorských znalostí.

    25 min.Mladá žena s headsetom pracuje pri dvoch monitoroch s otvoreným kódom, sústredene testuje softvér v modro osvetlenom priestore.

    Automatizované testovanie softvéru: Spoznaj proces a top nástroje na automatizáciu

    Zaujíma ťa oblasť testovania a chceš sa dozvedieť viac o automatizovanom testovaní? V našom článku ti prezradíme všetky dôležité informácie.

    Ako začať s Playwright: inštalácia a prvý test

    Tento Playwright tutoriál ti ukáže, ako nastaviť Playwright od nuly a spustiť prvý E2E test – celé nastavenie ti zaberie menej ako 10 minút. Predpoklady: Node.js verzia 18+, npm alebo yarn.

    Krok 1: Inštalácia (playwright install)

    Najjednoduchší spôsob je použiť init príkaz, ktorý automaticky stiahne prehliadače a vytvorí konfiguráciu:

    npm init playwright@latest

    Príkaz sa ťa opýta na preferovaný jazyk (JS/TS), umiestnenie testov a či chceš pridať GitHub Actions workflow. Playwright stiahne binárky Chromium, Firefox a WebKit (~300 MB).

    Krok 2: Prvý test

    Po inštalácii vytvoríš test súbor (napr. tests/example.spec.ts):

    import { test, expect } from '@playwright/test';
    
    
    test('overenie titulku stránky', async ({ page }) => {
      await page.goto('https://playwright.dev/');
      await expect(page).toHaveTitle(/Playwright/);
    });
    
    
    test('klik na odkaz Docs', async ({ page }) => {
      await page.goto('https://playwright.dev/');
      await page.getByRole('link', { name: 'Docs' }).click();
      await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
    });

    Krok 3: Spustenie a výsledky

    # Spustiť všetky testy
    npx playwright test
    
    
    # Spustiť s UI módom (vizuálny debugger)
    npx playwright test --ui
    
    
    # Generovať HTML report
    npx playwright show-report

    Krok 4: Integrácia s CI/CD (GitHub Actions)

    # .github/workflows/playwright.yml
    name: Playwright Tests
    on: [push, pull_request]
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 20
          - run: npm ci
          - run: npx playwright install --with-deps
          - run: npx playwright test
          - uses: actions/upload-artifact@v4
            if: always()
            with:
              name: playwright-report
              path: playwright-report/

    Ak pracuješ na full-stack testing a chceš pokryť viacero vrstiev aplikácie naraz, Playwright sa výborne hodí ako E2E vrstva v kombinácii s unit testami. Pre komponentové testovanie existujú aj špecializované riešenia ako Netflix SafeTest. Ak preferuješ BDD prístup (Behavior Driven Development), Playwright môžeš kombinovať s Cucumber frameworkom pre čitateľnejšie testy.

    Vieš, že…

    …playwright install –with-deps stiahne prehliadače aj všetky systémové závislosti pre bezhlavý (headless) režim na Linux serveroch – vrátane CI/CD prostredí?

    Best Practices pri používaní Playwright

    Playwright ponúka niekoľko vzorových postupov, ktoré výrazne zjednodušujú dlhodobú údržbu testovacieho kódu. Tu sú tie najdôležitejšie.

    Page Object Model – štruktúra kódu

    Vzor objektov stránok (Page Object Model, POM) je osvedčený prístup pre organizáciu testovacieho kódu. Každá stránka alebo komponent má svoju vlastnú triedu, ktorá zapuzdruje lokátory a akcie:

    // pages/LoginPage.ts
    export class LoginPage {
      constructor(private page: Page) {}
    
    
      async login(email: string, password: string) {
        await this.page.fill('#email', email);
        await this.page.fill('#password', password);
        await this.page.click('[data-testid="login-btn"]');
      }
    }

    Playwright fixtures a znovupoužiteľný setup

    Mechanizmus konfigurácie testov (fixtures) umožňuje zdieľať spoločný setup – napríklad prihlásenie – medzi testami bez duplicity kódu:

    // fixtures.ts
    export const test = base.extend({
      loggedInPage: async ({ page }, use) => {
        await page.goto('/login');
        await page.fill('#email', 'test@example.com');
        await page.fill('#password', 'heslo');
        await page.click('#submit');
        await use(page);
      },
    });
    

    Paralelné spúšťanie

    Playwright spúšťa testy paralelne na úrovni súborov predvolene. Pre jemnejšiu kontrolu nastav workers v playwright.config.ts:

    // playwright.config.ts
    export default defineConfig({
      workers: process.env.CI ? 2 : 4,
      fullyParallel: true,
    });
    

    Integrácia s test management nástrojmi

    Výsledky Playwright testov môžeš automaticky sledovať a reportovať v test management nástrojoch – napríklad v Testomatio alebo Zephyr, ktoré ponúkajú priamu integráciu s Playwright.

    Vizuálne regresné testovanie

    Pre vizuálne regresné testovanie môžeš Playwright kombinovať s nástrojmi ako Applitools – AI detekcia vizuálnych zmien. Playwright sám o sebe podporuje screenshot comparison cez expect(page).toHaveScreenshot().

    Recommend

    Odporúčame ti…

    Pri novom projekte začni priamo s Page Object Model štruktúrou – aj keď máš na začiatku len 5 testov. Pridanie POM neskôr, keď test suite narastie, si vyžaduje zásadný refaktoring.

    Z praxe v msg life Slovakia:

    Playwright používame pri testovaní webových aplikácií pre poisťovníctvo – konkrétne na E2E testy zákazníckeho portálu. Auto-waiting mechanizmus výrazne znížil počet flaky testov v CI/CD pipeline, kde sme predtým mali pravidelné problémy so Selenium a explicitnými časovými limitmi. Ak ťa zaujíma kariéra v automatizovanom testovaní, pozri si naše voľné pracovné pozície v testingu.

    FAQ: Najčastejšie kladené otázky o Playwright

    Čo je Playwright a na čo slúži?

    Playwright je open-source framework na automatizované E2E testovanie webových aplikácií od Microsoftu. Slúži na automatizáciu akcií v prehliadači – klikanie, vypĺňanie formulárov, overovanie obsahu – a na verifikáciu, že aplikácia funguje správne vo všetkých hlavných prehliadačoch.

    Je Playwright lepší ako Selenium?

    Pre nové projekty áno – Playwright je rýchlejší, má vstavané auto-waiting a modernejšie API. Selenium ostáva relevantný pre legacy projekty s rozsiahlou existujúcou test suite, pre tímy v Jave/Ruby, alebo kde je potrebná integrácia s Appium pre mobilné testovanie.

    Aké programovacie jazyky Playwright podporuje?

    Playwright podporuje štyri jazyky: JavaScript/TypeScript, Python, Java a .NET (C#). Každý jazyk má vlastnú knižnicu s rovnakými funkciami a pravidelnou aktualizáciou.

    Ako nainštalovať Playwright?

    Najjednoduchší spôsob je príkaz npm init playwright@latest, ktorý nastaví projekt, stiahne prehliadače a vytvorí konfiguráciu. Vyžaduje Node.js 18+.

    Čo je Playwright MCP a ako ho použiť?

    Playwright MCP (Model Context Protocol server) umožňuje AI asistentom (napr. GitHub Copilot, Claude) priamo ovládať prehliadač cez Playwright. Inštaluje sa príkazom npm install @playwright/mcp. Primárne využitie: AI-asistované generovanie testov, exploratívne testovanie a automatická analýza webových stránok.

    Dá sa Playwright použiť na mobilné testovanie?

    Playwright podporuje emuláciu mobilných zariadení – viewport, user agent, geolokáciu, dotyky. Pre testovanie na skutočnom hardware odporúčame cloud platformy ako BrowserStack, ktoré podporujú Playwright a natívnu integráciu BrowserStack Playwright.

    Playwright – štandard pre moderné E2E testovanie

    Playwright sa za niekoľko rokov stal štandardom pre moderné automatizované testovanie webových aplikácií. Jeho silné stránky – auto-waiting, cross-browser pokrytie, Trace Viewer a Playwright MCP s AI integráciou – ho robia ideálnou voľbou pre tímy, ktoré chcú rýchle, stabilné a udržateľné testy. Ak pracuješ na novom projekte alebo uvažuješ o migrácii zo Selenium, Playwright je jasná voľba.

    O autorovi

    Katarína Kučáková

    Software Test Engineer

    Moja cesta k testovaniu softvéru sa začala v roku 2019 až po štúdiu ekonómie a pracovných skúsenostiach v iných odvetviach. To mi pomohlo vnímať IT svet v rôznych súvislostiach. Ten totiž ponúka neustále nové výzvy, pre ktoré rada hľadám riešenia. Obľubujem oddych pri čítaní, turistiku alebo lyžovanie. LinkedIn

    Daj nám o sebe vedieť