Chrome untuk Pengujian: download yang andal untuk otomatisasi browser

Hari ini, dengan senang hati kami umumkan Chrome for Testing, ragam Chrome baru yang secara khusus menargetkan pengujian aplikasi web dan kasus penggunaan otomatisasi. Artikel ini menjelaskan alasan mengapa tim Chrome merasa hal ini diperlukan, dan membahas contoh konkret di mana Chrome for Testing dapat bermanfaat bagi Anda sebagai developer.

Latar belakang

Pengujian browser merupakan komponen penting dalam menciptakan pengalaman web berkualitas tinggi, terlepas dari apakah pengujian tersebut dilakukan secara manual atau otomatis. Pada saat yang sama, menyiapkan lingkungan pengujian browser yang memadai sangatlah sulit, sehingga secara konsisten dilaporkan sebagai titik masalah developer web utama. Hari ini, kami mengumumkan sebuah perubahan yang diharapkan dapat meringankan sebagian masalah ini.

Update otomatis: bagus untuk pengguna, dan tidak menyenangkan bagi developer

Salah satu fitur Chrome yang paling terkenal adalah kemampuannya untuk melakukan update otomatis. Pengguna senang mengetahui bahwa mereka menjalankan versi browser yang terbaru dan aman, termasuk fitur Platform Web modern, fitur browser, dan perbaikan bug setiap saat.

Namun, sebagai developer yang menjalankan serangkaian pengujian menyeluruh, Anda mungkin memiliki perspektif yang sama sekali berbeda:

  • Anda menginginkan hasil yang konsisten dan dapat direproduksi di seluruh pengujian berulang—tetapi ini mungkin tidak terjadi jika browser yang dapat dieksekusi atau biner memutuskan untuk mengupdate dirinya sendiri di antara dua proses.
  • Anda ingin menyematkan versi browser tertentu dan memeriksa nomor versi tersebut ke dalam repositori kode sumber Anda, sehingga Anda dapat memeriksa commit dan cabang lama serta menjalankan kembali pengujian terhadap biner browser sejak saat itu.

Semua itu tidak mungkin dilakukan dengan biner browser yang diperbarui secara otomatis. Oleh karena itu, Anda mungkin tidak ingin menggunakan penginstalan Chrome reguler untuk pengujian otomatis. Ini adalah ketidakcocokan mendasar antara apa yang baik untuk pengguna browser biasa dan apa yang baik bagi developer yang melakukan pengujian otomatis.

Biner browser dengan versi

Selain update otomatis, Anda mungkin juga merasa sulit menemukan biner Chrome dengan versi tertentu. Google sengaja tidak menyediakan download Chrome berversi, karena pengguna tidak perlu memikirkan nomor versi—mereka harus selalu mendapatkan update ke versi terbaru sesegera mungkin. Ini sangat bagus bagi pengguna, tetapi menyakitkan bagi developer yang perlu mereproduksi laporan bug di Chrome versi lama.

Contoh yang lebih spesifik dari masalah ini adalah saat Anda ingin menggunakan ChromeDriver untuk otomatisasi browser. Anda tidak hanya harus mendownload biner Chrome, tetapi juga memerlukan biner ChromeDriver yang sesuai dengan versi yang digunakan untuk memastikan kedua biner tersebut kompatibel.

Karena tidak ada cara tepat untuk menyelesaikan masalah ini, kami tahu bahwa banyak developer yang mendownload biner Chromium (bukan Chrome), meskipun pendekatan ini memiliki beberapa kekurangan. Pertama, biner Chromium ini tidak tersedia dengan andal di semua platform. Kedua, versi ini dibuat dan dipublikasikan secara terpisah dari proses rilis Chrome, sehingga mustahil untuk memetakan kembali versinya ke rilis Chrome yang sebenarnya ditampilkan kepada pengguna. Ketiga, Chromium berbeda dari Chrome.

Solusi: Chrome for Testing

Dirancang untuk mengatasi masalah tersebut, Chrome for Testing adalah ragam Chrome khusus yang menargetkan kasus penggunaan pengujian, tanpa update otomatis, terintegrasi ke dalam proses rilis Chrome, dan tersedia untuk setiap rilis Chrome. Biner berversi yang semirip mungkin dengan Chrome biasa tanpa berpengaruh negatif terhadap kasus penggunaan pengujian.

Untuk membuat Chrome for Testing, kami telah melakukan perubahan pada codebase Chromium dan Chrome serta menyiapkan infrastruktur untuk membuat dan mengupload biner ini ke bucket yang tersedia secara publik sesuai dengan proses rilis Chrome di semua saluran (Stabil, Beta, Dev, dan Canary).

Infrastruktur di seputar Chrome for Testing membuka peluang menarik di luar Chrome itu sendiri. Misalnya, kesulitan yang kami sebutkan sebelumnya seputar menemukan biner Chrome dan ChromeDriver yang cocok dapat dihilangkan sepenuhnya dengan mengintegrasikan proses rilis ChromeDriver ke dalam infrastruktur Chrome for Testing. Selain memecahkan masalah yang dihadapi pengguna ini, hal ini juga menyelaraskan rilis ChromeDriver dengan Chrome, dan menghilangkan proses rilis ChromeDriver manual.

Bagaimana cara mendapatkan biner Chrome for Testing?

Cara termudah untuk mendownload biner Chrome for Testing untuk platform Anda adalah dengan menggunakan utilitas command line @puppeteer/browsers kami, yang tersedia melalui npm. Berikut beberapa contohnya:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Jika Anda lebih suka membuat skrip otomatis sendiri untuk mengunduh biner ini, kami siap membantu. Kami menawarkan endpoint JSON API dengan versi terbaru yang tersedia per saluran rilis Chrome (Stabil, Beta, Dev, Canary). Untuk mendapatkan ringkasan singkat tentang status terbaru, buka dasbor ketersediaan Chrome for Testing.