ViraStack
  • Akademi
  • Hakkında
  • Destek
Genel BakışKaynaklarKatkı
ViraStack

Frontend ekosistemi: ücretsiz rehberler, proje şablonları, AI kuralları ve form bileşenleri.

Ürünler

  • ViraStack Start
  • ViraStack AI
  • ViraStack Mask
  • ViraStack Password
  • ViraStack Guide

Keşfet

  • Akademi
  • Hakkında
  • Marka
  • Destek

© 2026 ViraStack.

Açık kaynak · MIT

Playwright

01 / 10

Kurulum

Uçtan uca testin yeri, Playwright'ı bir Next.js projesine eklemek, playwright.config.ts alanları, webServer ile production build'i test etmek ve testleri çalıştırmak.

Uçtan Uca Test Nedir?

Vitest dersleri bir component'i ya da hook'u tek başına, JSDOM içinde test eder. Uçtan uca (end-to-end, E2E) test ise uygulamanın tamamını gerçek bir tarayıcıda çalıştırır: sayfa açılır, kullanıcı gibi tıklanır, yazılır ve ekranda görünen sonuç doğrulanır. Sunucu, veritabanı, yönlendirme ve cookie'ler de işin içindedir.

Component testi (Vitest)Uçtan uca test (Playwright)
OrtamJSDOM, tek componentGerçek tarayıcı, tüm uygulama
HızMilisaniyelerSaniyeler
Yakaladığı hataComponent mantığıParçaların birlikte çalışması, yönlendirme, oturum
SayısıÇokAz, kritik akışlar için

Martin Fowler test piramidinde uçtan uca testleri en üste koyar: en değerli güveni verirler ama en yavaş ve en kırılgan olanlardır. Bu yüzden sayıları az tutulur; her ayrıntı alttaki hızlı testlerle sınanır.1

Playwright, Microsoft'un geliştirdiği açık kaynak test aracıdır. Chromium, Firefox ve WebKit'i tek bir API ile yönetir; testleri paralel ve varsayılan olarak görünmez (headless) tarayıcıda çalıştırır.2

Kurulum

Playwright'ın desteklediği Node.js sürümleri 22, 24 ve 26'dır.2 Mevcut bir Next.js projesinin kök klasöründe şu komutu çalıştırın:

$ npm init playwright@latest

Komut birkaç soru sorar: TypeScript mi JavaScript mi, testlerin klasörü (varsayılan tests), GitHub Actions iş akışı eklensin mi, tarayıcılar indirilsin mi. Komutu daha sonra tekrar çalıştırmak mevcut testleri silmez.2

Oluşan dosyalar:

playwright.config.ts         # Yapılandırma
tests/
  example.spec.ts            # Örnek test
.github/workflows/playwright.yml   # İstediyseniz CI iş akışı

package.json'a @playwright/test eklenir. .gitignore'a test çıktıları yazılır: test-results/, playwright-report/, blob-report/, playwright/.cache/ ve playwright/.auth/.

İpucu

Next.js dokümanı hazır bir başlangıç da sunar: npx create-next-app@latest --example with-playwright. Bu rehberde mevcut projeye eklemeyi öğreniyoruz.3

Tarayıcıları sonradan indirmek ya da yalnızca birini kurmak için:

$ pnpm dlx playwright install chromium

playwright.config.ts

Oluşan dosyanın sadeleştirilmiş hali ve her alanın görevi:4

// playwright.config.ts
import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  testDir: "./tests",
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: "html",
  use: {
    baseURL: "http://localhost:3000",
    trace: "on-first-retry",
  },
  projects: [
    { name: "chromium", use: { ...devices["Desktop Chrome"] } },
    { name: "firefox", use: { ...devices["Desktop Firefox"] } },
    { name: "webkit", use: { ...devices["Desktop Safari"] } },
  ],
});
AlanGörevi
testDirTest dosyalarının aranacağı klasör
fullyParallelAynı dosyadaki testleri de paralel çalıştırır
forbidOnlyCI'da unutulmuş test.only varsa çalıştırmayı durdurur
retriesBaşarısız testi kaç kez tekrar deneyeceği; yerelde 0, CI'da 2
workersAynı anda kaç işçi süreci çalışacağı
reporterSonucun biçimi; html tıklanabilir bir rapor üretir
use.baseURLpage.goto("/login") yazabilmek için kök adres
use.traceHangi çalıştırmada trace kaydedileceği (bkz. Trace ile hata ayıklama)
projectsAynı testleri farklı tarayıcı ya da ayarlarla çalıştırmak

Varsayılan olarak her test 30 saniye, her web-first assertion 5 saniye bekler.5

Projeler ve default: false

Her proje aynı testleri farklı bir ayarla çalıştırır. Playwright 1.64 ile bir projeyi yapılandırmada tutup varsayılan çalıştırmadan çıkarabilirsiniz. Yerelde yalnızca Chromium çalışır; CI'da hepsi:6

projects: [
  { name: "chromium", use: { ...devices["Desktop Chrome"] } },
  { name: "firefox", use: { ...devices["Desktop Firefox"] }, default: false },
  { name: "webkit", use: { ...devices["Desktop Safari"] }, default: false },
],
$ pnpm dlx playwright test --project="*"

webServer: Uygulamayı Playwright Başlatsın

Testler çalışan bir uygulamaya ihtiyaç duyar. webServer alanı, testlerden önce sunucuyu başlatır ve adres yanıt verene kadar bekler.7 Next.js dokümanı testleri production build'e karşı çalıştırmayı önerir; uygulama gerçekte nasıl çalışacaksa öyle test edilir.3

webServer: {
  command: "npm run build && npm run start",
  url: "http://localhost:3000",
  reuseExistingServer: !process.env.CI,
  timeout: 180_000,
},

reuseExistingServer yerelde zaten çalışan bir sunucu varsa onu kullanır; CI'da her zaman yenisini başlatır. Build birkaç dakika sürebileceği için timeout'u varsayılan 60 saniyeden yüksek tutun.7

İpucu

Test yazarken her seferinde build beklemek yavaştır. Bir terminalde npm run dev açık tutun; reuseExistingServer sayesinde Playwright onu kullanır. Göndermeden önce dev sunucusunu kapatıp production build ile bir kez çalıştırın.

Testleri Çalıştırmak

$ pnpm dlx playwright test

Sık kullanılan seçenekler:28

KomutNe yapar
npx playwright test tests/login.spec.tsTek dosya
npx playwright test -g "giriş"Başlığında "giriş" geçen testler
npx playwright test --project=chromiumTek proje
npx playwright test --headedTarayıcıyı görünür açar
npx playwright test --uiUI Mode: izleme, adım adım zaman yolculuğu
npx playwright show-reportSon HTML raporunu açar

HTML rapor yalnızca test başarısız olunca kendiliğinden açılır.2

VS Code kullanıyorsanız Playwright eklentisi testleri editörden çalıştırmayı, kesme noktası koymayı ve locator seçmeyi sağlar.9

Kendin Dene

  • Bir Next.js projesine Playwright'ı ekleyin. tests/example.spec.ts'i çalıştırın, sonra npx playwright show-report ile raporu açın.

  • Firefox ve WebKit projelerine default: false ekleyin. npx playwright test ve npx playwright test --project="*" çıktılarındaki test sayısını karşılaştırın.

  • webServer'ı ekleyin, baseURL'i ayarlayın. Örnek testteki adresi page.goto("/") yapın.

  • npx playwright test --ui ile UI Mode'u açın ve bir testi adım adım izleyin.

Detaylı Öğrenmek İçin

  • Resmi doküman: Playwright, "Installation"; kurulum, oluşan dosyalar ve ilk çalıştırma.2

  • Resmi doküman: Next.js, "How to set up Playwright with Next.js"; production build'e karşı test önerisi.3

  • Yazı: Martin Fowler, "Test Pyramid"; uçtan uca testlerin neden az tutulduğu.1

Kaynaklar

  • 1MakaleMartin Fowler

    : — 1 Mayıs 2012. Uçtan uca testlerin maliyeti ve piramidin katmanları.

  • 2DokümanPlaywright: Installation

    `npm init playwright`, oluşan dosyalar, Node.js sürümleri, rapor ve UI Mode.

  • 3DokümanNext.js: How to set up Playwright with Next.js

    `with-playwright` örneği ve production build'e karşı test önerisi.

  • 4DokümanPlaywright: Configuration

    `defineConfig` alanları ve `use` seçenekleri.

  • 5DokümanPlaywright: Timeouts

    Test için 30 saniye, assertion için 5 saniye varsayılanı.

  • 6DokümanPlaywright: Release notes 1.64

    `TestProject.default`, `--project="*"` ve `--shuffle`.

  • 7DokümanPlaywright: Web server

    `webServer`, `reuseExistingServer` ve `timeout`.

  • 8DokümanPlaywright: Running and debugging tests

    Dosya, başlık ve proje filtreleri.

  • 9DokümanPlaywright: VS Code

    Eklentiyle test çalıştırma ve hata ayıklama.

Bu sayfayı düzenle

Son güncelleme tarihi: 22 Ekim 2026

Sonraki adım02. İlk test ve locator'lar