Node.js
E2E test
End-to-end test ve Playwright öğrenirsin.
E2E test (uçtan uca)
Bir E2E testi, uygulamayı gerçek bir tarayıcıda sınamaktır. Tüm zincir sınanır: arayüz, sunucu, veritabanı. Kullanıcının gerçekten ne yapacağı taklit edilir. Bu, en gerçekçi test türüdür; ama en yavaş olanıdır.
Node.js'te Playwright veya Cypress popüler E2E araçlarıdır. Örnek: test("kayıt", async () => { await page.goto("/signup"); await page.fill("#name", "Ayşe"); await page.click("#submit"); await expect(page.locator(".welcome")).toHaveText("Hoş geldin"); });. Bu test, tarayıcıyı açar, kayıt formunu doldurur, submit'e tıklar ve karşılama mesajını doğrular. E2E testler, gerçek kullanıcı senaryolarını uçtan uca sınar. Ama yavaş oldukları için az miktarda yazılırlar; integration ve unit testler çoğunluğu oluşturur.
Playwright akışı
Playwright, tarayıcıyı başlatır, sayfayı açar ve kullanıcı etkileşimlerini taklit eder. Her adım bir await ile beklenir. E2E testleri asenkron olarak çalışır.
Örnek: const { chromium } = require("playwright"); const browser = await chromium.launch(); const page = await browser.newPage(); await page.goto("/"); await browser.close();. Bu, Chromium tarayıcısını başlatır, yeni bir sayfa açar, ana sayfaya gider ve tarayıcıyı kapatır. Playwright, headless (kafasız) modda çalışabilir; bu, ekranda tarayıcı açılmadan testi koşar. CI/CD sistemlerinde bu mod kullanılır. Testler sırasında page.screenshot() ile ekran görüntüsü alınabilir; hata durumunda hatayı görsel olarak incelemek için.
Uygulama Playwright iskeletini yaz
playwright modülünden chromium'u içe aktar. console.log ile "Playwright hazır" yaz.
Örnek çözümü göster
const { chromium } = require("playwright");
console.log("Playwright hazır");
Kendini test et
-
Playwright goto çağrısını tamamla
await page.____("/signup");
Cevabı göster
await page.goto("/signup");
-
Metodu rolüne eşle
- chromium.launch
- Tarayıcıyı başlatır
- browser.newPage
- Yeni sayfa açar
- page.goto
- Sayfaya gider
- page.fill
- Alanı doldurur
-
E2E testi neyi sınar?
page.goto('/signup')
- Tüm zinciri (arayüz, sunucu, veritabanı)
- Yalnızca tek fonksiyonu
- Yalnızca CSS stillerini
- Yalnızca birim davranışı
Cevabı göster
Tüm zinciri (arayüz, sunucu, veritabanı) — E2E testi tüm zinciri sınar.
Sıradaki ders: Özet - İleri test