ニュース

Google、「Chrome for Testing」を発表 ~ブラウザー自動化とテストに特化したバイナリ

自動更新による挙動変更や「ChromeDriver」の不一致といった悪夢からWeb開発者を開放

Google、「Chrome for Testing」を発表

 米Googleは6月12日(現地時間)、「Chrome for Testing」を発表した。Webアプリのテスト・自動化に用いることを想定した新しい「Google Chrome」バイナリだ。

 「Chrome」では自動更新機能が初期状態で有効化されており、Webブラウザーのバージョンは常に最新へ保たれている。これはシステムのセキュリティを維持するために必要なことで、エンドユーザー環境においては妥当な仕様といえるだろう。

 しかし、Web開発者にとっては「Chrome」の自動更新機能は悩みの種だ。

 たとえば、「Chrome」が勝手にバージョンアップしてしまうと、細部の挙動が変わってしまうことがある。アプリのコード変更で動作が変わったのか、知らないうちに「Chrome」が更新されてしまったことが原因なのかがよくわからなくなるだけでなく、特定の「Chrome」バージョンでWebアプリの問題が再現するかをテストしたい場合にも不都合だ。

 また、「ChromeDriver」などの自動化ツールで「Chrome」を操作する場合、双方のバイナリに互換性がないとうまく機能しない。「Chrome」が自動で更新されて「ChromeDriver」が動かなくなる懸念があるうえ、「ChromeDriver」に対応する「Chrome」バージョンを探すのも面倒だ。そのため、「Chrome」の代わりに「Chromium」を用いる開発者も少なくないが、両者は完全に同じものではない。テストでエンドユーザーの環境を再現できているとは言えなくなる。

 こうした問題を解決するために設計されたのが、「Chrome for Testing」だ。

 このバイナリはテスト用途をターゲットにした「Chrome」の派生版で、自動更新機能が無効化されており、バージョンを固定することが可能。互換性のある「Chrome」と「ChromeDriver」をそろえるのも容易だ。インフラは「Chrome」各チャネル(Stable、Beta、Dev、Canary)のリリースプロセスと連動しており、通常の「Chrome」に近い形で提供される。

 「Chrome for Testing」バイナリは、「@puppeteer/browsers」コマンドラインユーティリティで入手できる。これは「npm」からダウンロード・インストールが可能。

# Stableチャンネルに対応する最新のChrome for Testingバイナリをダウンロード
npx @puppeteer/browsers install chrome@stable

# 特定のChrome for Testingのバージョンをダウンロード
npx @puppeteer/browsers install chrome@116.0.5793.0

# Canaryチャンネル対応、かつ利用可能な最新のChromeDriverバージョンをダウンロード
npx @puppeteer/browsers install chromedriver@canary

# 特定のChromeDriverのバージョンをダウンロードする。
npx @puppeteer/browsers install chromedriver@116.0.5793.0

 「Chrome for Testing」が提供されている開発チャネルやプラットフォーム、バージョンは専用サイトで確認可能。自動スクリプトを作成するのに便利なJSON APIエンドポイントも用意されている。

利用できる「Chrome for Testing」の開発チャネルやプラットフォーム、バージョンは専用サイトで確認できる

 なお、「Chrome for Testing」はあくまでもブラウザーの自動化とテストのみを目的として作成されている。日常のブラウジングに用いることは適していないので注意したい。