🎭 QA: Playwright & CI
QA: Playwright & CI: Playwright'ı Docker'da koşturmak, deneyi değil laboratuvarın tamamını kargolamaktır: resmi image tarayıcı binary'lerini, sistem fontlarını ve OS kütüphaneler
Playwright'ı Docker'da koşturmak, deneyi değil laboratuvarın tamamını kargolamaktır: resmi image tarayıcı binary'lerini, sistem fontlarını ve OS kütüphanelerini tam sürümleriyle dondurur — CI'da testinin gördüğü piksel, lokalde gördüğün pikselin aynısıdır. Peki 'npm install' neden yetmez — Playwright sürümünü zaten sabitliyor ya? Çünkü testinin davranışı npm'in KURMADIĞI şeylere de bağlıdır: sistem seviyesi Chromium bağımlılıkları, font render'ı, timezone ve locale — bir Java ekibinin CI'da 'agent'ta hangi Java 17 varsa o' demek yerine tam JDK image'ını sabitlemesiyle aynı sebep. QA kazancı, test otomasyonunun en pahalı cümlesini emekliye ayırmaktır — 'flaky, rerun'da geçiyor': CI tarayıcın lokaldekiyle bit-bit aynı olduğunda kırmızı test hava durumu olmaktan çıkar, kanıta dönüşür.
Docker'da Playwright Testleri
Docker'da Playwright — lokale hiçbir şey kurmadan!
Pratik: Playwright testlerini rapor kalıcı olacak şekilde çalıştır
Proje klasörünü /app olarak mount et, çalışma dizinini /app yap, rapor klasörünü ayrıca host'a bağla.
Container Tabanlı QA Koşumu
Tarayıcılar, test framework ve bağımlılıklar image içinde sabitlenir.
App, DB ve Selenium/Grid gibi bağımlılıklar aynı network üzerinde ayağa kalkar.
Healthcheck veya retry olmadan testler erken başlar ve connection refused hatası üretir.
Test runner container içinden app servisine container adıyla erişir; localhost tuzağına düşmez.
JUnit/HTML raporları volume ile host'a yazılır; container silinse de kanıt kalır.
Docker üzerinde güvenilir Selenium/Grid test koşumu sırasını diz.
Hub veya router servisini başlat
Chrome/Firefox node container'larını aynı network'e bağla