헤드리스 브라우저 셀레늄(HTMLUnitDriver)

헤드리스 브라우저는 그래픽 사용자 인터페이스가 없는 웹 브라우저입니다. 시각적인 방해 없이 백그라운드에서 실행될 수 있습니다. 시간과 자원을 절약하면서 웹 애플리케이션을 테스트하는 효율적이고 효과적인 방법을 제공합니다. 이 튜토리얼에서는 헤드리스 브라우저가 무엇인지, 언제 헤드리스 브라우저 테스트를 사용해야 하는지, Selenium을 사용하여 이를 수행하는 방법에 대해 알아봅니다.

헤드리스 브라우저란 무엇입니까?

헤드리스 브라우저는 웹 브라우저입니다. 그래픽 사용자 인터페이스 없이. 이 프로그램은 브라우저처럼 작동하지만 GUI를 표시하지 않습니다.

헤드리스 드라이버의 예는 다음과 같습니다.

  • HTML 단위
  • 유령
  • 팬텀 JS
  • 좀비JS
  • Watir-webdriver

헤드리스 브라우저 테스트를 언제 사용해야 합니까?

오늘날의 디지털 시대에 웹 애플리케이션은 다양한 장치 및 플랫폼과 호환되도록 개발되었습니다. 이는 애플리케이션이 이러한 플랫폼에서 원활하게 작동하는지 확인해야 하는 웹사이트 개발자에게 어려운 과제가 되는 경우가 많습니다. 헤드리스 브라우저 테스트는 개발자가 그래픽 사용자 인터페이스 없이 웹 애플리케이션을 테스트할 수 있도록 하므로 이 문제에 대한 이상적인 솔루션입니다. 헤드리스 브라우저 테스트를 사용하여 개발자는 쉽게 COM을 테스트할 수 있습니다.plex 여러 구성요소와 종속성을 갖춘 웹 애플리케이션으로 더 빠른 개발, 버그 없는 코드, 행복한 사용자를 위한 길을 열어줍니다.

Selenium을 사용한 헤드리스 브라우저 테스트

Selenium은 헤드리스 브라우저 테스트를 위한 강력한 도구입니다.wing 개발자는 눈에 보이는 사용자 인터페이스 없이 자동화된 테스트를 실행할 수 있습니다. Selenium은 백그라운드에서 테스트를 실행함으로써 시간과 리소스를 절약하는 동시에 기존 UI 기반 테스트 환경에서는 명확하지 않을 수 있는 문제를 식별하는 데 도움을 줍니다. 여기에는 헤드리스 설정에서만 분명하게 나타날 수 있는 성능 관련 문제와 레이아웃 문제가 포함됩니다. 그러나 포괄적인 테스트 범위를 보장하려면 헤드리스 테스트의 한계를 염두에 두고 기존 UI 기반 방법과 균형을 맞추는 것이 중요합니다.

헤드리스 브라우저의 인기 있는 예

고유한 기능과 이점을 갖춘 헤드리스 브라우저가 많이 있으므로 다양한 사용 사례에 적합합니다. 우리는 아래에서 이에 대해 논의합니다:-

팬텀 JS

PhantomJS는 WebKit을 렌더링 엔진으로 활용하고 HTML5, CSS3, JavaScript 등 다양한 웹 표준을 지원하는 헤드리스 브라우저입니다. 화면 캡처 및 페이지 자동화 작업에 사용할 수 있습니다. 오픈 소스이며 여러 운영 체제와 호환됩니다.

Python에서 헤드리스 PhantomJS를 사용하는 Selenium의 예

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은 지구상에서 가장 인기 있는 브라우저이며 헤드리스 기능도 제공합니다. 여러 플랫폼에서 사용할 수 있으며 프로그래밍 언어와 프레임워크를 지원합니다. 내장된 디버깅 도구와 광범위한 문서를 통해 테스트 중에 발생할 수 있는 모든 문제를 쉽게 사용하고 해결할 수 있습니다.

Python에서 Selenium을 사용하는 헤드리스 Chrome의 예

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 테스트 목적으로 헤드리스 브라우저로도 사용할 수 있는 인기 있는 웹 브라우저입니다. 사용하면 좋은 점 중 하나는 Firefox 헤드리스 브라우저는 가볍기 때문에 다양한 운영 체제에서 테스트할 수 있는 다목적 옵션입니다. 또한 광범위한 문서와 커뮤니티 지원을 통해 Firefox 헤드리스 브라우저 기술을 실험하려는 사람들에게 탁월한 선택입니다.

헤드리스의 예 Firefox 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()

헤드리스 브라우저 테스트의 장점

  • 더 빠른 테스트 실행
  • 비용 효율적인 테스트
  • 더 나은 테스트 범위
  • 테스트 실행의 유연성
  • CI/CD 파이프라인과 통합

헤드리스 브라우저 테스트의 단점

  • GUI 부족
  • 디버깅의 어려움
  • 제한된 브라우저 지원

HTMLUnitDriver

HTML UnitDriver는 WebDriver 중 가장 가볍고 가장 빠르게 구현되는 헤드리스 브라우저입니다. HtmlUnit을 기반으로 합니다. 그것은 다음과 같이 알려져 있습니다. 헤드리스 브라우저 드라이버. Chrome, IE 또는 FireFox 드라이버이지만 GUI가 없으므로 화면에서 테스트 실행을 볼 수 없습니다.

HTML 유닛 드라이버의 특징

  • HTTPS 및 HTTP 프로토콜 지원
  • HTML 응답 지원(링크 클릭, 양식 제출, HTML 문서의 DOM 모델 탐색 등)
  • 쿠키 지원
  • 프록시 서버 지원
  • 기본 및 NTLM 인증 지원
  • 우수한 자바 스크립트 SUPPORT
  • 제출 방법 GET 및 POST 지원
  • 서버로 전송되는 요청 헤더를 사용자 정의하는 기능
  • 서버의 실패한 응답이 예외를 발생시켜야 하는지 아니면 적절한 유형의 페이지로 반환되어야 하는지 결정하는 기능

Selenium과 함께 HTMLUnit 드라이버를 사용하는 단계

단계 1) In Eclipse, 다음 내용을 복사하세요wing 암호. 프로젝트에 표준 셀레늄 라이브러리 파일을 추가합니다. 추가 jar 파일은 필요하지 않습니다.

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();			
         }		
}

2단계) 코드를 실행합니다. 브라우저가 실행되지 않고 결과가 콘솔에 표시되는 것을 볼 수 있습니다.

Selenium과 함께 HTMLUnit 드라이버를 사용하는 단계

Html 유닛 드라이버의 장점:

  • 테스트에 GUI를 사용하지 않기 때문에 테스트는 시각적 중단 없이 백그라운드에서 실행됩니다.
  • 다른 모든 인스턴스에 비해 실행 속도가 빠릅니다.
  • HtmlUnit 드라이버를 통해 테스트를 실행하려면 다른 브라우저 버전을 선택할 수도 있습니다.
  • 플랫폼 독립적이며 여러 테스트를 동시에 실행하는 것이 더 쉽습니다. 다음에 이상적입니다. 부하 테스트.

제한 사항 :

  • 다른 브라우저의 JavaScript 동작을 에뮬레이션할 수 없습니다.

팬텀 JS

PhantomJS는 JavaScript API를 갖춘 헤드리스 브라우저입니다. 이는 헤드리스 웹사이트 테스트, 웹페이지 액세스 및 조작을 위한 최적의 솔루션이며 표준 DOM API와 함께 제공됩니다.

Seleniun과 함께 PhantomJS를 사용하려면 GhostDriver를 사용해야 합니다. 고스트드라이버 PhantomJS용 간단한 JS에서 Webdriver Wire 프로토콜을 구현한 것입니다.

Ph의 최신 릴리스atomJS는 통합 된 고스트드라이버와 별도로 설치할 필요가 없습니다.

시스템 작동 방식은 다음과 같습니다.

팬텀 JS

Ph로 Selenium을 실행하는 단계atomJS

단계 1) 당신이 필요합니다 Eclipse 셀레늄이 설치된 경우

단계 2) PhantomJS 다운로드 여기를 눌러 더 많은 정보를 찾으세요.

Ph로 셀레늄을 실행하는 단계atomJS

단계 3) 다운로드한 폴더를 Program Files로 추출하세요.

Ph로 셀레늄을 실행하는 단계atomJS

단계 4) PhantomJS 드라이버를 다음에서 다운로드하세요. 여기를 눌러 더 많은 정보를 찾으세요.. 프로젝트에 항아리 추가

Ph로 셀레늄을 실행하는 단계atomJS

단계 5) 다음 내용을 붙여넣으세요.wing 코드 입력 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();			
           }		
}

단계 6) 코드를 실행하세요. 출력이 콘솔에 표시되고 브라우저가 실행되지 않는 것을 볼 수 있습니다.

주의사항: 처음 실행 시 설정에 따라 보안 경고가 나타날 수 있습니다. Windows PhantomJS를 실행할 수 있습니다. 액세스 허용을 클릭하세요.

Ph로 셀레늄을 실행하는 단계atomJS

많은 조직에서는 다음과 같은 다양한 목적으로 Phantom.JS를 사용합니다.

  • 헤드리스 테스트
  • 화면 캡처
  • 페이지 자동화
  • 네트워크 모니터링
  • 사용자를 위해 대시보드 스크린샷을 렌더링하려면
  • 명령줄에서 단위 테스트를 실행하려면
  • HTML에서 PDF로 직원 핸드북을 생성하려면
  • 테스트 스위트를 위해 QUnit과 결합됨

요약

다양한 브라우저에서 시각적 중단 없이 신속하게 애플리케이션을 테스트하기 위해 헤드리스 브라우저 지원 사용. 속도, 정확성 및 액세스하기 쉬운 기능으로 인해 HTML 유닛 드라이버와 PhantomJS는 헤드리스 브라우저 자동화 테스트에서 인기를 얻고 있습니다. 팔로우로wing 몇 가지 간단한 단계를 통해 이러한 도구를 다른 도구와 얼마나 쉽게 통합하고 테스트 코드를 실행할 수 있는지 알 수 있습니다.