Test yapmak önemlidir. Oluşturduğunuz içeriği (sitenin veya uygulamanın tamamı ya da yeni bir özellik) kullanıcılara sunmadan önce, beklendiği gibi çalışıp çalışmadığını kontrol etmek önemli bir adımdır. Ancak hâlâ birçok test manuel olarak yapılıyor. İş arkadaşları veya test mühendislerinden yeni özelliği kontrol edip sorunları bildirmeleri isteniyor.
Bu manuel test belirli sorun sınıflarını gösterebilir ancak daha birçok sorunu gözden kaçırabilir. Testi yapan kişiler uç durumları gözden kaçırabilir veya uygulamadaki belirli bir yolculuğu test etmeyi tamamen başaramayabilir. Ayrıca, kod yazarken sahip olduğunuz tüm bilgilere sahip değildirler ve önlemek için kod eklediğiniz belirli sorunlardan haberdar değildirler. Zaman geçtikçe ve yeni özellikler eklendikçe, değişikliklerin bu özellikleri bozmadığından emin olmak için geri dönüp daha önce çalışan tüm bu özellikleri yeniden test edecekler mi?
Chrome ekibi, bu nedenle otomatik testin önemine inanıyor. Özelliğinizi güvenilir ve tekrarlı bir şekilde bozulma açısından test eden bir test paketi kullanarak, hem şimdi hem de gelecekteki geliştirmelerden sonra her küçük ayrıntının test edildiğinden emin olabilirsiniz. Bir özelliğin geliştiricisi olarak sahip olduğunuz bilgiler bir teste dahil edilir.
Ancak otomatik testin zor olabileceğinin farkındayız. Bu nedenle Chrome Ekibi, geçiş sürecinizi mümkün olduğunca sorunsuz hale getirmek için aşağıdaki araçları ve rehberliği sunar.
Kuklacı
Puppeteer, Node.js kitaplığıdır. Chrome, Chromium ve Firefox'u kullanımı kolay, üst düzey bir API ile otomatikleştirmenize olanak tanır.
Bu API başlangıçta Chrome DevTools Protokolü'ne dayalı olsa da amaç, yıl sonuna kadar yeni ve gelişmiş WebDriver BiDi protokolünü Puppeteer'ın temeli haline getirmektir. Tüm büyük tarayıcı tedarikçileri tarafından ortaklaşa oluşturulan WebDriver BiDi, birçok otomasyon kullanım alanını basitleştirir ve birçok yeni kullanım alanını etkinleştirir. Ayrıca tarayıcılar arası uyumludur.
başlıklı makalede WebDriver BiDi hakkında daha fazla bilgi edinin.Ancak beklemenize gerek yok. Puppeteer'ın API'si şu anda birçok otomasyon kullanım alanını etkinleştiriyor. Bu kullanım alanları, WebDriver BiDi ile daha da iyi hale gelecek. Sayfa etkileşimleri, istek engelleme ve ekran görüntüleri gibi özelliklerle testten görsel taramaya ve süreç otomasyonuna kadar birçok işlem yapabilirsiniz. Hatta WebGPU ve WebGL'yi kullanarak web yapay zeka modellerinizi bulutta test etmek için de kullanabilirsiniz.
Puppeteer, tam teşekküllü bir tarayıcı testi çerçevesi olan WebdriverIO ve Özel Korumalı Alan Analiz Aracı gibi araçlar tarafından da kullanılır. Bu araçlar, sitenizdeki çerez ve kullanıcı verisi kullanımını daha iyi anlamanıza olanak tanır.
Gözetimsiz Chrome
Puppeteer'ı kullanarak Chrome'u otomatikleştirdiyseniz testler çalışırken tarayıcı penceresi gösterilmediğini fark etmiş olabilirsiniz. Puppeteer varsayılan olarak Chrome'u gözetimsiz modda başlatır. Bu, otomasyonunuz çalışırken gerçek bir tarayıcı penceresi olmadığı anlamına gelir.
Ancak Chrome'un Gözetimsiz modunun yalnızca penceresiz bir Chrome olmadığını, aslında tamamen ayrı olarak yönetilen bir Chrome sürümü olduğunu biliyor muydunuz? Bu durum uzun süredir karışıklığa yol açıyor ve hataları ve sorunları takip etmeyi zorlaştırıyordu.
Chrome 112'den itibaren, normal Chrome ile aynı kod tabanını temel alan yeni bir Headless modu kullanıma sunduk. Bu, önceki karışıklığı azaltmakla kalmaz, otomasyon sırasında uzantı kullanma gibi daha önce mümkün olmayan işlevleri de sunar.
Puppeteer, 22 sürümünden beri varsayılan olarak bu yeni gözetimsiz modu kullanıyor. Chrome Headless'i diğer otomasyon çözümleri aracılığıyla kullanıyorsanız --headless=new
komut satırı anahtarıyla yeni Headless modunu etkinleştirebilirsiniz.
Chrome'un yeni Gözetimsiz modu daha güçlü olsa da eski Gözetimsiz mod kadar hafif değildir. Çok fazla kaynağa sahip değilseniz 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 (işletim sistemi, tarayıcı ve tarayıcı sürümü) üzerinde ayrıntılı kontrole ihtiyacınız vardır. Chrome'un otomatik güncellemesi nedeniyle bu işlem zor olabilir.
Bu nedenle, Chrome'un her sürümüyle birlikte, her büyük işletim sistemi için sürümlü bir arşivden erişilebilen, otomatik güncelleme içermeyen bir Chrome sürümü olan Test için Chrome'u oluşturduk. Bu sayede, otomasyon iş akışlarınızı çok fazla uğraşmadan Chrome'un belirli bir sürümünde çalıştırabilirsiniz.
Chrome for Testing ikili dosyaları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ş Başsız modu ve Chrome for Testing, ekibimizin tarayıcı otomasyonunu ve test çalıştırmayı sizin için mümkün olduğunca sorunsuz hale getirmek amacıyla üzerinde çalıştığı çalışmaların yalnızca bir kısmıdır. DevTools Kaydedici gibi ilgili araçlar da test oluşturmanıza yardımcı olur: Chrome'da bir kullanıcı akışı kaydedin ve Puppeteer'da yeniden oynatın.
web.dev'de test hakkında bilgi edinme
Bu yayında ele alınan araçlar, otomatik testinizi iyileştirmenize yardımcı olacaktır. Ancak yeni başlıyorsanız anlamak ve öğrenmek için çok fazla şey varmış gibi görünebilir. Bu nedenle, 10 modülden oluşan yeni bir kurs olan web.dev'de test hakkında bilgi edinme kursunu oluşturduk. Bu ayrıntılı kurs, testin temel kavramlarını, testlerin nerede ve nasıl çalıştırıldığını, test türlerini ve aslında nelerin test edilmesi gerektiğini kapsar. Test yolculuğunuz için mükemmel bir başlangıç noktasıdır. Temel bilgileri edindikten sonra, daha spesifik test sorularıyla ilgili ayrıntılı incelemeler ve pratik ipuçları içeren Test Otomasyonu koleksiyonumuza göz atabilirsiniz.