React için Playwright'a Başlangıç
Tarayıcı açan, React uygulamasıyla etkileşime giren ve sonuçları doğrulayan Playwright testleri yazın.
React için Playwright'a Başlangıç, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Playwright Nedir?
Playwright, gerçek Chromium, Firefox ve WebKit tarayıcılarını yöneten bir Node.js uçtan uca test çatısıdır. Yönlendirme, kimlik doğrulama ve API etkileşimleri dâhil olmak üzere React uygulamasının tüm akışlarını test etmek için idealdir.
Kurulum
Playwright'ı ve tarayıcı ikili dosyalarını tek bir komutla kurun.
# npm init playwright@latest
# or
# npx playwright install
# playwright.config.ts is created automaticallyReact için Playwright Yapılandırması
Testleri çalıştırmadan önce geliştirme sunucunuzu başlatacak şekilde Playwright'ı yapılandırın.
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './e2e',
use: { baseURL: 'http://localhost:5173' },
webServer: {
command: 'npm run dev',
url: 'http://localhost:5173',
reuseExistingServer: !process.env.CI,
},
});İlk Testinizi Yazma
Testlerde tarayıcı sayfası nesnesi olan page kullanılır. Bir URL'ye gidin, öğelerle etkileşime geçin ve sonucu doğrulayın.
import { test, expect } from '@playwright/test';
test('home page shows heading', async ({ page }) => {
await page.goto('/');
await expect(page.getByRole('heading', { name: 'Welcome' })).toBeVisible();
});Öğe Bulucular
Playwright'ın öğe bulucuları RTL sorgularına benzer. Dayanıklılık için rol tabanlı öğe bulucuları tercih edin.
// By role
const button = page.getByRole('button', { name: 'Submit' });
// By label
const input = page.getByLabel('Email address');
// By text
const link = page.getByText('Sign in');
// By placeholder
const search = page.getByPlaceholder('Search products');Tıklama ve Yazma
click(), fill(), press() ve selectOption() kullanarak öğelerle etkileşime geçin.
await page.getByLabel('Email').fill('user@example.com');
await page.getByLabel('Password').fill('secret');
await page.getByRole('button', { name: 'Log in' }).click();Yönlendirmeyi Bekleme
Playwright, öğelerin hazır olmasını otomatik olarak bekler; ancak yönlendirmenin veya ağ isteklerinin tamamlanmasını açıkça bekleyebilirsiniz.
// Wait for URL to change after form submit
await page.waitForURL('/dashboard');
// Wait for a specific request
const [response] = await Promise.all([
page.waitForResponse('/api/users'),
page.click('button[type="submit"]'),
]);Doğrulamalar
Playwright'ın yerleşik eşleştiricileriyle birlikte expect(locator) kullanın. Bu eşleştiriciler koşulun doğru olmasını otomatik olarak bekler.
await expect(page.getByRole('heading')).toHaveText('Dashboard');
await expect(page.getByTestId('user-count')).toContainText('5 users');
await expect(page.getByRole('button', { name: 'Delete' })).toBeDisabled();
await expect(page).toHaveURL('/success');Başarısızlıkta Ekran Görüntüsü Alma
Playwright, yapılandırıldığında test başarısızlıklarında ekran görüntülerini ve izleri otomatik olarak yakalar. Bunu yapılandırma dosyasında etkinleştirin.
use: {
screenshot: 'only-on-failure',
trace: 'retain-on-failure',
video: 'retain-on-failure',
}Testleri Çalıştırma
Tüm testleri arayüzsüz modda çalıştırın veya testleri görsel olarak adım adım incelemenizi sağlayan etkileşimli test gezginini açmak için --ui kullanın.
# Run all tests
npx playwright test
# Run with UI mode
npx playwright test --ui
# Run a specific file
npx playwright test e2e/login.spec.ts
# Debug mode
npx playwright test --debugPlaywright İz Görüntüleyicisi
Bir test başarısız olduğunda, ekran görüntüleri, ağ istekleri ve konsol günlükleriyle testi adım adım yeniden oynatmak için iz dosyasını npx playwright show-trace ile açın.
CI Entegrasyonu
Playwright, CI ortamında varsayılan olarak arayüzsüz modda çalışır. Tarayıcıları npx playwright install --with-deps ile kurun ve testleri normal bir npm betiği olarak çalıştırın.
# .github/workflows/e2e.yml
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright testHızlı Kontrol
Bir metin giriş alanını doldurmak için hangi Playwright yöntemini kullanmalısınız?
Özet
Playwright gerçek tarayıcıları test eder ve öğeler için otomatik olarak bekler. Etkileşimler için rol tabanlı öğe bulucuları, fill() ve click(); doğrulamalar için expect(locator) kullanın. Geliştirme sırasında görsel hata ayıklama için --ui modunu tercih edin.
Sıkça Sorulan Sorular
“React için Playwright'a Başlangıç” dersi ücretsiz mi?
Evet — “React için Playwright'a Başlangıç” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“React için Playwright'a Başlangıç” dersinde ne öğreneceğim?
Tarayıcı açan, React uygulamasıyla etkileşime giren ve sonuçları doğrulayan Playwright testleri yazın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“React için Playwright'a Başlangıç” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- React Testing Library ile Entegrasyon Testleri
- MSW ile Asenkron Arayüzü ve API Çağrılarını Test Etme
- React için Playwright'a Başlangıç
- Formları ve Kullanıcı Akışlarını Uçtan Uca Test Etme