Test önemlidir. Bu, uygulamanızın beklendiği gibi çalışıp çalışmadığını kontrol etmek için ister sitenin tamamı, ister uygulama, ister yeni bir özellik olsun, oluşturduğunuz şeyi kullanıcılara teslim etmeden önce önemli bir adımdır. Ancak, birçok test hâlâ manuel olarak yapılmaktadır ve iş arkadaşları veya test mühendisleri yeni özelliğe göz atmalarını ve sorunları bildirmelerini istmektedir.
Bu manuel test belirli sorun sınıflarını gösterebilse de daha pek çok sorunu gözden kaçırabilir. Testi yapan kişiler uç durumları gözden kaçırabilir veya uygulamadaki belirli bir yolculuğu test edemeyebilir. Aynı zamanda kodu yazarken sahip olduğunuz tüm bilgilere sahip değildirler ve önlemek için kod eklediğiniz belirli sorunlar hakkında da bilgi sahibi değildirler. Zaman geçtikçe ve yeni özellikler eklendikçe, değişikliklerin onları bozmadığından emin olmak için geri dönüp daha önce işleyen tüm unsurları yeniden test edecekler mi?
Bu nedenle Chrome ekibi, otomatik testlerin önemine inanmaktadır. Özelliğinizi bozulmaya karşı güvenilir ve sürekli olarak test eden bir test paketi kullanarak, ileride yapacağınız geliştirmelerde, şimdi ve sonrasında her bir küçük ayrıntının test edildiğinden emin olabilirsiniz. Bir özelliğin geliştiricisi olarak edindiğiniz bilgiler teste tabi tutulur.
Bununla birlikte, otomatik testlerin zor olabileceğinin farkındayız. Bu nedenle Chrome ekibi, uygulamayı sizin için olabildiğince sorunsuz hale getirmek amacıyla aşağıdaki araçları ve rehberliği sağlar.
Kuklacı
Puppeteer bir Node.js kitaplığıdır. Kullanımı kolay, üst düzey bir API ile Chrome, Chromium ve Firefox'u otomatikleştirmenizi sağlar.
Bu API başlangıçta Chrome Geliştirici Araçları Protokolü'nü temel alıyor olsa da amacı, yeni ve gelişmiş WebDriver BiDi protokolünü yıl sonuna kadar Puppeteer'ın temeli haline getirmektir. Tüm büyük tarayıcı tedarikçilerinin ortak geliştirdiği WebDriver BiDi, birçok otomasyon kullanım alanını basitleştirir, birçok yeni kullanım alanı sağlar ve tarayıcılar arası uyumludur.
Ancak beklemenize gerek yok. Puppeteer'ın API'si, halihazırda çok sayıda otomasyon kullanım alanına olanak tanımaktadır. Bu kullanımlar yalnızca WebDriver BiDi ile iyileşecektir. Sayfa etkileşimleri, istek müdahalesi ve ekran görüntüleri gibi özelliklerle testten görsel taramaya ve süreç otomasyonuna kadar pek çok şey yapabilirsiniz. WebGPU ve WebGL'yi kullanarak web AI modellerinizi bulutta test etmek için bile bu API'yi kullanabilirsiniz.
Puppeteer, tam kapsamlı bir tarayıcı test çerçevesi olan WebdriverIO ve sitenizdeki çerez ve kullanıcı verisi kullanımını daha iyi anlamanıza olanak tanıyan Özel Korumalı Alan Analiz Aracı gibi araçlar tarafından da kullanılır.
Chrome Gözetimsiz
Chrome'u Puppeteer kullanarak otomatik hale getirdiyseniz, testler çalıştırılırken herhangi bir tarayıcı penceresinin görüntülenmediğini fark etmiş olabilirsiniz. Varsayılan olarak Puppeteer, Chrome'u Gözetimsiz modda başlatır. Yani, otomasyonunuz çalışırken gerçekte bir tarayıcı penceresi olmaz.
Ancak, Chrome'un Gözetimsiz modunun yalnızca penceresiz Chrome değil, aslında Chrome'un tümüyle ayrı olarak yönetilen bir sürümü olduğunu biliyor muydunuz? Uzun süre, bu durum kafa karışıklığına yol açtı, hatalar ve sorunları takip etmekte zorlandı.
Chrome 112'de artık normal Chrome ile aynı kod tabanına dayalı olan yeni bir Gözetimsiz modu kullanıma sunduk. Bu, önceden kafa karışıklığını azaltmanın yanı sıra, otomasyon sırasında uzantıları kullanmak gibi daha önce mümkün olmayan işlevler de sunar.
Puppeteer, bu yeni Gözetimsiz modu 22 sürümünden beri varsayılan olarak kullanıyor. Diğer otomasyon çözümlerinde Chrome gözetimsiz modu kullanıyorsanız --headless=new
komut satırı anahtarıyla yeni Gözetimsiz modu zorunlu kılabilirsiniz.
Chrome'un yeni Gözetimsiz modu daha güçlü olsa da eski Gözetimsiz mod kadar hafif değildir. Çok fazla kaynakla sınırlıysanız veya Chrome'un tüm özelliklerine ihtiyacınız yoksa chrome-headless-shell
olarak eski Gözetimsiz modu kullanabilirsiniz.
Chrome for Testing
Test yaparken test ortamınız üzerinde ayrıntılı kontrole ihtiyacınız olur: işletim sistemi, tarayıcı ve tarayıcı sürümü. Chrome'un otomatik güncellemesiyle bu işlem zor olabilir.
Bu nedenle Chrome for Testing'i geliştirdik. Chrome'un otomatik güncelleme içermeyen, Chrome'un tüm sürümleriyle birlikte yayınlanan ve sürümü oluşturulmuş bir arşivden erişilebilen, tüm önemli işletim sistemleri için kullanıma sunulan bir sürümü. Bu sayede otomasyon iş akışlarınızı fazla uğraşmadan Chrome'un belirli bir sürümünde çalıştırabilirsiniz.
Chrome for Testing ikili programlarına Chrome for Testing kullanılabilirlik kontrol panelinden, JSON API'den veya Puppeteer komut satırı yardımcı programından erişebilirsiniz.
Puppeteer, Chrome'un güncellenmiş Gözetimsiz modu ve Chrome for Testing ekibimizin tarayıcı otomasyonunu ve testleri sizin için olabildiğince sorunsuz hale getirmek amacıyla yürüttüğü çalışmaların yalnızca bir parçasıdır. DevTools Kaydedici gibi ilgili araçlar da test oluşturma sürecinde sizi destekler: Chrome'da bir kullanıcı akışını kaydedin ve Puppeteer'da tekrar oynatın.
web.dev'de Test hakkında bilgi edinin
Bu yayında ele alınan araçlar, otomatik testlerinizi iyileştirmenize yardımcı olacaktır. Ama daha yeni başlıyorsanız bu konuyu anlamanız ve öğrenmeniz gereken çok fazla şey var gibi görünebilir. Bu nedenle, 10 modüllü yeni bir kurs oluşturduk: web.dev'de Testleri Öğrenin. Bu kapsamlı kurs, test etme, testlerin nerede ve nasıl çalıştırıldığı, test türleri ve gerçekte nelerin test edileceği gibi temel kavramları kapsar. Test yolculuğunuz için mükemmel bir başlangıç noktasıdır. Temel bilgilere ulaştığınızda, daha spesifik test sorularıyla ilgili ayrıntılı incelemeler ve pratik ipuçları içeren Test Otomasyonu koleksiyonumuza geçebilirsiniz.