Pengujian Selenium Headless Browser: HTMLUnitDriver & PhantomJS

Daftar Isi:

Anonim

Selenium Web driver adalah alat otomatisasi web yang memungkinkan Anda menjalankan pengujian pada browser yang berbeda. Browser ini dapat berupa Internet Explorer, Firefox atau Chrome. Untuk menggunakan browser tertentu dengan Selenium Anda membutuhkan driver yang sesuai.

Saat uji coba, Selenium meluncurkan browser terkait yang disebut dalam skrip dan menjalankan langkah uji. Anda dapat melihat browser dan eksekusi uji beraksi.

Apa Itu Headless Browser?

Browser tanpa kepala adalah browser web tanpa antarmuka pengguna grafis . Program ini akan berperilaku seperti browser tetapi tidak akan menampilkan GUI apa pun.

Beberapa contoh Headless Drivers termasuk

  • HtmlUnit
  • Hantu
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

Dalam tutorial ini kita akan fokus pada HtmlUnit dan PhatomJS

HTMLUnitDriver

HTML UnitDriver adalah browser tanpa kepala yang paling ringan dan paling cepat diimplementasikan untuk WebDriver. Ini didasarkan pada HtmlUnit. Ini dikenal sebagai Headless Browser Driver . Ini sama dengan driver Chrome, IE, atau FireFox, tetapi tidak memiliki GUI sehingga seseorang tidak dapat melihat eksekusi uji di layar.

Fitur driver unit HTML

  • Dukungan untuk protokol HTTPS dan HTTP
  • Dukungan untuk tanggapan HTML (mengklik tautan, mengirimkan formulir, menjalankan model DOM dari dokumen HTML, dll.)
  • Dukungan untuk cookie
  • Dukungan server proxy
  • Dukungan untuk otentikasi dasar dan NTLM
  • Dukungan JavaScript yang sangat baik
  • Dukungan untuk metode pengiriman GET dan POST
  • Kemampuan untuk menyesuaikan header permintaan yang dikirim ke server
  • Kemampuan untuk menentukan apakah respons yang gagal dari server harus memunculkan pengecualian atau harus dikembalikan sebagai halaman dengan jenis yang sesuai

Langkah-langkah Menggunakan HTMLUnit Driver dengan Selenium

Langkah 1) Di Eclipse, salin kode berikut. Tambahkan file pustaka selenium standar ke proyek. Tidak diperlukan file jar tambahan.

paket htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class htmlUnitYest {public static void main (String [] args) {// Membuat instance baru dari driver unit HTMLDriver WebDriver = new HtmlUnitDriver ();// Arahkan ke Googledriver.get ("http://www.google.com");// Cari kotak pencarian menggunakan namanyaElemen WebElement = driver.findElement (By.name ("q"));// Masukkan kueri penelusuranelement.sendKeys ("Guru99");// Kirimkan kueri. Webdriver mencari formulir menggunakan elemen input teks secara otomatis// Tidak perlu mencari / menemukan tombol kirimelement.submit ();// Kode ini akan mencetak judul halamanSistem. out .println ("Judul halaman adalah: + driver.getTitle ());driver.quit ();}}

Langkah 2) Jalankan kode. Anda akan melihat tidak ada browser yang diluncurkan dan hasilnya ditampilkan di konsol.

Manfaat Driver Unit Html:

  • Karena tidak menggunakan GUI apa pun untuk menguji, pengujian Anda akan berjalan di latar belakang tanpa gangguan visual apa pun
  • Dibandingkan dengan semua contoh lainnya, eksekusi lebih cepat
  • Untuk menjalankan pengujian Anda melalui driver HtmlUnit, Anda juga dapat memilih versi browser lainnya
  • Ini adalah platform independen dan lebih mudah untuk menjalankan beberapa pengujian secara bersamaan. Ideal untuk Pengujian Beban.

Batasan:

  • Itu tidak dapat meniru perilaku JavaScript browser lain

PhantomJS

PhantomJS adalah browser tanpa kepala dengan JavaScript API. Ini adalah solusi optimal untuk Pengujian Situs Web Tanpa Kepala, mengakses dan memanipulasi halaman web & dilengkapi dengan API DOM standar.

Untuk menggunakan PhantomJS dengan Seleniun, seseorang harus menggunakan GhostDriver. GhostDriver adalah implementasi protokol Webdriver Wire di JS sederhana untuk PhantomJS.

Rilis terbaru PhatomJS telah mengintegrasikan GhostDriver dan tidak perlu menginstalnya secara terpisah.

Berikut adalah cara kerja sistem-

Langkah-langkah untuk menjalankan Selenium dengan PhatomJS

Langkah 1) Anda perlu Eclipse dengan Selenium diinstal

Langkah 2) Unduh PhantomJS di sini

Langkah 3) Ekstrak folder yang diunduh ke Program Files

Langkah 4) Unduh Driver PhantomJS dari sini. Tambahkan toples ke proyek Anda

Langkah 5) Tempel kode berikut di gerhana

paket htmldriver;impor java.io.File;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.phantomjs.PhantomJSDriver;hantu kelas publik {public static void main (String [] args) {File file = File baru ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Driver WebDriver = PhantomJSDriver baru ();driver.get ("http://www.google.com");Elemen WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Judul halaman adalah: + driver.getTitle ());driver.quit ();}}

Langkah 6) Jalankan kode. Anda akan melihat output ditampilkan di konsol dan tidak ada browser yang diluncurkan.

CATATAN : Saat pertama kali dijalankan, berdasarkan pengaturan Anda, Anda mungkin mendapatkan peringatan keamanan dari Windows untuk memungkinkan menjalankan PhantomJS. Klik Izinkan Akses.

Banyak organisasi menggunakan Phantom.JS untuk berbagai tujuan, misalnya,

  • Pengujian Tanpa Kepala
  • Cuplikan Layar
  • Otomatisasi Halaman
  • Pemantauan Jaringan
  • Untuk merender tangkapan layar dasbor untuk penggunanya
  • Untuk menjalankan tes Unit pada baris perintah
  • Untuk menghasilkan buku pegangan karyawan dari HTML ke PDF
  • Dikombinasikan dengan QUnit untuk rangkaian pengujian

Ringkasan

Untuk menguji aplikasi dengan cepat di berbagai browser dan tanpa gangguan visual, Pengujian browser tanpa kepala digunakan. Karena kecepatan, keakuratan, dan fitur aksesnya yang mudah, driver unit HTML dan PhantomJS semakin populer untuk pengujian browser tanpa kepala. Dengan mengikuti beberapa langkah sederhana, Anda mengetahui betapa mudahnya alat ini dapat diintegrasikan dengan alat lain dan dapat menjalankan kode pengujian.