⚙️ CI/CD & Cross Browser Testing
CI/CD & Cross Browser Testing: CI/CD pipeline'ına entegre edilmiş cypress run, kalite kapısı (quality gate) görevi görür: her pull request birleştirilmeden önce tüm testler otoma
CI/CD pipeline'ına entegre edilmiş cypress run, kalite kapısı (quality gate) görevi görür: her pull request birleştirilmeden önce tüm testler otomatik olarak çalışır — tıpkı bir fabrikada montaj hattının sonundaki kalite kontrol istasyonu gibi: ürün kutusuna girmeden önce her bant katında otomatik ölçüm yapılır, standart dışı olan bant dışına düşer ve insanların gözden kaçırdığı %2'lik sapma gün sonunu beklemeden durdurulur. Peki "testleri lokal çalıştırıyorum, neden CI'a da ihtiyaç var?" diye sorabilirsin — çünkü geliştiricinin makinesi tek bir işletim sistemi, tek bir tarayıcı, tek bir ekran çözünürlüğüdür; CI matrisi ise aynı kodu Chrome'da, Firefox'ta ve Edge'de Ubuntu üzerinde aynı anda koşturur. Java'da Maven'in mvn verify hedefi tüm testleri derleme ardından çalıştırır ve hata varsa build'i durdurur — cypress run CI içindeki rolü tam olarak budur. QA için gerçek iş riski şudur: lokal PASS olan bir PR, CI matrisinde Safari/Firefox'ta kırıksa ve o matris eksikse üretimde sadece belirli tarayıcı kullanıcıları etkilenen sessiz bir bug oluşur — tespit edilene kadar müşteri şikayetleriyle bulunur.
cypress open interaktif Test Runner'ı açar — geliştirme sırasında kullanılır. cypress run ise headless (görünmez tarayıcı) modda çalışır ve CI ortamları için tasarlanmıştır. --browser bayrağıyla hangi tarayıcıda çalışacağı seçilir: chrome, firefox, edge veya electron (varsayılan).
GitHub Actions — temel Cypress workflow
Micro Lab: Cypress — Komut zinciri
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Cross Browser Matrix — 3 tarayıcıda paralel
Adim Adim: Cypress — Komut zinciri
cy.get(locator) ile hedef elementi se
Aksiyon komutunu zincirle: .click() / .type("metin") / .select("secenek")
Cypress otomatik retry yapar — 4s icinde komut basarili olmassa fail eder
.should("have.value", "metin") ile DOM degisikligini dogrula
Ayni zinciri CI'da farkli viewport'ta da calistir, responsive kontrol et
Cypress ile UI etkilesimi ve dogrulama sirasi nedir?
Maven Surefire'da forkCount ile aynı makinede birden fazla JVM process'i paralel çalıştırırsın. Cypress'te paralelleştirme CI seviyesinde olur — her "container" ayrı bir CI job'ıdır ve Cypress Cloud, hangi test dosyasının hangi job'a gideceğini akıllıca dengeler (load balancing).