올해 초 Google은 Chrome 112에서 Chrome의 새로운 헤드리스 모드 (--headless=new
)를 사용할 수 있다고 발표했습니다. 이 모드를 사용하면 개발자가 UI가 표시되지 않는 미사용 환경에서 Chrome을 실행할 수 있으므로 테스트 및 자동화 사용 사례에 유용합니다.
이 발표의 일환으로 Chrome 바이너리에서 이전 헤드리스 모드를 삭제할 계획을 언급했습니다. 이전 Headless는 기술적으로 별도의 브라우저이며 현재 두 개의 브라우저 바이너리가 하나의 제품으로 제공되므로 이러한 제거는 타당합니다. 또한 기존 헤드리스 모드와 새로운 헤드리스 모드에 고유한 사용 사례가 있음을 인지하고 있습니다.
- 이전 헤드리스 모드는 Chromium의
//content
모듈을 둘러싼 경량 래퍼이므로 종속 항목이 매우 적습니다. 특히 X11/Wayland, D-Bus가 필요하지 않으며 어떤 면에서 완전한 Chrome 브라우저보다 성능이 우수합니다. 따라서 자동화된 스크린샷 또는 웹 스크래핑과 같은 사용 사례에 적합합니다. - 반면에 새로운 Headless는 실제 Chrome 브라우저이므로 더 안정적이고 안정적이며 더 많은 기능을 제공합니다. 따라서 정확성이 높은 엔드 투 엔드 웹 앱 테스트 또는 브라우저 확장 프로그램 테스트에 더 적합합니다.
즉, 성능과 신뢰성 사이에는 장단점이 있습니다. 나에게 가장 적합한 헤드리스 모드는 무엇인가요? 사용 사례에 따라 다릅니다.
자동화 사용 사례에 전체 Chrome 기능이 필요하지 않은 개발자와 테스터는 기존 Headless를 사용하는 것이 좋습니다. 아니면 새로운 헤드리스가 최선의 선택일 수 있습니다.
개발자와 테스터가 계속해서 이 두 옵션 중에서 선택할 수 있도록 이전 헤드리스 구현이 이제 독립형 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은 Chrome 출시 채널 (공개, 베타, 개발자, Canary)별로 사용 가능한 최신 버전이 포함된 JSON API 엔드포인트를 제공합니다. 최신 상태에 관한 간략한 개요는 Chrome for Testing 사용 가능 여부 대시보드를 참고하세요.
의견
chrome-headless-shell
에 관한 의견을 기다리겠습니다. 문제가 발생하면 신고해 주세요.