이전 헤드리스 Chrome을 chrome-headless-shell로 다운로드

올해 초 Chrome 112에서 Chrome의 새로운 헤드리스 모드 (--headless=new)를 사용할 수 있다고 발표했습니다. 이 모드를 사용하면 개발자가 표시되는 UI 없이 무인 환경에서 Chrome을 실행할 수 있습니다. 이는 테스트 및 자동화 사용 사례에 유용합니다.

이 발표의 일환으로 Chrome 바이너리에서 이전 헤드리스 모드를 삭제할 계획을 언급했습니다. 이전 헤드리스는 기술적으로 별도의 브라우저이므로 이러한 삭제는 당연한 조치입니다. 즉, 현재 두 개의 브라우저 바이너리가 하나로 제공되고 있습니다. 동시에 이전 헤드리스 모드와 새 헤드리스 모드에는 서로 다른 사용 사례가 있습니다.

  1. 이전 헤드리스 모드는 Chromium의 //content 모듈을 둘러싼 경량 래퍼이므로 종속 항목이 훨씬 적습니다. 특히 X11/Wayland, D-Bus가 필요하지 않으며 어떤 면에서는 본격적인 Chrome 브라우저보다 성능이 우수합니다. 따라서 자동 스크린샷 또는 웹 스크래핑과 같은 사용 사례에 적합합니다.
  2. 반면 새로운 Headless는 실제 Chrome 브라우저이므로 더 진짜 같고 안정적이며 더 많은 기능을 제공합니다. 따라서 정확성이 높은 엔드 투 엔드 웹 앱 테스트 또는 브라우저 확장 프로그램 테스트에 더 적합합니다.

즉, 성능과 진위성 사이에는 절충점이 있습니다. 어떤 헤드리스 모드가 가장 적합한가요? 사용 사례에 따라 다릅니다.

앞의 목록에 제공된 정보를 보여주는 다이어그램

자동화 사용 사례에 전체 Chrome 기능이 필요하지 않은 개발자와 테스터는 이전 Headless를 사용하는 것이 좋습니다. 그렇지 않다면 새 Headless가 가장 좋은 선택일 수 있습니다.

개발자와 테스터가 계속해서 이 두 가지 옵션 중에서 선택할 수 있도록 이제 이전 헤드리스 구현을 독립형 chrome-headless-shell 바이너리로 사용할 수 있게 되었습니다. 이러한 새로운 chrome-headless-shell 바이너리는 모든 사용자 대상 Chrome 출시에 대해 생성되며 Chrome 120부터 테스트용 Chrome 인프라를 통해 다운로드할 수 있습니다.

chrome-headless-shell 바이너리는 어떻게 가져오나요?

다른 Chrome for Testing 바이너리와 마찬가지로 플랫폼용 chrome-headless-shell를 다운로드하는 가장 쉬운 방법은 npm를 사용하여 제공되는 @puppeteer/browsers 명령줄 유틸리티를 사용하는 것입니다. 예를 들면 다음과 같습니다.

# Download the latest available `chrome-headless-shell` binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome-headless-shell@stable

# Download a specific `chrome-headless-shell` version.
npx @puppeteer/browsers install chrome-headless-shell@120.0.6098.0

chrome-headless-shell 바이너리를 다운로드하기 위한 자체 자동화 스크립트를 빌드하려면 다음을 참고하세요. 테스트용 Chrome은 Chrome 출시 채널 (안정화 버전, 베타, 개발자, Canary)별로 사용 가능한 최신 버전의 JSON API 엔드포인트를 제공합니다. 최신 상태를 빠르게 확인하려면 테스트용 Chrome 사용 가능 여부 대시보드를 참고하세요.

의견

chrome-headless-shell에 관한 여러분의 의견을 기다리고 있습니다. 문제가 발생하면 신고해 주세요.