Alat dari Chrome untuk pengujian otomatis dan tanpa hambatan

Pengujian itu penting. Ini adalah langkah penting sebelum mengirimkan apa yang telah Anda buat kepada pengguna, baik itu seluruh situs atau aplikasi, maupun fitur baru, untuk memeriksa apakah situs berfungsi seperti yang diharapkan. Namun, banyak pengujian masih dilakukan secara manual, dengan rekan kerja atau engineer pengujian diminta untuk memeriksa fitur baru dan melaporkan masalah.

Matthias Rohmer
Matthias Rohmer

Meskipun pengujian manual ini dapat menampilkan kelas masalah tertentu, pengujian ini dapat melewatkan banyak masalah lainnya. Orang yang melakukan pengujian mungkin melewatkan kasus ekstrem, atau sama sekali gagal menguji perjalanan tertentu melalui aplikasi. Mereka juga tidak memiliki semua informasi yang Anda miliki saat menulis kode, mereka tidak tahu tentang masalah spesifik yang perlu dicegah oleh kode yang Anda sertakan. Dan, seiring waktu, dan fitur baru ditambahkan, apakah fitur tersebut akan kembali dan menguji ulang semua hal yang sebelumnya berfungsi untuk memastikan perubahan tidak merusaknya?

Itulah sebabnya tim Chrome meyakini pentingnya pengujian otomatis. Dengan menggunakan rangkaian pengujian yang menguji fitur secara andal dan berulang kali untuk menemukan kerusakan, Anda dapat memastikan bahwa setiap detail kecil akan diuji, baik sekarang maupun setelah pengembangan di masa mendatang. Pengetahuan Anda sebagai developer fitur dienkapsulasi dalam pengujian.

Namun, kami tahu bahwa pengujian otomatis tidaklah mudah. Itulah sebabnya tim Chrome menyediakan alat dan panduan berikut untuk mempermudah Anda.

Boneka Puppete

Puppeteer adalah library Node.js. Dengan API ini, Anda dapat mengotomatiskan Chrome, Chromium, dan Firefox dengan API tingkat tinggi yang mudah digunakan.

Meskipun API ini awalnya didasarkan pada Protokol Chrome DevTools, tujuannya adalah untuk menjadikan protokol BiDi WebDriver baru yang canggih sebagai dasar Puppeteer pada akhir tahun ini. WebDriver BiDi, yang dibuat bersama oleh semua vendor browser utama, menyederhanakan banyak kasus penggunaan otomatisasi dan memungkinkan banyak kasus baru, serta kompatibel dengan lintas browser.

Tetapi tidak perlu menunggu. Saat ini, API Puppeteer memungkinkan banyak kasus penggunaan otomatisasi, yang hanya akan meningkat kualitasnya dengan WebDriver BiDi. Mulai pengujian, hingga crawling visual, dan otomatisasi proses, ada banyak hal yang dapat Anda lakukan dengan fitur seperti interaksi halaman, meminta intersepsi, dan screenshot. Anda bahkan dapat menggunakannya untuk menguji model AI web di cloud menggunakan WebGPU dan WebGL.

Puppeteer juga digunakan oleh alat seperti WebdriverIO, framework pengujian browser lengkap, dan Alat Analisis Privacy Sandbox, sehingga Anda dapat lebih memahami penggunaan cookie dan data pengguna di situs Anda.

Headless Chrome

Jika pernah mengotomatiskan Chrome menggunakan Puppeteer, Anda mungkin telah mengetahui bahwa tidak ada jendela browser yang ditampilkan saat pengujian dijalankan. Secara default, Puppeteer memulai Chrome dalam mode Headless. Artinya, tidak ada jendela browser yang sebenarnya saat otomatisasi Anda berjalan.

Namun, tahukah Anda bahwa mode Headless Chrome bukan hanya Chrome tanpa jendela, tetapi sebenarnya merupakan versi Chrome yang dikelola secara terpisah? Untuk waktu yang lama, hal ini menyebabkan kebingungan serta sulit untuk melacak bug dan masalah.

Dari Chrome 112, kami memperkenalkan mode Headless baru, yang kini didasarkan pada codebase yang sama seperti Chrome biasa. Hal ini tidak hanya mengurangi kebingungan sebelumnya, tetapi juga membawa fungsi yang tidak mungkin dilakukan sebelumnya, seperti menggunakan ekstensi selama otomatisasi.

Puppeteer telah menggunakan mode Headless baru ini sebagai default sejak versi 22. Jika Anda menggunakan Chrome Headless melalui solusi otomatisasi lainnya, Anda dapat memaksa mode Headless baru dengan tombol command line --headless=new.

Meskipun mode Headless Chrome baru lebih canggih, mode ini tidak sesederhana mode Headless lama. Jika resource Anda sangat terbatas atau tidak memerlukan semua fitur Chrome, Anda dapat menggunakan mode Headless lama sebagai chrome-headless-shell.

Chrome for Testing

Saat melakukan pengujian, Anda memerlukan kontrol terperinci atas lingkungan pengujian: sistem operasi, browser, dan versi browser. Dengan pembaruan otomatis Chrome, hal ini bisa jadi sulit.

Itulah sebabnya kami menciptakan Chrome for Testing, versi Chrome tanpa update otomatis, yang dirilis bersama setiap versi Chrome untuk setiap sistem operasi utama, yang dapat diakses dari arsip berversi. Hal ini memungkinkan Anda menjalankan alur kerja otomatisasi terhadap versi Chrome tertentu tanpa banyak repot-repot.

Anda dapat mengakses biner Chrome for Testing dari dasbor ketersediaan Chrome for Testing, JSON API, atau dengan utilitas command line Puppeteer.


Puppeteer, mode Headless Chrome yang diperbarui, dan Chrome for Testing hanyalah bagian dari pekerjaan yang sedang dilakukan tim kami untuk membuat otomatisasi browser dan menjalankan pengujian selancar mungkin bagi Anda. Dan alat terkait, seperti DevTools Recorder, mendukung Anda dalam pembuatan pengujian: mencatat alur penggunaan di Chrome dan memutarnya kembali di Puppeteer.

Pelajari Pengujian di web.dev

Alat yang dibahas dalam postingan ini akan membantu Anda meningkatkan pengujian otomatis. Tapi, jika Anda baru saja memulai, sepertinya banyak yang harus dipahami dan dipelajari. Oleh karena itu, kami telah membuat 10 kursus modul baru—Mempelajari Pengujian di web.dev. Kursus mendalam ini membahas konsep inti pengujian, tempat dan cara pengujian dijalankan, jenis pengujian, dan apa yang sebenarnya harus diuji. Ini adalah titik awal yang bagus untuk perjalanan pengujian Anda. Setelah mengetahui dasar-dasarnya, silakan lanjutkan ke koleksi Otomatisasi Pengujian yang berisi pembahasan mendalam dan tips praktis tentang pertanyaan pengujian yang lebih spesifik.