Cypress ile Test Otomasyonu Eğitimi
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 Süresi: 2 Gün (14 Saat)
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.
Bu eğitimi dilediğiniz zaman şirketinize/ekibinize özel olarak planlamak için bizimle iletişime geçin.
Eğitim ve danışmanlıklarımız hakkında bilgilendirmek için sizi arayalım
Cypress ile Test Otomasyonu Eğitimi
Kurumsal olarak planlayabileceğiniz bu eğitimle şirketiniz/takımınız çalışanlarının gerçek potansiyelini ortaya çıkarın. Bu eğitimin içeriğini ihtiyacınıza özel olarak düzenlemek için bizimle iletişime geçin.