IT Systems Integration Consultant
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.

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?
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:
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.
…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.
Prečo si Playwright získal dôveru testerov po celom svete? Pozrime sa na vlastnosti, ktoré ho odlišujú od konkurencie.
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.
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 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:
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.
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.
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.
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á.
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í.
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.
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).
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();
});
# 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
# .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.
…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í?
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.
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"]');
}
}
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);
},
});
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,
});
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.
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().
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.
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.
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.
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.
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+.
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.
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 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.
Súvisiace články