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 mengapa tim Chrome merasa hal ini diperlukan, dan membahas contoh konkret bagaimana Chrome for Testing dapat menguntungkan Anda sebagai developer.

Latar belakang

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

Pembaruan otomatis: bagus untuk pengguna, menyulitkan developer

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

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

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

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

Biner browser berversi

Selain update otomatis, Anda mungkin juga merasa kesulitan menemukan biner Chrome dengan versi tertentu. Google sengaja tidak menyediakan download Chrome berversi, karena pengguna tidak perlu mempedulikan nomor versi—mereka harus selalu diupdate 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 mengunduh biner Chrome, Anda juga memerlukan biner ChromeDriver dengan versi yang sesuai untuk memastikan kedua biner tersebut kompatibel.

Karena tidak ada cara yang tepat untuk mengatasi masalah ini, kami tahu bahwa banyak developer mendownload biner Chromium (bukan Chrome), meskipun pendekatan ini memiliki beberapa kekurangan. Pertama, biner Chromium ini tidak tersedia secara andal di semua platform. Kedua, API 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, yang terintegrasi ke dalam proses rilis Chrome, yang tersedia untuk setiap rilis Chrome. Biner berversi yang semirip mungkin dengan Chrome biasa tanpa berpengaruh negatif pada kasus penggunaan pengujian.

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

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

Bagaimana cara mendapatkan biner Chrome for Testing?

Cara termudah untuk mendownload biner Chrome untuk Pengujian untuk platform Anda adalah dengan menggunakan utilitas command line @puppeteer/browsers, 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 mendownload biner tersebut, kami siap membantu Anda. 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, lihat dasbor ketersediaan Chrome for Testing.