Eğitim Hakkında
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.