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

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

이 발표의 일환으로 Google은 Chrome 바이너리에서 이전 헤드리스 모드를 삭제할 계획을 언급했습니다. 이전 헤드리스는 기술적으로 별개의 브라우저이기 때문에 이번 삭제는 타당합니다. 즉, 현재 두 개의 브라우저 바이너리가 포함되어 있기 때문입니다. 이와 동시에, 우리는 기존 헤드리스 모드와 새로운 헤드리스 모드에 뚜렷한 사용 사례가 있음을 인지하고 있습니다.

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

즉, 성능과 신뢰성은 상충 관계입니다. 나에게 가장 적합한 헤드리스 모드는 무엇인가요? 사용 사례에 따라 다릅니다.

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

자동화 사용 사례에 전체 Chrome 기능이 필요하지 않은 개발자와 테스터는 이전 헤드리스를 사용하는 것이 좋습니다. 또는 새로운 헤드리스를 선택하는 것이 가장 좋습니다.

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

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 for Testing은 JSON API 엔드포인트를 Chrome 출시 채널 (안정화 버전, 베타, 개발자, Canary)별로 사용 가능한 최신 버전으로 제공합니다. 최신 상태에 대한 간략한 개요를 보려면 Chrome for Testing 가용성 대시보드를 참고하세요.

의견

chrome-headless-shell에 대한 소중한 의견을 기다리겠습니다. 문제가 발생하면 신고해 주세요.