テストや検証に便利な開発者用の「Chrome for Testing」がリリースされる、Chromeのバージョンを指定して起動可能
ウェブアプリの開発をする時には実際にブラウザで操作してみて期待通りの動作をするかのテストを行うものですが、ブラウザのバージョンアップなど、開発者の変更以外の部分でテスト結果が変わってしまうのは困りものです。そうしたウェブアプリの開発者向けに、特定のバージョンのGoogle Chromeを利用できるようにした「Chrome for Testing」をGoogleがリリースしました。
Chrome for Testing: reliable downloads for browser automation - Chrome Developers
https://developer.chrome.com/blog/chrome-for-testing/
高品質なウェブアプリを開発したいなら、自動テストであれ手動テストであれ、ブラウザでのテストは不可欠ですが、これまで適切なテスト環境を用意することが非常に難しいとされてきました。
◆問題点1:ブラウザの自動更新
ブラウザが自動で最新のバージョンにアップデートされる機能は一般ユーザーにとってはありがたい機能ですが、開発者にとっては頭痛の種となっています。例えば開発中にコードを変更した場所の影響を調べるためにテストを動作させたとき、ブラウザが更新されていたせいでその変更の影響まで取り込んでしまうと影響範囲の絞り込みが難しくなってしまいます。
◆問題点2:Google Chromeの過去バージョンの利用が難しい
自動更新の問題を防ぐためは、特定のバージョンのGoogle Chromeの実行ファイルを保存しておけばよさそうです。しかし、Googleはユーザーがバージョン番号を気にしてしまうことを避けるため、意図的にバージョンごとのダウンロードを提供していません。後から「特定のバージョンの実行ファイル」をダウンロードできないため、実行ファイルの管理の手間が増えるほか、ユーザーから「特定のバージョンで動作しない」というバグ報告をもらったときの検証にも困ってしまいます。
さらに、ブラウザ操作を自動化するツール「ChromeDriver」を利用して自動テストを行っている場合はさらに「特定のバージョンのChromeと互換性のあるChrome Driverのバージョン」を探す作業が追加されます。
上記の2つの問題を解決するために開発者たちが編み出した手法が「代わりにChromiumを使う」というもの。もちろん、Chromiumを元に開発されているとはいえChromeとChromiumは異なるものなので、ChromeとChromiumのバージョンは完全には対応しておらず、また動作するプラットフォームも完全に一致するわけではありません。
そこでGoogleが開発したのが「Chrome for Testing」です。Chrome for Testingでは、できる限り実際のリリースに一致させた実行ファイルをバージョンごとに利用可能とのこと。さらに、Chrome for TestingとChromeDriverのバージョンを統合することで、適切なバージョンのChromeDriverが分かりやすくなっています。
Chrome for Testingの実行ファイルをダウンロードするには、npmの「@puppeteer/browsers」を利用するのが簡単です。例えば下記のようなコマンドでダウンロード可能です。
# 現在の安定版と一致する最新のChrome for Testingの実行ファイルをダウンロード npx @puppeteer/browsers install chrome@stable # 特定のバージョンのChrome for Testingをダウンロード npx @puppeteer/browsers install [email protected] # Canary版Chromeに一致するバージョンのChromeDriverをダウンロード npx @puppeteer/browsers install chromedriver@canary # 特定のバージョンのChromeDriverをダウンロード npx @puppeteer/browsers install [email protected]
なお、一般ユーザーが間違って使ってしまわないように、Google Chromeの通常のダウンロードページには意図的に記載されていないとのことです。
・関連記事
悪意あるコードが仕込まれたChrome拡張機能が大量に発見される - GIGAZINE
ウェブアプリに対する典型的な攻撃手法とその対策まとめ - GIGAZINE
PWA製のウェブアプリをGoogle PlayやApp Storeなどのストアで配布できる形式に一発で変換してくれるツール「PWABuilder」 - GIGAZINE
いい感じのUIをサクッと作れるReact用ライブラリ「Tremor」を使ってみた - GIGAZINE
Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
・関連コンテンツ
in ソフトウェア, Posted by log1d_ts
You can read the machine translated English article ``Chrome for Testing'' for devel….