とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

Chromeにテスト専用のブラウザーが出てきたので触ってみた

気になったニュース記事をちょっと深掘りしてみる記事です。

今回は、Chromeでテスト向けのブラウザーが登場したという記事を見かけたので触ってみました。

developer.chrome.com

このツールが登場して何が嬉しいのかというと、Chromeを任意のバージョンで自由に立ち上げられるようになり、かつ自動化ツール向けのドライバーも合わせてサポートされたことです。

Chromeは、通常であれば自動でバージョンアップされていくため、ブラウザーを再起動すると新しいバージョンに変わってしまうことはよくありました。
記事の中にも書いてありましたが、「ユーザにとっては便利ですが、開発者にとっては苦痛です」の1文が、まさにそうそう、と共感できるものですね。

前職でRPAチームを見ているときによく発生していたので、 一生忘れることのない思い出かもしれません。
今となっては話のネタとして使えるので、結果的には良かったのかなと思いますが、 当時は非常に大変な思いをしていました。
記事の中ではこの バージョンの自動アップデートの問題を解決するために、Chromiumがよく使われているということに触れられていたので、 そのような使い方を解消するために登場してきたみたいですね。

ということで早速インストールして使ってみたいと思います。

インストール方法

ドキュメントを見てみると、通常のChromeをインストールする時のようにインストーラーはなく、CLIツールのみです。
コマンドを見てみるとnpxを使用するので、nodeコマンドが使用できるようにする必要はありそうですね。
コマンドはinstalllaunchclearの大きく3つがありますが、詳しくはnpx @puppeteer/browsers --helpを実行して確認してください。

コマンド 説明
install 特定のバージョンのバイナリーをインストールする。
launch インストールしたバイナリーを実行する。
***.app形式で保存さているため、Finderから直接実行することもできそうです。
clear インストールしたファイルを削除する。

コマンド実行時に困ったことを補足すると、オプションを見た感じだと[デフォルト: Auto-detected]となっていたので、自動で検出されるような気がしますがApple siliconが正しく認識されずに、Intel版でインストールされていました。
もし同じようにIntel版でインストールされてしまう方は、--platformのオプションを指定してインストールしてみてください。

ダウンロードできるバージョンを確認したい場合はこちらを参照。

https://googlechromelabs.github.io/chrome-for-testing/known-good-versions.json

# Intel
npx @puppeteer/browsers install chrome@stable

# Apple silicon
npx @puppeteer/browsers install --platform mac_arm chrome@stable

特定のバージョンをインストールする場合はこちらです。

# Intel
npx @puppeteer/browsers install chrome@116.0.5793.0

# Apple silicon
npx @puppeteer/browsers install --platform mac_arm chrome@116.0.5793.0

正しくインストールされたかどうかは、次のコマンドを実行して確認します。

ls -1 chrome

実行結果はこんな感じです。

❯ ls -1 chrome
mac_arm-114.0.5735.133

実行方法

実行する場合は、ビルドIDを正確に指定する必要があるという感じのことが書かれていたので、stableなどの表記ではなくxxx.xxx.xxの形式に置き換えて実行します。

npx @puppeteer/browsers launch chrome@114.0.5735.133 --platform mac_arm

すると、しばらくしてブラウザーが立ち上がると思います。

せっかくなので、古いのをインストールしてみようと思ったのですが、そこまで大袈裟に古いものはインストールできないみたいですね。
インストール可能な一覧を見たら1つ前のメジャーバージョンの最新までのようでした。

違うバージョンも試してみるという意味で。

npx @puppeteer/browsers install --platform mac_arm chrome@113.0.5672.0

インストールが終わったら、実行する。

npx @puppeteer/browsers launch --platform mac_arm chrome@113.0.5672.0

無事に立ち上がりました。

最後に

Chromeのバージョン切り替えが楽になりましたね。
他にもFIrefoxやChromiumも同じように使えるようなので、テストや自動化ツールで上手く使っていきたいですね。