🎭 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