🛠️ Gerçek Hayat — E-Commerce Test Senaryosu
Gerçek Hayat — E-Commerce Test Senaryosu: E2E test senaryosu yazmak, Java'da entegrasyon testi yazmakla aynı mantık üzerine kuruludur: izole unit değil, gerçek bağımlılıklarla bi
E2E test senaryosu yazmak, Java'da entegrasyon testi yazmakla aynı mantık üzerine kuruludur: izole unit değil, gerçek bağımlılıklarla birlikte bir kullanıcı akışını uçtan uca doğrularsın. E-ticaret senaryosu bunun en somut örneğidir: giriş → ürün arama → sepete ekleme → ödeme bir funnel'dır ve bu funnel'ın her adımı birbirinin ön koşuludur. Peki unit testler var zaten, neden saatler süren tarayıcı testlerine gerek var? Çünkü "ürün sepete eklendi" iddiasını unit test backend mantığını izole ederek doğrular; tarayıcı testi ise "kullanıcı sepet simgesini gördü, sayım güncellenemiştir, ödeme sayfasına geçilebildi" gibi frontend state'ini doğrular — bunların ikisi bambaşka şeyleri test eder. Java'da Page Object Model (POM) kullandığında, her sayfa bir class olur ve test kodu presentation layer'dan ayrılır; aynı pattern Python'da page class + fixture ile, TypeScript'te ise Playwright'ın Page Object fixture sistemiyle hayata geçer. QA açısından gerçek risk: e-ticaret sitesinde ödeme adımı test edilmemişse, "sepete ekle" düğmesi çalışıyor ama ödeme butonu broken olsa bile CI yeşil kalır — bu tür bir bug production'da revenue kaybına yol açar ve son kullanıcı raporlayana kadar kimse fark etmez.
Senaryo: automationexercise.com E2E Testi
automationexercise.com, Selenium pratiği için tasarlanmış ücretsiz bir test sitesidir. Aşağıdaki senaryoyu gerçek tarayıcıda çalıştırabilirsiniz.
Java — Page Object Model ile E2E Test
Java — LoginPage.java (Page Object)
Micro Lab: Selenium — Wait stratejisi
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Java — E2E Test Senaryosu
Python — Pytest + Selenium E2E Test
Python — conftest.py (Pytest Fixtures)
Micro Lab: Selenium — UI Aksiyonlari
Adim Adim: Selenium — UI Aksiyonlari
Locator ile elementi bul (By.ID, By.CSS veya By.XPath)
WebDriverWait ile elementin tiklanabilir oldugunu dogrula