Chrome을 사용한 자동화 및 테스트

자동화된 브라우저 테스트는 강력하고 고품질의 웹 애플리케이션을 빌드하는 데 필수적입니다. 지속적 통합 (CI) 엔드 투 엔드 제품군을 실행하든, 브라우저 출시 전반에 걸쳐 회귀 테스트를 실행하든, 브라우저 상호작용을 자동화하든 Chrome은 개발자와 테스트 자동화 엔지니어를 위해 설계된 전용 도구 및 실행 모음을 제공합니다.

이 개요에서는 Chrome의 자동화 및 테스트 생태계의 핵심 제품인 Chrome for Testing, ChromeDriver, Puppeteer, Chrome 헤드리스 모드를 소개하고 안정적이고 재현 가능한 테스트 워크플로를 위해 이러한 제품을 함께 사용하는 방법을 설명합니다.


Chrome for Testing

Chrome for Testing 은 웹 앱 테스트 및 자동화 사용 사례를 타겟팅하는 전용 Chrome 버전입니다.

엔드 투 엔드 테스트 제품군 또는 지속적 통합 (CI) 파이프라인을 실행할 때는 반복되는 테스트 실행에서 일관되고 재현 가능한 결과가 필요한 경우가 많습니다. Chrome for Testing을 사용하면 표준 브라우저 설치에 의존하는 대신 테스트 환경에 특정 Chrome 버전을 다운로드하고 고정할 수 있습니다.

주요 특징

  • 주문형 버전 관리 다운로드: 버전 관리된 특정 Chrome 바이너리에 액세스하여 항상 선택한 정확한 버전을 대상으로 테스트합니다.
  • 채널 간 페어링된 바이너리: 모든 채널 (안정화 버전, 베타, 개발자, Canary)의 모든 Chrome 출시에서 Chrome for Testing은 관련 ChromeDriver 바이너리와 페어링된 일치하는 Chrome 바이너리와 자동 테스트에서 여전히 사용하는 사용자를 위한 이전 Chrome 헤드리스 셸 (chrome-headless-shell)을 제공합니다.
  • 간편한 다운로드 자동화: 바이너리는 @puppeteer/browsers 명령줄 유틸리티를 사용하여 쉽게 다운로드하거나 가용성 대시보드를 통해 쿼리할 수 있습니다.

자세히 알아보기


ChromeDriver

ChromeDriver는 W3C WebDriver 표준과 양방향 WebDriver BiDi 프로토콜을 구현하는 오픈소스 독립형 서버입니다. WebDriver 기반 테스트 프레임워크 (예: Selenium, WebDriverIO, Nightwatch)와 Chrome 브라우저 간의 브리지 역할을 합니다.

주요 특징

  • W3C WebDriver 및 WebDriver BiDi 지원: 기존 WebDriver 자동화 명령어와 WebDriver BiDi를 통한 실시간 양방향 통신을 모두 지원하여 빠른 이벤트 리스닝, 네트워크 모니터링, 로그 가로채기를 지원합니다.
  • Chrome for Testing과 공동 출시: ChromeDriver 출시가 Chrome for Testing 인프라에 직접 통합됩니다. 모든 Chrome for Testing 버전에서 일치하는 ChromeDriver 버전이 동시에 출시되므로 버전 불일치 문제가 발생하지 않습니다.

자세히 알아보기


인형 조종자

Puppeteer는 Chrome DevTools 프로토콜 (CDP) 또는 WebDriver BiDi를 통해 Chrome을 제어하는 고급 API를 제공하는 Google에서 개발한 JavaScript 라이브러리입니다.

주요 특징

  • 설치 없는 자동화: Puppeteer는 기본적으로 호환되는 Chrome for Testing 바이너리를 자동으로 다운로드하여 즉시 사용 가능한 브라우저 자동화를 지원합니다.
  • Chrome에 대한 완전한 제어: 헤드풀 또는 헤드리스 모드에서 스크린샷을 쉽게 캡처하고, PDF를 생성하고, 양식 제출을 자동화하고, 네트워크 요청을 가로채고, UI 테스트를 실행합니다.

자세히 알아보기


Chrome 헤드리스 모드

Chrome 헤드리스 모드를 사용하면 표시되는 사용자 인터페이스 없이 무인 환경에서 Chrome을 실행할 수 있습니다. 명령줄에서 --headless 플래그를 전달하면 Chrome이 서버 환경, 컨테이너, CI/CD 파이프라인에서 깔끔하게 실행됩니다.

주요 특징

  • 통합 브라우저 엔진: 최신 헤드리스 모드 (--headless)는 헤드풀 Chrome과 동일한 브라우저 구현을 공유합니다.
  • 다양한 자동화 및 디버깅 기능: 스크린샷 캡처, PDF 생성, 원격 디버깅, 가상 화면 구성을 지원합니다.

자세히 알아보기


예: 이러한 제품을 함께 사용

일반적인 자동화된 테스트 또는 지속적 통합 (CI) 워크플로에서 이러한 제품은 함께 작동하여 재현 가능한 무인 테스트 환경을 제공합니다.

  1. 브라우저 바이너리 (Chrome for Testing): 특정 버전 고정 Chrome for Testing 바이너리를 사용하여 테스트 결과가 실행 전반에 걸쳐 결정되도록 합니다.
  2. 실행 모드 (Chrome 헤드리스 모드): 헤드리스 모드 (--headless)에서 바이너리를 실행하여 그래픽 표시 없이 서버, 컨테이너 또는 CI 파이프라인에서 테스트가 깔끔하게 실행되도록 합니다.
  3. 자동화 드라이버 (Puppeteer 또는 ChromeDriver): Puppeteer 와 같은 자동화 라이브러리 또는 WebDriver BiDi 를 통해 연결된 다른 테스트 프레임워크를 사용하여 브라우저를 구동합니다.

Puppeteer는 이러한 부분을 자동으로 연결합니다. 설치되면 호환되는 Chrome for Testing 바이너리를 다운로드하고 기본적으로 헤드리스 모드 에서 실행합니다.

W3C WebDriver 프레임워크 (예: Selenium 또는 WebdriverIO)를 사용하는 경우 일치하는 Chrome for TestingChromeDriver 바이너리 쌍을 자동으로 다운로드하고 --headless 플래그를 전달하여 UI 없이 실행할 수 있습니다.


엔터프라이즈 및 출시 채널 가이드