Chrome untuk Pengujian: download yang andal untuk otomatisasi browser

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

Latar belakang

Pengujian browser adalah komponen penting dalam menciptakan pengalaman web berkualitas tinggi, baik dilakukan secara manual maupun otomatis. Pada saat yang sama, menyiapkan lingkungan pengujian browser yang memadai sangatlah sulit, sehingga secara konsisten dilaporkan sebagai masalah utama bagi developer web. Hari ini, kami mengumumkan perubahan yang diharapkan dapat mengurangi sebagian masalah ini.

Update otomatis: bagus untuk pengguna, menyulitkan developer

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

Namun, sebagai developer yang menjalankan serangkaian pengujian end-to-end, 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 file yang dapat dieksekusi atau biner browser memutuskan untuk mengupdate dirinya sendiri di antara dua pengujian.
  • 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 dari waktu tersebut.

Semua ini tidak mungkin dilakukan dengan biner browser yang diupdate otomatis. Akibatnya, Anda mungkin tidak ingin menggunakan penginstalan Chrome biasa untuk pengujian otomatis. Inilah ketidakcocokan mendasar antara apa yang baik untuk pengguna browser biasa dan apa yang baik untuk developer yang melakukan pengujian otomatis.

Biner browser versi

Selain update otomatis, Anda mungkin juga kesulitan menemukan biner Chrome dengan versi tertentu. Google sengaja tidak menyediakan download Chrome berversi, karena pengguna tidak perlu memedulikan nomor versi—mereka harus selalu diupdate ke versi terbaru sesegera mungkin. Hal ini bagus bagi pengguna, tetapi menyulitkan developer yang perlu mereproduksi laporan bug di Chrome versi lama.

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

Karena tidak ada cara yang baik 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 secara andal di semua platform. Kedua, komponen ini dibuat dan dipublikasikan secara terpisah dari proses rilis Chrome, sehingga versi komponen ini tidak dapat dipetakan kembali ke rilis Chrome yang dihadapi pengguna sebenarnya. Ketiga, Chromium berbeda dengan Chrome.

Solusinya: Chrome for Testing

Didesain untuk memecahkan masalah ini, Chrome untuk Pengujian 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 versi yang sedekat mungkin dengan Chrome biasa tanpa memengaruhi kasus penggunaan pengujian secara negatif.

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

Infrastruktur di sekitar Chrome untuk Pengujian membuka peluang menarik di luar Chrome itu sendiri. Misalnya, kesulitan yang kami sebutkan sebelumnya terkait menemukan biner Chrome dan ChromeDriver yang cocok dapat dihilangkan sepenuhnya 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 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 mendownload biner ini, 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 cepat tentang status terbaru, lihat dasbor ketersediaan Chrome untuk Pengujian.