QASmartTestLab
QASmartTestLab
Genel Bakış
QASmartTestLab, Selenium 4 ve JUnit 5 üzerine kurulu bir Cucumber (JVM) framework’üdür. Cucumber senaryoları dinamik stratejiyle paralel çalıştırır; her thread ThreadLocal bir factory üzerinden kendi WebDriver’ını alır, böylece senaryolar hiçbir zaman aynı tarayıcıyı paylaşmaz. Aynı suite, lokal Chrome’da (driver’lar WebDriverManager ile) ya da remote bir Selenium Grid veya Selenoid üzerinde koşar; seçim, çalışma anında bir system property ya da ortam değişkeniyle yapılır. Page object’ler, step definition’lar, runner’lar ve destek sınıfları birbirinden ayrıdır; neyin koşacağını tag’ler belirler ve her koşum HTML, JSON ve JUnit XML raporlarıyla bir konsol özeti üretir. Feature suite’leri UI girişini ve XML doğrulama fixture’larıyla gelen ve giden ödeme mesajlarını kapsar.
Paralel Senaryolar · Thread-Safe WebDriver
Lokal ya da Remote Grid/Selenoid Koşumu
Koşum Başına 4 Rapor Formatı
Page Object Model · Tag Bazlı Koşum
Zorluk & Çözüm
Zorluk
Test otomasyon ekipleri genellikle framework karmaşıklığı, zayıf bakım kolaylığı ve projeler arasında standardizasyon eksikliği ile mücadele eder. Birçok framework teknik borca dönüşür, yeni ekip üyeleri için anlaşılması zorlaşır ve uygulama büyüdükçe ölçeklenmesi güçleşir.
Çözüm
QASmartTestLab’ı birkaç net kural üzerine kurdum: UI için page object’ler, sadece orkestrasyon yapan step definition’lar, thread başına bir WebDriver ve kod yerine çalışma anında konfigürasyon. Suite tek bir property ile lokal tarayıcı ile remote Grid arasında geçiş yapar, senaryoları güvenle paralel koşar ve neyin koşacağını tag’lerle seçer.
Temel Özellikler
Ödeme Akışı Feature’ları
UI girişi ve gelen/giden ödeme mesajları için, senaryo başına XML doğrulama fixture’larıyla Cucumber suite’leri.
Çalışma Anı Konfigürasyonu
Lokal Chrome ya da remote Selenium Grid/Selenoid; system property veya ortam değişkeniyle seçilir, driver’ları WebDriverManager yönetir.
Temiz Mimari
Page object’ler, step definition’lar, runner’lar ve destek sınıfları ayrı; her biri tek bir sorumluluğa sahip.
Paralel Çalıştırma
Cucumber, thread başına ThreadLocal WebDriver ile senaryoları paralel (dinamik strateji) koşar; senaryolar tarayıcı paylaşmaz.
Galeri
Kullanılan Teknolojiler
Etiketler
Sonuçlar & Etki
Her koşumda HTML, JSON, JUnit XML ve bir konsol özeti
Lokal Chrome ya da remote Selenium Grid/Selenoid; kod değişikliği olmadan geçiş
Thread-safe WebDriver, Cucumber’ın senaryoları eşzamanlı koşmasını sağlar