what is headless browser
이 튜토리얼은 Selenium을 사용한 헤드리스 브라우저, 장점, 예제 및 헤드리스 브라우저 테스트에 대해 설명합니다. HtmlUnitDrvier에 대해서도 배우게됩니다.
지난 몇 년 동안 우리는 웹이 단순한 웹 사이트에서 아름다운 UI로 구축 된 고급 웹 사이트로 진화하는 것을 보았습니다. 요컨대, 자바 스크립트는 웹을 매우 잘 제어하므로 웹 사이트에서 거의 모든 상호 작용을 처리 할 수 있습니다.
오늘날 우리는 브라우저가 매우 효율적이어서 JavaScript를 처리하는 방법을 쉽게 이해할 수 있음을 알 수 있습니다. JavaScript와 협력하여 브라우저는 프로그래밍 방식으로 처리됩니다. 헤드리스 브라우저는 우리의 노력을 개선하기 때문에 웹 브라우저 테스트에 매우 유용한 것으로 간주됩니다.
swf 파일을 어떻게 실행합니까
학습 내용 :
헤드리스 브라우저 란?
헤드리스 – 오 예, 당신은 그것을 올바르게 읽었습니다. Headless는 사용자 인터페이스가없는 웹 브라우저를 의미합니다. 자세히 말하면 헤드리스 브라우저는 실제로 웹 페이지에 액세스하는 브라우저이지만 GUI는 사용자에게 표시되지 않습니다.
헤드리스 브라우저는 다른 브라우저와 동일하지만 화면에서 아무것도 볼 수 없다는 점만 다릅니다. 여기서 우리는 프로그램이 실제로 백엔드에서 실행되고 화면에서 아무것도 볼 수 없다고 말할 수 있습니다. 따라서 Head / GUI가없는 것으로 알려져 있습니다.
일반 브라우저와 마찬가지로 헤드리스 브라우저는 프로그램에 따라 모든 지침을 수행하여 링크 클릭, 페이지 탐색, 문서 다운로드, 문서 업로드 등과 같은 모든 기능을 수행합니다.
일반 브라우저는 GUI 프리젠 테이션을 통해 프로그램의 각 단계를 진행하는 반면, 헤드리스 브라우저의 경우 프로그램의 모든 단계가 순차적이고 정확하게 수행되며 콘솔 또는 명령을 사용하여 추적 할 수 있습니다. 라인 인터페이스.
헤드리스 브라우저의 장점
#1) 헤드리스 브라우저는 컴퓨터에 GUI가없는 경우, 즉 Linux (GUI가없는 OS)를 사용하는 동안 명령 줄 인터페이스를 통해 실행되고 실제로 표시 할 인터페이스가 없을 때 사용됩니다.
#두) 또한 아무것도 볼 필요가없고 모든 테스트가 한 줄씩 성공적으로 실행되도록하는 것이 목적인 경우에도 사용할 수 있습니다.
#삼) 병렬 테스트를 실행해야하는 경우 UI 기반 브라우저는 많은 메모리 및 / 또는 리소스를 사용합니다. 따라서 여기에서 헤드리스 브라우저를 사용하는 것이 좋습니다.
# 4) 지속적인 통합을 통해 다음 릴리스에 대한 회귀 테스트를 수행하고 교차 브라우저 테스트를 완료 한 경우 헤드리스 브라우저 테스트를 사용할 수 있습니다.
# 5) 단일 머신에서 여러 브라우저를 시뮬레이션하거나 데이터 생성만을 위해 테스트 케이스를 실행하려는 경우 헤드리스 브라우저를 사용합니다.
# 6) 실제 브라우저와 비교할 때 헤드리스 브라우저가 더 빠릅니다. 따라서 빠른 실행을 위해 선택됩니다.
헤드리스 브라우저의 단점
#1) 헤드리스 브라우저는 매우 빠르지 만 여전히 몇 가지 단점이 있습니다. 더 빠른 페이지 로딩 기능으로 인해 때때로 문제를 디버그하기가 어렵습니다.
#두) 실제 브라우저 테스트에는 GUI가있는 상태에서 테스트 케이스를 수행하는 것이 포함됩니다. 또한 이러한 테스트는 사용자 앞에서 수행되므로 사용자는 팀과 상호 작용하여 GUI를 참조하고 변경 또는 수정이 필요한 곳을 논의 할 수 있습니다. 이 경우 헤드리스 브라우저를 사용할 수 없습니다.
#삼) 헤드리스 브라우저는 GUI를 나타내지 않기 때문에 스크린 샷을 사용하여 오류를보고하는 것은 번거 롭습니다. 실제 브라우저는 스크린 샷이 테스트에서 필수이기 때문에 스크린 샷을 생성하여 결함을 표시하는 데 도움이됩니다.
# 4) 많은 브라우저 디버깅이 필요한 경우 헤드리스 브라우저 사용이 어려울 수 있습니다.
헤드리스 브라우저의 예
다양한 헤드리스 브라우저를 사용할 수 있습니다.
다음은 몇 가지 예입니다.
- Html 단위 브라우저
- Firefox
- 크롬
- PhantomJS
- Zombie.js
- TrifleJS
- SlimerJS
- 튀김
- SimpleBrowser
- NodeJS
셀레늄을 사용한 헤드리스 테스트
Selenium은 무료 오픈 소스 테스트 도구입니다. 자동화 테스트를 수행하기위한 매우 잘 알려져 있고 효율적인 자동화 도구입니다.
Selenium을 사용하면 Firefox, Chrome, Internet Explorer, Opera, Safari 등과 같은 다양한 브라우저를 지원하여 Java, Python, C #, Ruby, Perl, Scala 등과 같은 다양한 언어로 테스트 스크립트를 작성할 수 있으며 Windows에서 실행할 수 있습니다. , Linux 및 macOS.
Selenium Webdriver는 페이지 자체를 다시로드하지 않고도 다양한 웹 요소가 변경되는 동적 웹 페이지를 잘 지원합니다.
헤드리스 Chrome 및 Firefox
Firefox와 Chrome 브라우저 모두 GUI없이 Firefox 및 Chrome에서 코드를 구현하는 헤드리스 자동화 테스트를 지원합니다.
헤드리스 Firefox 예
Headless Firefox는 56 버전부터 지원하며 Windows, Linux 및 macOS에서 사용할 수 있습니다. Firefox 최신 버전의 geckodriver.exe 파일을 다운로드하고 사용할 버전이 지원되는 최소 버전보다 높은지 확인해야합니다. Firefox는 headless () 메서드를 통해 헤드리스 모드로 실행됩니다.
헤드리스 모드의 Firefox 브라우저 코드를 살펴 보겠습니다.
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class HeadlessFirefox { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.gecko.driver',' E://Selenium/latest firefox exe/geckodriver.exe'); FirefoxOptions options = new FirefoxOptions(); options.setHeadless(true); WebDriver driver = new FirefoxDriver(options); driver.get('www.google.com/'); System.out.println('Executing Firefox Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
헤드리스 모드에서 Firefox 브라우저에 대해 위 코드를 실행하면 페이지 제목과 해당 URL이 표시됩니다. 코드는 헤드리스 모드에서 실행되며 콘솔에서 추적 할 수 있습니다.
C C ++ 인터뷰 질문
Headless Firefox가 Selenium에서 지원되는 것처럼 SlimmerJS 및 W3C WebDrier에서도 실행됩니다.
헤드리스 Chrome 예
Headless Chrome은 Chrome 버전 60 이상을 지원하며 Windows, Linux 및 macOS에서 사용할 수 있습니다. Chrome 브라우저 최신 버전의 .exe 파일을 다운로드해야합니다.
Windows 10 용 무료 DVD 추출 소프트웨어
다음은 헤드리스 모드에서 Chrome을 사용하는 구문입니다.
ChromeOptions options = new ChromeOptions(); options.addArguments(“--headless”); OR options.setHeadless(true);
헤드리스 모드의 Chrome 브라우저 코드를 살펴 보겠습니다.
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class HeadlessChrome { public static void main(String() args) { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver','E://Selenium/latest chrome exe/chromedriver.exe'); ChromeOptions options = new ChromeOptions(); options.addArguments('--headless'); WebDriver driver = new ChromeDriver(options); driver.get('www.google.com/'); System.out.println('Executing Chrome Driver in Headless mode..
'); System.out.println('>> Page Title : '+driver.getTitle()); System.out.println('>> Page URL : '+driver.getCurrentUrl()); } }
헤드리스 모드에서 Chrome 브라우저에 대해 위 코드를 실행하면 페이지 제목과 해당 URL이 표시됩니다. 코드가 실행되고 콘솔에서 실행을 추적 할 수 있습니다.
헤드리스 HtmlUnitDriver
HtmlUnitDriver 란 무엇입니까?
HtmlUnitDriver는 Java로 작성된 헤드리스 웹 브라우저입니다. 이름은 HtmlUnit을 기반으로하는 헤드리스 드라이버임을 나타냅니다. HtmlUnitDriver는 Selenium WebDriver의 기본 제공 헤드리스 브라우저입니다. 가장 가볍고 빠른 브라우저로 간주됩니다.
HtmlUnitDriver의 구현으로 이동하겠습니다. HtmlUnitDriver JAR 파일은 Selenium의 공식 웹 사이트에서 다운로드 할 수 있습니다.
헤드리스 모드의 HtmlUnitDriver
다른 모든 브라우저와 마찬가지로 HtmlUnitDriver의 경우에도 클래스가 헤드리스 모드에서 코드를 실행할 개체를 만들어야합니다.
package headless_testing; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class HtmUnitDriver { public static void main(String() args) { // TODO Auto-generated method stub WebDriver driver = new HtmlUnitDriver(); driver.get('https://www.google.com/'); System.out.println('Executing HtmlUnitDriver in Headless mode..
'); System.out.println('>> Page Title : '+ driver.getTitle()); System.out.println('>> Page URL : '+ driver.getCurrentUrl()); } }
따라서 헤드리스 모드에서 HtmlUnitDriver에 대해 위 코드를 실행하면 수신 된 출력에 페이지 제목과 해당 URL이 표시됩니다. 프로그램에서 수행 된 모든 기능을 단계별로 볼 수있는 콘솔을 통해 출력이 수신됩니다.
아래는 위에서 실행 한 코드의 스크린 샷입니다.
HtmlUnitDriver의 기능 / 장점
(영상 출처 )
- HTTPS 및 HTTP 프로토콜에 대한 지원을 제공합니다.
- JavaScript에 대한 훌륭한 지원.
- 멀티 태스킹을 지원하여 여러 테스트를 실행할 수 있습니다.
- 쿠키에 대한 지원을 제공합니다. 또한 프록시 서버를 지원합니다.
- WebDriver를 가장 빠르게 구현하므로 테스트 스크립트의 성능과 속도가 향상됩니다.
- HtmlUnitDriver는 플랫폼에 독립적입니다.
- 기본적으로 Headless이므로 Headless Testing을 지원합니다.
HtmlUnitDriver의 단점
- 복잡한 웹 사이트에서는 HtmlUnitDriver를 사용할 수 없습니다.
- 실제 브라우저 테스트와 비교할 때 HtmlUnitDriver와 같은 헤드리스 브라우저의 경우 스크립트 디버깅이 매우 어려워집니다.
- HtmlUnitDriver에서는 스크린 샷을 생성 할 수 없습니다.
- 헤드리스 브라우저는 다른 브라우저를 에뮬레이트합니다.
결론
헤드리스 브라우저 테스트는 실제로 빠른 속도와 효율성을 제공하여 더 빠르지 만 비 헤드리스 / 실제 브라우저에서 실제로 충족되는 일부 특정 기능에 도달하지 못합니다.
Headless Browser에는 고유 한 이점이 있지만 Real Browser에는 고유 한 이점이 있습니다. 테스트의 필요성에 따라 테스터에게 바람직하고 유익한 기술을 선택할 수 있습니다.
예를 들면 : 사용자 참여가있는 경우 Real Browser 테스트를 선택할 수 있습니다. 테스트를 빠르게 수행하기위한 UI 프레젠테이션 요구 사항이없는 경우 헤드리스 브라우저 테스트를 수행 할 수 있습니다.
더 효율적인 테스트는 Headless와 Real Browser를 모두 조합 한 것입니다. 이로써 각각의 한계를 극복합니다.
이 튜토리얼이 헤드리스 브라우저 및 헤드리스 브라우저 테스트에 대한 모든 쿼리를 명확히했으면합니다 !!
추천 도서
- Geb 자습서-Geb 도구를 사용한 브라우저 자동화 테스트
- Parrot QA 튜토리얼 : 크로스 브라우저 기능 테스트 도구 검토
- Browserstack 자습서 : 앱 및 브라우저 테스트 플랫폼 (가이드)
- IE 테스터 자습서-Internet Explorer 브라우저 테스트 온라인
- Tricentis Flood 요소를 사용하여 실제 브라우저로 부하 테스트
- Selenium Grid Tutorial : 크로스 브라우저 테스트 설정 및 예
- 2021 년 상위 10 개의 크로스 브라우저 테스트 도구 (최신 순위)
- 크로스 브라우저 테스트 란 무엇이며 수행 방법 : 완전한 가이드