🎬 Codegen — Kodu Senin Yerine Yazdır

Codegen — Kodu Senin Yerine Yazdır: npx playwright codegen, Java'daki IDE makro kaydedicilerin modern web versiyonudur — ancak önemli bir farkla: sıradan makro kaydediciler pikse

npx playwright codegen, Java'daki IDE makro kaydedicilerin modern web versiyonudur — ancak önemli bir farkla: sıradan makro kaydediciler piksel koordinatları ve mutlak DOM konumlarını kaydeder (dolayısıyla sayfa değişince çöker), Codegen ise role, text ve testid gibi semantik locator stratejilerini kullanır. Peki Codegen ile oluşturulan kodu direkt production testine koyabilir miyiz? Hayır — ve bunu bilmek Codegen'i doğru kullanmanın kendisidir: Codegen ham madde üretir, test yapısını sen tasarlarsın. Oluşturulan kod tekrarları ortadan kaldırmaz, Page Object kullanmaz ve assertion yazmaz; sen bu kodu alır, POM sınıfına çevirir, fixture'a bağlar ve anlamlı expect() satırları eklersin. Java'da Selenium IDE ile kayıt yapıp dışa aktarıyordun ama çıktı Selenium RC syntax'ına benziyordu ve her sürüm geçişinde yeniden yazılıyordu. Codegen çıktısı ise güncel Playwright API'sini kullanır. QA gerçeği: yeni bir form akışını test etmek için locator'ları DOM'dan elle çıkarmak yerine Codegen'i 2 dakika çalıştırmak, kaba bir iskelet oluşturmanın en hızlı yoludur — üretkenliği doğrudan artıran bir araç olarak kullanıldığında değerlidir, "otomatik test oluşturucu" olarak kullanılmaya çalışıldığında hayal kırıklığı yaratır.

npx playwright codegen komutu İKİ pencere açar: (1) gerçek bir tarayıcı penceresi — burada normal kullanıcı gibi gezinirsin, (2) Playwright Inspector penceresi — burada attığın her adımın karşılığı olan kod satırı CANLI olarak belirir. İşin bitince o kodu kopyalayıp test dosyana yapıştırırsın; genelde küçük rötuşlarla (locator önceliklendirme, assertion ekleme) production-ready hâle gelir.

Bu, Selenium IDE'nin (tarayıcı eklentisi olarak kayıt yapıp Java/diğer dillerde kod export eden araç) Playwright'taki built-in, komut satırından çalışan, dış eklenti gerektirmeyen versiyonudur. Fark: Selenium IDE genelde CSS/XPath üretirken, Playwright codegen öncelik sırasına göre getByRole/getByLabel gibi dayanıklı locator'lar üretir — bu yüzden çıkan kod genelde Selenium IDE çıktısından daha az kırılgandır.

Komutlar ve Seçenekler

Codegen Çalışırken — Gerçek Pencere Akışı

Komut çalıştırıldığında iki pencere açılır: gerçek tarayıcı + boş bir Playwright Inspector paneli. Inspector'da "Record" (kayıt) açık, dil seçici (JavaScript/Python/Java/C#) görünür.

Tıkla, Yaz — Kod Anında Belirir

E-posta kutusuna tıklayıp yazınca .fill(...) satırı belirir; "Giriş Yap" butonuna tıklayınca .click() satırı eklenir. Sen hiçbir kod yazmıyorsun — sadece normal kullanıcı gibi geziniyorsun.

Assertion Ekle (Pick Locator)

Inspector'daki "Assert visibility" butonuna basıp sayfada bir elemana tıklarsan, otomatik bir expect(...).toBeVisible() satırı eklenir — assertion'ları da elle yazmana gerek kalmaz.

İşin bitince "Copy" butonuyla tüm kodu panoya alır, test dosyana yapıştırırsın. -o login.spec.ts ile baştan bir dosyaya yazdırman da mümkün.

Codegen Bir Başlangıç Noktasıdır, Bitmiş Test Değil

Codegen çıktısı genelde çalışır ama kör kör güvenme: (1) bazen gereksiz tıklamalar/duplicate satırlar kaydeder — temizle. (2) Otomatik üretilen locator bazen .first() gerektiren belirsiz bir eşleşme olabilir — kontrol et. (3) Login gibi tekrar eden akışları her test dosyasında yeniden kaydetme — bir kere kaydet, Page Object'e veya fixture'a taşı (bkz. önceki sekmeler). (4) --save-storage ile kaydedilen oturum dosyasını ASLA git'e commit etme.

Doğru locator önerisi