⚡ Paralel · Cross-Browser · CI/CD
Paralel · Cross-Browser · CI/CD: Playwright'ın paralel test sistemi, Java'daki java.util.concurrent.ForkJoinPool mimarisinin tarayıcı test dünyasındaki karşılığıdır: işi bağımsız
Playwright'ın paralel test sistemi, Java'daki java.util.concurrent.ForkJoinPool mimarisinin tarayıcı test dünyasındaki karşılığıdır: işi bağımsız alt görevlere böler, her worker kendi izole browser context'inde çalışır ve paylaşılan state olmadığı için thread-safety sorunları da oluşmaz. Peki Selenium Grid zaten paralel koşumu sağlamıyor muydu? Selenium Grid, uzak bir sunucu ağını yönetmek için ciddi altyapı kurulumu gerektiriyordu: Hub + Node konfigürasyonu, Docker container yönetimi, driver versiyonlarını tüm node'larda güncel tutmak. Playwright'ta workers: 4 satırı playwright.config.ts'ye eklersen ve testler izole yazılmışsa paralel çalışım otomatik etkinleşir — ek altyapı gerekmez. Cross-browser testi ise aynı test paketinin Chromium, Firefox ve WebKit projelerine eşzamanlı uygulanmasıdır; başka bir dilde her browser için ayrı konfigürasyon yazman gerekirdi. QA gerçeği: PR başına "tüm testler çalışsın" politikası uygulanıyorsa 500 testin 40 dakika sürmesi bir PR'ı bloke eder; 8 worker ile bu süre yaklaşık 5 dakikaya iner ve geliştiriciler testi bypass etmek yerine bekleyerek PR'ı merge eder — bu, ekip kültüründe testi gerçek bir kalite kapısına dönüştürür.
30 dakika süren bir test paketi her commit'te göz ardı edilir; 3 dakika süren bir paket her commit'te koşulur. Bunu sağlayan iki mekanizma var: (1) paralel worker'lar — testleri birden fazla CPU çekirdeğine bölmek, (2) sharding — testleri birden fazla CI makinesine bölmek. CI/CD entegrasyonu da bunları otomatik tetikleyen pipeline'dır.
workers ayarı, Maven Surefire/Failsafe plugin'inin forkCount + parallel="methods" ayarına karşılık gelir. test.describe.serial() → JUnit 5'in @TestMethodOrder ile sıralı zorunlu testleri. --shard=1/4 → CI'da matrix build'lerle testleri makineler arası bölmenin Playwright'taki built-in karşılığı (Selenium Grid'de bunu manuel kurman gerekirdi).
Paralel Çalışma — Worker Ayarları
Micro Lab: Playwright — Aksiyonlar
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
⏱️ Serial vs Paralel (4 Worker) — Aynı 4 Test Dosyası
Her dosya ~8 saniye sürüyor. Tek worker'da sırayla çalıştığında toplam süre toplanır; 4 worker'da paralel çalıştığında en uzun dosya kadar sürer.
4 dosya × 8s, sırayla
Paralel — workers: 4
4 dosya aynı anda, en uzunu kadar sürer
Cross-Browser & Mobil Emulation
devices['Pixel 5'] Tek Satırda Aslında Neyi Simüle Eder?
devices['Pixel 5'] tek satırda…