Headless Chrome ve Puppeteer ile Nodejs test otomasyonu, web tarayıcılarını otomatik olarak yönetebilme ve test senaryoları yazabilme imkanı sunar Headless teknolojisi, web tarayıcılarının kullanıcı arabirimi olmadan çalışabilmesine olanak sağlayarak testlerin otomatikleştirilmesi için önemlidir Puppeteer ise, Chrome veya Chromium tarayıcısını otomatikleştirmek için kullanılan bir Nodejs kütüphanesidir ve web sayfalarının görünümünü ve çalışmasını simüle edebilme, otomatik testler yazabilme ve web sayfalarında gezinme yapabilme gibi özellikler sunar
Puppeteer'ın en büyük avantajlarından biri, tarayıcı ile etkileşimleri simüle edebilmesidir Bu sayede, gerçek kullanıcıların yaşayabileceği tüm senaryolar test edilebilir Ayrıca, Puppeteer ile web sayfalarının PDF formatındaki dosyaları veya ekran görüntüleri de oluşturulabilir
Nodejs paket yöneticisi olan npm üzerinden Puppeteer kurulumu yapılmasıyla test

Headless Chrome ve Puppeteer ile Node.js test otomasyonu yapmak, son yılların popüler teknolojilerinden biridir. Headless teknolojisi, web tarayıcılarının kullanıcı arabirimi (UI) olmadan çalışmasına olanak tanıyan bir özelliktir. Puppeteer ise, Chrome veya Chromium tarayıcısını otomatikleştirmek için kullanılan bir Node.js kütüphanesidir.
Bu teknolojileri kullanarak Node.js'te test otomasyonu yazmak oldukça kolaydır. Dilerseniz Puppeteer'ın özelliklerinden faydalanarak web sayfalarını otomatik olarak doldurabilir, form gönderme işlemlerini yapabilir, ekran görüntüleri veya PDF formatındaki dosyaları oluşturabilirsiniz. Bunun yanı sıra, Puppeteer ile web sayfalarındaki elementlerin varlığı veya görünümü hakkında da testler yazabilirsiniz.
Headless Chrome ve Puppeteer kullanarak test otomasyonu yapmak için öncelikle Node.js paket yöneticisi olan npm üzerinden Puppeteer kurulumu yapmanız gerekiyor. Ardından, belirlediğiniz test senaryolarını Node.js ve Puppeteer ile yazabilirsiniz. Örneğin, Puppeteer ile sayfa başlığı testi veya form gönderme testi yapabilirsiniz.
Headless Teknolojisi Nedir?
Headless teknolojisi, bir web tarayıcısının kullanıcı arabirimi (UI) olmadan çalışmasını sağlayan bir özelliktir. Bu özellik sayesinde, web tarayıcısı sadece programatik olarak yönetilebilir hale gelir ve herhangi bir kullanıcının işlem yapmadan çalışabilir. Bu teknoloji, web tarayıcılarının testlerinin otomatik hale getirilmesi için oldukça önemlidir. Çünkü, web tarayıcısı otomatik olarak kontrol edilerek testler yapılabilir.
Puppeteer Nedir?
Birçok web uygulamasının test edilmesi gerektiğinde, manuel olarak test yapmak son derece zaman alıcı ve yorucu bir iş olabilir. İşte bu noktada Puppeteer devreye girer. Puppeteer, Chrome veya Chromium tarayıcısını otomatikleştirmek için kullanılan bir Node.js kütüphanesidir. Bu kütüphane, web sayfalarının görünümünü ve çalışmasını simüle edebilir, otomatik testler yazabilir ve web sayfalarında gezinme yapabilir.
Puppeteer'ın en büyük avantajlarından biri, tarayıcı ile etkileşimleri simüle etmesidir. Bu sayede, gerçek kullanıcıların yaşayabileceği tüm senaryoları yapabilirsiniz. Yeni özellikleri test etmek veya mevcut bir uygulamanın güncellenen bir sürümünü test etmek gibi birçok senaryo için Puppeteer kullanılabilir. Özellikle web uygulamalarının geliştirilmesi sürecinde, Puppeteer'ın test senaryolarını otomatikleştirme özelliği zaman ve maliyet açısından büyük avantajlar sağlayabilir.
Puppeteer'ın Özellikleri Nelerdir?
Puppeteer, Chrome veya Chromium tarayıcısını otomatikleştirmek için kullanılan bir Node.js kütüphanesidir. Bu kütüphane, web sayfalarının görünümünü ve çalışmasını simüle etmek için kullanılabilir. Ayrıca, otomatik testler yazmak ve web sayfalarında rahatça gezinme yapmak için de kullanılabilir.
Puppeteer'ın sağladığı bu özellikler sayesinde, test senaryoları yazmak daha kolay ve hızlı hale gelir. Özellikle web sayfalarının otomatik olarak test edilmesi gerektiğinde, Puppeteer sayesinde bu işlem daha verimli bir şekilde gerçekleştirilebilir.
- Puppeteer, web sayfalarının görünümünü ve çalışmasını simüle edebilir.
- Otomatik testler yazmak için kullanılabilir.
- Web sayfalarında rahatça gezinme yapılabilir.
Bu özellikler sayesinde, Puppeteer test senaryolarının yazılmasını ve uygulanmasını daha hızlı hale getirir. Özellikle otomatik testlerde Puppeteer sayesinde web sayfalarının tüm özellikleri test edilebilir. Ayrıca, Puppeteer PDF'ye dönüştürme ve ekran görüntüleri alma gibi işlemler için de kullanılabilir.
PDF ve Ekran Görüntüleri Alma
Puppeteer ile web sayfalarını PDF formatına dönüştürmek veya ekran görüntüleri almak oldukça kolaydır. Bunun için, Puppeteer’ın page.pdf() ve page.screenshot() fonksiyonlarını kullanabilirsiniz.
PDF Alma: Bu özellik sayesinde, Puppeteer ile web sayfalarını PDF formatında kaydedebilirsiniz. Bunun için, page.pdf() fonksiyonunu kullanmanız yeterlidir. Bu fonksiyon, bir obje kabul eder ve PDF dosyasının özelliklerini tanımlamanızı sağlar. Özellikleri ayarladıktan sonra, dosyanızı oluşturmak için page.pdf() fonksiyonunu çalıştırmalısınız.
Özellik | Açıklama |
---|---|
path | PDF'nin hangi dizinde kaydedileceğini belirler. |
format | PDF'nin boyutunu ve oryantasyonunu ayarlar. Örnek formatlar: A4, Letter, Tabloid vs. |
printBackground | PDF'nin arka planında yer alan resimleri veya renkleri yazdırmak için bu özelliğin değerini true yapmalısınız. |
width | PDF'nin genişliğini ayarlar. |
height | PDF'nin yüksekliğini ayarlar. |
Ekran Görüntüsü Alma: Puppeteer ile web sayfasının ekran görüntüsünü almak için page.screenshot() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, ekran görüntüsünü kaydetmek için bir obje kabul eder. Objede, ekran görüntüsünün özelliklerini belirleyebilirsiniz. Örneğin, hangi dizinde kaydedileceğini veya kaç piksel genişliğinde olacağını belirtebilirsiniz.
Özellik | Açıklama |
---|---|
path | Ekran görüntüsünün hangi dizinde kaydedileceğini belirler. |
fullPage | Ekran görüntüsünün sayfanın tamamını kaplayıp kaplamayacağını belirler. |
clip | Ekran görüntüsünün belirli bir bölgesini almak için bir obje kabul eder. |
type | Ekran görüntüsünün hangi dosya tipinde kaydedileceğini belirler. Örnek tipler: png, jpeg, vs. |
quality | JPEG görüntülerinin kalitesini ayarlamak için kullanılır. Değeri 0 ile 100 arasında olabilir. |
Puppeteer ile PDF veya ekran görüntüsü alma işlemi oldukça basit ve hızlı bir şekilde gerçekleştirilebilir. Bu özellik sayesinde, web sayfalarının arşivlenmesi, test edilmesi veya raporlanması gibi işlemler için kullanılabilir.
Form Doldurma ve Gönderme
Puppeteer, web sayfalarında form doldurma ve gönderme işlemlerini otomatikleştirebilir. Bu özellik sayesinde kullanıcıların web sayfalarında uzun süre kalmaları ve form doldurma işlemleri için zaman harcamaları gerekmez.
Puppeteer'ın form otomasyonu özelliği, web sayfalarındaki form alanlarını bulmak ve otomatik olarak doldurmak için kullanılır. Bu özellik, test senaryoları yazarken, web sitelerinin formlarının doğru çalıştığını kontrol etmek için kullanılabilir. Örnek olarak, bir web sitesinde kayıt formu bulunuyorsa, bu formun doldurulması ve gönderilmesi gibi adımlar otomatik olarak Puppeteer kullanılarak test edilebilir.
Form doldurma işleminin yanı sıra, Puppeteer ayrıca form gönderme işlemini de otomatikleştirebilir. Bu işlem, form alanlarının doldurulmasından sonra "submit" butonuna tıklayarak formun gönderilmesini sağlar. Böylece, form gönderme işlemi de otomatik olarak test edilmiş olur.
Bir diğer faydalı özellik ise, Puppeteer ile form doldurma ve gönderme işlemi sırasında hataları takip edebiliriz. Örneğin, bir formun gönderilememesi ya da hatalı bir şifre girilmesi durumunda Puppeteer hata mesajlarını yakalayarak bunların giderilmesine yardımcı olur.
Bu özellik sayesinde, web sayfalarının form alanlarının doğru çalışıp çalışmadığını otomatik olarak kontrol edilebilir. Böylece, kullanıcıların web sitesinde olası hatalarla karşılaşması önlenebilir ve web sitesi sahipleri, web sayfalarının doğru çalıştığına emin olurlar.
Puppeteer Kurulumu Nasıl Yapılır?
Puppeteer'ı kullanmak için öncelikle Node.js'in yüklü olması gerekiyor. Eğer Node.js yüklü değilse Node.js resmi websitesinden indirip yükleyebilirsiniz.
Puppeteer'ı kurmak için npm kullanmanız gerekiyor. Terminal penceresinde aşağıdaki komutu çalıştırarak Puppeteer'ı Node.js'e yükleyebilirsiniz:
npm | npm install puppeteer |
---|
Komutu çalıştırdıktan sonra Puppeteer, Node.js'in "node_modules" klasörüne yüklenecektir.
Yükleme işlemi tamamlandıktan sonra, Puppeteer'ı projenize eklemek için aşağıdaki kodu dosyanıza ekleyin:
const puppeteer = require('puppeteer');
Bu kod, Puppeteer'ı projenizin içinde kullanabileceğiniz şekilde tanımlar.
Bu adımları takip ederek Puppeteer'ı Node.js'e başarılı bir şekilde kurabilirsiniz.
Node.js ve Puppeteer ile Test Senaryoları Nasıl Yazılır?
Node.js ve Puppeteer kullarak test senaryoları yazmak oldukça kolay ve yararlıdır. Test senaryoları yazmak için şu adımları takip edebilirsiniz:
- İlk olarak Puppeteer'ı Node.js projesine dahil etmeniz gerekiyor. Bunun için terminalde '
npm install puppeteer
' komutunu kullanabilirsiniz. - Test senaryosunu yazmak için, testlerin kaydedileceği dosyayı oluşturun.
- Puppeteer'in çalıştırılacağı sayfanın URL'sini belirleyin.
- Sayfayı Puppeteer ile açın ve sayfayı kontrol için gerekli işlemleri gerçekleştirin.
- Test senaryosunu çalıştırmak için, terminalde '
node test.js
' yazmanız yeterlidir.
Bu adımları takip ederek, Node.js ve Puppeteer ile test senaryoları yazmak oldukça kolaydır. Ayrıca, bu test senaryoları, zaman alan ve hata yapma olasılığı yüksek olan manuel testlerin yerine kullanılabilir. Bu sayede, uzun vadede zaman ve maliyet tasarrufu sağlanabilir.
Puppeteer ile Sayfa Başlığı Testi Nasıl Yapılır?
Puppeteer ile web sayfasının başlığını test etmek oldukça basittir. İlk olarak, Puppeteer'ın sağladığı page.title() yöntemini kullanarak sayfa başlığına erişin. Daha sonra, başlığın beklediğiniz değerle eşleştiğini doğrulamak için bir jest işlemi kullanabilirsiniz.
Örneğin, "Google" başlığı olan bir sayfayı test etmek istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
Kod | Açıklama |
---|---|
const page = await browser.newPage(); | Yeni bir sayfa oluştur |
await page.goto('https://www.google.com/'); | Google'a git |
const pageTitle = await page.title(); | Sayfa başlığını al |
expect(pageTitle).toBe('Google'); | Başlık "Google" olmalıdır |
Bu kod, Chrome tarayıcısını başlatır, Google'a gider, sayfa başlığını alır ve eşleşmesi gereken değeri doğrular. Eğer sayfa başlığı "Google" değilse, test başarısız olur.
Bu şekilde, Puppeteer kullanarak bir dizi test senaryosu yazabilir ve web sayfalarının doğru şekilde çalıştığından emin olabilirsiniz.
Puppeteer ile Form Testi Nasıl Yapılır?
Form doldurma ve gönderme işlemleri, web sitelerinin temel işlevleri arasında yer alır. Bu nedenle, Puppeteer ile bu işlemlerin otomatik olarak test edilmesi oldukça önemlidir. Puppeteer, internet tarayıcısı üzerinde gezinerek, form doldurma ve gönderme işlemlerini simüle edebilir. Bu sayede, form gönderiminin başarılı olup olmadığı kontrol edilebilir.
Puppeteer ile form testi yazmak için öncelikle formun HTML yapısının incelenmesi gerekir. Formun yapısı belirlendikten sonra, Puppeteer kullanılarak formun doldurulması, gönderilmesi ve sonucun kontrol edilmesi sağlanabilir. Test senaryosu aşağıdaki adımlarla gerçekleştirilebilir:
1. Puppeteer ile internet tarayıcısı açılır ve test edilecek sayfaya gidilir.2. Form alanları, Puppeteer ile seçilerek doldurulur. Örneğin, bir ad ve soyad alanı varsa, "page.type('input[name=ad]', 'Ahmet'); page.type('input[name=soyad]', 'Yılmaz');" gibi bir kod kullanarak alanlar doldurulur. 3. Form gönderim butonu, Puppeteer ile tıklanarak gönderilir. Örneğin, "page.click('button[type=submit]');" gibi bir kod kullanarak butona tıklanabilir.4. Gönderim sonrası oluşan yeni sayfanın yüklenmesini beklemek için, Puppeteer ile bir süre beklenir. Örneğin, "await page.waitForNavigation();" komutu kullanılır. 5. Gönderim sonucu oluşan sayfanın belirli bir alanında sonucun görülmesi beklenir. Bu alanın HTML yapısı incelenerek, Puppeteer ile belirli bir süre içinde sonucun görünmesinin kontrol edilmesi sağlanır.
Puppeteer ile form testi hazırlarken, dikkat edilmesi gereken önemli bir nokta, form alanlarının doğru bir şekilde seçilmesidir. Form alanlarının CSS selector'ları incelenerek, alanların doğru bir şekilde seçilmesi sağlanmalıdır. Ayrıca, form gönderimi sonucunda görünecek olan sayfanın HTML yapısı incelenerek, sonucun görünme şekli kontrol edilmelidir. Böylece, form testlerinin doğru bir şekilde hazırlanması ve başarılı bir şekilde çalıştırılması mümkün olacaktır.