🧪 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)