Peramban Tanpa Kepala Selenium (HTMLUnitDriver)

Browser tanpa kepala adalah browser web tanpa antarmuka pengguna grafis. Itu dapat berjalan di latar belakang tanpa gangguan visual. Ini menawarkan cara yang efisien dan efektif untuk menguji aplikasi web sekaligus menghemat waktu dan sumber daya. Dalam tutorial ini, kita akan mendalami apa itu browser tanpa kepala, kapan menggunakan pengujian browser tanpa kepala, dan cara melakukannya menggunakan Selenium.

Apa itu Peramban Tanpa Kepala?

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

Beberapa contoh Headless Driver antara lain

  • Satuan HTML
  • hantu
  • PhantomJS
  • ZombieJS
  • Watir-pengemudi web

Kapan Menggunakan Pengujian Browser Tanpa Kepala?

Di era digital saat ini, aplikasi web dikembangkan agar kompatibel dengan berbagai perangkat dan platform. Hal ini sering kali menjadi tantangan bagi pengembang situs web yang perlu memastikan aplikasi mereka berfungsi dengan lancar di berbagai platform ini. Pengujian browser tanpa kepala merupakan solusi ideal untuk masalah ini karena memungkinkan pengembang menguji aplikasi web mereka tanpa memerlukan antarmuka pengguna grafis. Dengan menggunakan pengujian browser tanpa kepala, pengembang dapat dengan mudah menguji aplikasi web yang kompleks dengan berbagai komponen dan dependensi, sehingga membuka jalan bagi pengembangan yang lebih cepat, kode yang bebas bug, dan pengguna yang puas.

Pengujian Browser Tanpa Kepala dengan Selenium

Selenium adalah alat yang hebat untuk pengujian browser tanpa kepala, yang memungkinkan pengembang untuk menjalankan pengujian otomatis tanpa memerlukan antarmuka pengguna yang terlihat. Dengan menjalankan pengujian di latar belakang, Selenium dapat menghemat waktu dan sumber daya sekaligus membantu mengidentifikasi masalah yang mungkin tidak terlihat dalam lingkungan pengujian berbasis UI tradisional. Ini termasuk masalah terkait kinerja dan masalah tata letak yang mungkin hanya terlihat dalam pengaturan tanpa kepala. Namun, penting untuk mengingat keterbatasan pengujian headless dan menyeimbangkannya dengan metode tradisional berbasis UI untuk memastikan cakupan pengujian yang komprehensif.

Contoh Populer Peramban Tanpa Kepala

Ada banyak browser tanpa kepala yang tersedia, masing-masing memiliki fitur dan manfaat uniknya sendiri, sehingga cocok untuk berbagai kasus penggunaan. Kami membahasnya di bawah ini: -

PhantomJS

PhantomJS adalah browser tanpa kepala yang memanfaatkan WebKit sebagai mesin renderingnya dan mendukung berbagai standar web seperti HTML5, CSS3, dan JavaSkrip. Dapat digunakan untuk tugas tangkapan layar dan otomatisasi halaman. Skrip bersifat sumber terbuka dan kompatibel dengan berbagai sistem operasi.

Contoh Selenium dengan PhantomJS Tanpa Kepala di Python

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Chrome

Chrome adalah browser paling populer di dunia dan juga menawarkan fitur tanpa kepala. Ini dapat digunakan di berbagai platform dan mendukung bahasa dan kerangka pemrograman. Alat debugging bawaan dan dokumentasi ekstensif memudahkan penggunaan dan memecahkan masalah apa pun yang mungkin timbul selama pengujian.

Contoh Chrome Tanpa Kepala dengan Selenium in Python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless')  # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Firefox

Firefox adalah browser web populer yang juga dapat digunakan sebagai browser tanpa kepala untuk tujuan pengujian. Salah satu manfaat menggunakan Firefox sebagai browser tanpa kepala karena sifatnya yang ringan, menjadikannya pilihan serbaguna untuk pengujian di berbagai sistem operasi. Selain itu, dengan dokumentasi yang luas dan dukungan komunitas, Firefox adalah pilihan tepat bagi mereka yang ingin bereksperimen dengan teknologi browser tanpa kepala.

Contoh Tanpa Kepala Firefox dengan Selenium in Python

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless')  # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Keuntungan Pengujian Browser Tanpa Kepala

  • Eksekusi pengujian lebih cepat
  • Pengujian hemat biaya
  • Cakupan pengujian yang lebih baik
  • Fleksibilitas dalam menjalankan tes
  • Integrasi dengan pipeline CI/CD

Kekurangan Pengujian Browser Tanpa Kepala

  • Kurangnya GUI
  • Kesulitan dalam debugging
  • Dukungan browser terbatas

HTMLUnitDriver

HTML UnitDriver adalah browser tanpa kepala yang paling ringan dan implementasi tercepat untuk WebDriver. Ini didasarkan pada HtmlUnit. Hal ini dikenal sebagai Driver Browser Tanpa KepalaSama seperti Chrome, IE, atau FireFox driver, tetapi tidak memiliki GUI sehingga tidak dapat melihat pelaksanaan pengujian di layar.

Fitur driver unit HTML

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

Langkah-langkah Menggunakan Driver HTMLUnit dengan Selenium

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

package  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) {
                     // Creating a new instance of the HTML unit driver
                      
                     WebDriver driver = new HtmlUnitDriver();
                      
           		     // Navigate to Google		
                     driver.get("http://www.google.com");					
          
					 // Locate the searchbox using its name		
                     WebElement element = driver.findElement(By.name("q"));	
                     
                    // Enter a search query		
                    element.sendKeys("Guru99");	
                   
		            // Submit the query. Webdriver searches for the form using the text input element automatically		
                    // No need to locate/find the submit button		
                    element.submit();			
                    
            		// This code will print the page title		
                    System.out.println("Page title is: " + driver.getTitle());		
                    
                    driver.quit();			
         }		
}

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

Langkah-langkah Menggunakan Driver HTMLUnit dengan Selenium

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 instance lainnya, eksekusinya lebih cepat
  • Untuk menjalankan pengujian Anda melalui driver HtmlUnit Anda juga dapat memilih versi browser lainnya
  • Ini adalah platform yang independen dan lebih mudah untuk menjalankan beberapa pengujian secara bersamaan. Ideal untuk Pengujian beban.

Keterbatasan:

  • Itu tidak bisa meniru browser lain JavaPerilaku skrip

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, kita harus menggunakan GhostDriver. Pengemudi Hantu adalah implementasi protokol Webdriver Wire di JS sederhana untuk PhantomJS.

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

Inilah cara sistem bekerja-

PhantomJS

Langkah-langkah untuk dijalankan Selenium dengan PhatomJS

Langkah 1) Anda perlu Eclipse dengan Selenium diinstal

Langkah 2) Unduh PhantomJS di sini

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhatomJS

Langkah 3) Ekstrak folder yang diunduh ke Program Files

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhatomJS

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

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhatomJS

Langkah 5) Tempel kode berikut di eclipse

package htmldriver;	
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;	

public class phantom {				
		public static void main(String[] args) {
        	        File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");				
                    System.setProperty("phantomjs.binary.path", file.getAbsolutePath());		
                    WebDriver driver = new PhantomJSDriver();	
                    driver.get("http://www.google.com");         
                    WebElement element = driver.findElement(By.name("q"));	
                    element.sendKeys("Guru99");					
                    element.submit();         			
                    System.out.println("Page title is: " + driver.getTitle());		
                    driver.quit();			
           }		
}

Langkah 6) Jalankan kodenya. 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.

Langkah-Langkah Untuk Menjalankan Selenium Dengan PhatomJS

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

  • Pengujian Tanpa Kepala
  • screen Capture
  • Otomasi Halaman
  • Pemantauan jaringan
  • Untuk merender tangkapan layar dasbor bagi penggunanya
  • Untuk menjalankan pengujian Unit pada baris perintah
  • Untuk menghasilkan buku pegangan karyawan dari HTML ke PDF
  • Dikombinasikan dengan QUnit untuk rangkaian pengujian

Kesimpulan

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