Cypress ile Test Otomasyonu Eğitimi
Süre 2 Gün (14 Saat)
Eğitim Şekli Online

Eğitim Hakkında

Bu eğitim, JavaScript tabanlı modern test otomasyon aracı Cypress kullanarak, sürdürülebilir, hızlı ve güvenilir test otomasyon süreçlerinin nasıl kurulacağını kapsamlı şekilde ele almaktadır. Strateji belirlemeden CI/CD entegrasyonuna kadar uçtan uca bir yetkinlik kazandırmayı hedefler.

Eğitim İçeriği

Eğitim İçeriği

Modül 1: Strateji, Kurulum ve Temel Etkileşimler

Süre: 4.5 Saat

1.1 Test Otomasyonu Stratejisi ve Planlama

● Hedef Belirleme: Doğru ve yanlış hedeflerin analizi, otomasyon kapsamının belirlenmesi

● ROI Analizi: Otomasyon öncesi ve sonrası maliyet/fayda hesaplaması

● Altyapı ve Mimari: Test ortamlarının hazırlanması ve modern açık kaynak çözümler vs.

ticari araçlar

● Senaryo Seçimi: Hangi testlerin otomasyona uygun olduğunun belirlenmesi

1.2 Cypress Ekosistemi ve Kurulum

● Temeller: Node.js ve NPM yapısının anlaşılması

● Konfigürasyon: cypress.config.js yapılandırması ve proje iskeletinin oluşturulması

● Araçlar: Cypress Test Runner ve Dashboard kullanım detayları

● İlk Adım: Basit bir web sitesinde ilk testin çalıştırılması ve analizi

1.3 Web Öğeleri ve Etkileşim Yönetimi

● Element Analizi: Chrome Developer Tools ile element inspection teknikleri

● Seçici (Selector) Stratejileri:

○ data-* attribute'ları ile Best Practice kullanımı

○ CSS Selectors (ID, class) ve Cypress özel komutları (cy.get, cy.contains, cy.find)

○ XPath yerine kullanılan modern yaklaşımlar

● Aksiyon ve Doğrulama:

○ Etkileşimler: click(), type(), check(), select()

○ Assertions: should(), expect() ile test doğrulamaları

1.4 Atölye: Login ve Form Senaryosu

Süre: 45 Dakika | Uygulama

Katılımcılar aşağıdaki görevi kendi ortamlarında tamamlayacaktır:

● Belirlenen demo sitesi üzerinde Login akışını otomatize edin.

● data-testid gibi kararlı seçiciler kullanın.

● Başarılı ve başarısız giriş denemelerini should ve expect ile doğrulayın.

 

Modül 2: İleri Seviye Teknikler, Senkronizasyon ve Mimari

Süre: 5 Saat

2.1 Senkronizasyon ve Bekleme Stratejileri

● Otomatik Bekleme: Cypress'in dahili retry ve wait mekanizması

● Network İzleme: cy.intercept() ile API çağrılarının ve ağ isteklerinin yönetimi

● Anti-Pattern'ler: cy.wait() (hard wait) kullanımından kaçınma yöntemleri

● Dinamik İçerik: Yüklenmesi zaman alan öğeler ve timeout ayarları

 

2.2 Veri Odaklı Test (Data Driven Testing)

● Fixtures: JSON dosyaları ile test verilerinin yönetimi

● Dinamik Veri: cy.task() ve Faker.js entegrasyonu ile runtime sırasında veri üretimi

● Parametrik Testler: Aynı senaryonun farklı veri setleri ile koşulması

 

2.3 Page Object Model (POM) ve Tasarım Desenleri

● Tasarım Mimarisi: POM nedir? Screenplay Pattern ile farkları nelerdir?

● Implementasyon: Cypress üzerinde sınıf (class) yapısı ile sayfa objelerinin oluşturulması

● Kod Organizasyonu: Custom Commands, reusable functions ve test bakımını kolaylaştıran yapılar

 

2.4 Atölye: E-Commerce POM Dönüşümü

Süre: 60 Dakika | Kapsamlı Uygulama

Bu atölyede, spagetti kod yapısından profesyonel bir mimariye geçiş yapılacaktır:

● Adım 1: E-ticaret sitesine "HomePage", "ProductPage" ve "CartPage" sınıfları oluşturma

● Adım 2: Element locators ve aksiyon metotlarını ilgili sınıflara taşıma.

● Adım 3: Test dosyasını sadece iş mantığını içerecek şekilde refactor etme.

 

Modül 3: BDD, Raporlama ve CI/CD Entegrasyonu

Süre: 4.5 Saat

3.1 BDD ve Cucumber Entegrasyonu

● Gherkin Syntax: Given-When-Then yapısı ile anlaşılır senaryolar yazma

● Entegrasyon: cypress-cucumber-preprocessor kurulumu ve yapılandırması

● Step Definitions: .feature dosyalarını JavaScript kodlarına baglama

 

3.2 Allure Raporlama ve Görselleştirme

● Framework Kurulumu: @shelex/cypress-allure-plugin ve Java JDK 

● Zenginleştirilmiş Raporlar:

            ○ Allure.epic(), Allure.feature() anotasyonlarını kullanma

○ Hata anında otomatik ekran görüntüsü (screenshot) ve video kaydı ekleme

○ Test kategorizasyonu ve allure serve ile rapor sunumu

 

3.3 CI/CD ve Continuous Testing

● Pipeline Entegrasyonu: GitHub Actions üzerinde Cypress testlerinin koşturulması

● İzolasyon: Docker konteynerlerinde test çalıştırma ve ortam bağımsızlığı

● Cross-Browser: Chrome, Firefox, Edge ve Mobil görünüm testleri

 

3.4 Soru-Cevap ve Kapanış

Süre: 30 Dakika

● Gerçek hayat senaryoları üzerine "Case Study" incelemesi

● Flaky testlerden kaçınma ve Best Practices özeti

● Kişisel gelişim kaynakları ve sertifikasyon önerileri

 

Ön Koşullar: Katılımcıların temel düzeyde JavaScript bilgisine sahip olması önerilir.