Cypress
Cypress, web uygulamalari icin gelistirilmis modern, acik kaynakli bir uctan uca (end-to-end) ve birim test cercevesidir. Gercek tarayici ortaminda calısarak sahte ortam sorunundan kurtulur; zaman yolculugu ozelliği ve otomatik bekleme mekanizmasıyla developer dostu bir test deneyimi sunar. Windows, macOS ve Linux uzerinde calisir; MIT lisansiyla ucretsiz acik kaynakli versiyon mevcuttur.
Temel Özellikler
- Gercek tarayici icerisinde calistirilabilen E2E testler
- Otomatik bekleme mekanizmasi, el ile bekleme komutlari gerektirmez
- Zaman yolculugu (time travel) ile adim adim test tekrari
- Anlık goruntü ve video kaydi
- Ag isteklerini yakalama ve stubbingi
- Birim ve entegrasyon testi destegi
- Cypress Cloud ile test raporlari ve kayitlari
- Kapsamli bir komponent test ortami
Cypress kurulumu nasil yapilir ve ilk test nasil yazilir?
Cypress kurmak icin Node.js kurulu bir projede npm install cypress –save-dev komutunu calistirin. Ardindan npx cypress open komutuyla Cypress Launchpad acilir; ilk acilista ornek testler ve proje yapilandirmasi olusturulur. E2E test icin cypress/e2e klasorunde .cy.js uzantili bir dosya olusturun. describe ve it bloklari icinde cy.visit() ile sayfaya gidin, cy.get() ile elemanlari secin ve should() ile dogrulama yapin. Testleri npx cypress run komutu ile headless modda calistirabilirsiniz; bu mod CI/CD ortamlari icin uygundur.
Cypress testleri flaky oluyor veya takılıp kalıyor
Cypress testlerinde kararsizlik (flakiness) cogu zaman dinamik icerik, animasyon veya ag gecikmesinden kaynaklanir. cy.intercept() ile ag isteklerini denetim altina alarak veri bagimliligini ortadan kaldirabiliriniz; bu, en etkili stabilizasyon yontemidir. cy.wait() ile sabit bekleme eklemek yerine belirli bir elemana beklemeyi tercih edin: cy.get(…).should(…) yapisi kendi icerisinde otomatik bekleme icerir. Uygulamaniz animasyon calisiyorsa test ortami icin CSS animasyonlarini devre disi birakin. Cypress Dashboard uzerinde flaky testlerin gecmisini inceleyerek desenler bulun ve tekrarlanan sorunlari hedefli olarak cozun.
Cypress alternatifleri
Web test otomasyon arac alternatifleri: Playwright, Robot Framework, k6.
- Gerçek tarayıcıda çalışır, güvenilir test sonuçları
- Otomatik bekleme ile flaky test riski azalır
- Zaman yolculuğu ile hata ayıklama kolaylaşır
- Modern JavaScript/TypeScript desteği
- CI/CD entegrasyonu (GitHub Actions, Jenkins)
- MIT lisansıyla tamamen ücretsiz ve açık kaynaklı
- npm gerektirir, klasik kurulum yoktur
- Yalnızca JavaScript/TypeScript ile kullanılır
- Türkçe arayüz desteği yok
- Büyük test suitleri yavaş çalışabilir
- Tarayıcılar arası test için ek yapılandırma gerekir
Cypress End-to-End Testing
İşletim Sistemi: Windows 10 64-bit veya üzeri
RAM: 4 GB (önerilen 8 GB)
Disk: 1 GB
Diğer: Node.js 18+ ve npm gerekir