🧪 QA: Selenium Grid

QA: Selenium Grid: Docker, test ortamını yıkayıp tekrar kullanman gereken bir bardak yerine, tek kullanımlık bir kağıt bardağa çevirir. Taze browser mı lazım?

Docker, test ortamını yıkayıp tekrar kullanman gereken bir bardak yerine, tek kullanımlık bir kağıt bardağa çevirir. Taze browser mı lazım? Tek komutla Chrome ayağa kalkar. Temiz veritabanı mı lazım? Tek komutla bir kez kullanılıp atılan, sıfırdan bir PostgreSQL gelir. Peki neden var olan test veritabanını her seferinde yeniden kurmak yerine basitçe sıfırlayan bir script kullanmıyoruz? Çünkü bir "reset" script'i sadece SENİN bildiğin satırları temizler — önceki başarısız bir testten kalan bir index, schema sapması veya unutulmuş bir geçici tablo görünmeden hayatta kalır ve bir sonraki koşumu kirletir. Bu, statik bir Java test fixture'ını @Test metodları arasında yeniden initialize etmeden tekrar kullanmakla aynı tuzaktır: state görünmeden sızar. QA tarafındaki somut kazanç şu: "benim makinemde çalışıyordu" tipi flaky bir test, neredeyse her zaman CI agent'ındaki Chrome sürümünün veya DB schema'sının senden sessizce sapmış olmasından kaynaklanır — tek kullanımlık container'lar bu değişkeni tamamen ortadan kaldırır.

Docker Compose ile Selenium Grid

Tam Selenium Grid — Hub + Chrome + Firefox

Micro Lab: Compose service siralama

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: Compose service siralama

Network/volume belirle

Ortak network ve volume ihtiyacini belirle

DB/cache gibi bagimliliklari tanimla

Healthcheck veya retry ile hazirligi kanitla

App servisini dogru hostname ile bagla

Test runner ve rapor volume adimini calistir

Selenium Grid'in Compose ile başlatılma bağımlılık sırasını diz.

selenium-hub önce ayağa kalkar (bağımlılığı yok)