Playwright
- Okunuşu
- pleyrayt
Kısaca
Playwright, Chromium, Firefox ve WebKit'i tek bir API ile yöneten, Microsoft'un uçtan uca test ve tarayıcı otomasyonu için açık kaynaklı framework'üdür.
Playwright nedir?
Playwright, daha önce Google'da Puppeteer'ı geliştirmiş mühendisler tarafından kurulup 2020'de Microsoft tarafından yayımlandı. Gerçek tarayıcıları denetler: Chrome ve Edge için Chromium'u, Firefox'u ve Safari'nin arkasındaki motor olan WebKit'i. Böylece tek bir test, bir kayıt ya da ödeme akışının her yerde aynı çalıştığını denetleyebilir. Testler JavaScript ya da TypeScript, Python, Java veya .NET ile yazılabilir.
Bir test bir sayfa açar, öğeleri bulur ve onlar üzerinde bir kullanıcı gibi işlem yapar: tıklar, yazar, menülerden seçer ve dosya yükler. getByRole("button", { name: "Sign in" }) gibi locator'lar öğeleri insanların ve ekran okuyucuların gördüğü biçimde bulur; bu da işaretleme değiştiğinde testleri sağlam tutar. Playwright her işlemden önce öğe görünür ve etkin olana kadar otomatik bekler; bu da tarayıcı testlerini kararsız (flaky) yapan zamanlama sorunlarının çoğunu ortadan kaldırır.
Yerleşik test çalıştırıcısı Playwright Test, testleri paralel çalıştırır, telefonları ve ekran boyutlarını taklit eder, ağ isteklerini yakalayabilir ve ekran görüntülerini karşılaştırır. Bir test CI'da başarısız olduğunda trace viewer, her adımı ekran görüntüleri, DOM anlık görüntüleri ve ağ çağrılarıyla yeniden oynatır. Bir kod üreteci de tarayıcıdaki tıklamaları kaydedip bir teste dönüştürebilir.
Sık yapılan bir yanlış, Playwright'ın birim testlerinin yerini aldığı düşüncesidir. Uçtan uca testler daha yavaştır ve bütün kullanıcı yolculuklarını denetler; bu yüzden test piramidinin tepesinde durur, mantığın büyük kısmını yine hızlı birim ve entegrasyon testleri kapsamalıdır. Selenium ve Cypress'e göre Playwright daha yenidir ve tek bir testte birden çok tarayıcıyı, sekmeyi ve origin'i kutudan çıktığı gibi destekler.
Önemli noktalar
- Playwright, Chromium, Firefox ve WebKit'i tek bir API ile otomatikleştirir.
- Role dayalı locator'lar öğeleri kullanıcıların gördüğü biçimde bulur.
- Her işlemden önceki otomatik bekleme kararsız testleri azaltır.
- Test çalıştırıcısı paralel çalıştırma, cihaz taklidi, ekran görüntüleri ve izler ekler.
- Uçtan uca testler birim ve entegrasyon testlerinin yerini almaz, onları tamamlar.
Örnek
import { test, expect } from "@playwright/test";
test("a user can sign in", async ({ page }) => {
await page.goto("https://example.com/login");
await page.getByLabel("Email").fill("ada@example.com");
await page.getByLabel("Password").fill("correct horse battery");
await page.getByRole("button", { name: "Sign in" }).click();
// Waits automatically until the heading appears
await expect(page.getByRole("heading", { name: "Welcome, Ada" })).toBeVisible();
});Sık sorulan sorular
Playwright ile Selenium arasındaki fark nedir?
İkisi de gerçek tarayıcıları otomatikleştirir. Selenium daha eskidir, WebDriver standardını kullanır ve birçok dili ve tarayıcıyı destekler. Playwright ise tarayıcılarla daha doğrudan konuşur, otomatik bekler ve modern bir test çalıştırıcı, iz kaydı ve ağ denetimi içerir.
Playwright ile Cypress arasındaki fark nedir?
Cypress testleri tarayıcının içinde çalıştırır ve etkileşimli çalıştırıcısıyla bilinir. Playwright ise tarayıcıları dışarıdan denetler; bu da birden çok sekmeyi, origin'i ve WebKit dahil tarayıcıyı kolaylaştırır.
Playwright test dışında da kullanılabilir mi?
Evet. Ekran görüntüsü almak, PDF üretmek ve sayfalardan veri kazımak gibi genel tarayıcı otomasyonunda da, web sitelerini kullanan yapay zekâ ajanlarında da kullanılır.
Sık karşılaştırılanlar
İlgili sayfalar
- Uçtan Uca TestTest ve Kalite, s. 35Uçtan uca test, kullanıcı arayüzünden veritabanına ve geri dönüşe kadar tam bir kullanıcı yolculuğunu uygulamanın tamamında çalıştıran otomatik bir testtir.
- Test RunnerTest ve Kalite, s. 34Test runner, bir projenin otomatik testlerini genellikle tek komutla bulan, çalıştıran ve hangilerinin geçtiğini ya da başarısız olduğunu raporlayan araçtır.
- Flaky TestTest ve Kalite, s. 8Flaky test, koda hiçbir değişiklik yapılmadan bazen geçen bazen başarısız olan ve sonuçlarına güvenmeyi zorlaştıran otomatik bir testtir.
- Test PiramidiTest ve Kalite, s. 33Test piramidi, otomatik testleri dengelemek için bir modeldir: çok sayıda hızlı birim testi, daha az entegrasyon testi ve tepede birkaç yavaş uçtan uca test.
- Regresyon TestiTest ve Kalite, s. 21Regresyon testi, daha önce çalışan özelliklerin bozulmadığından emin olmak için bir kod değişikliğinden sonra mevcut testleri yeniden çalıştırma pratiğidir.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- CypressTest ve Kalite, s. 5Cypress, web uygulamalarının uçtan uca ve bileşen testlerini tarayıcıda yürüten, otomatik bekleme ve etkileşimli çalıştırıcı sunan JavaScript framework'üdür.
- SeleniumTest ve Kalite, s. 22Selenium, çoğunlukla uçtan uca test için web tarayıcılarını otomatikleştiren, WebDriver API'si birçok dilde bulunan açık kaynaklı bir araç takımıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin