WebDriver BiDi - Masa depan otomatisasi lintas browser

Dalam artikel sebelumnya, kita telah memeriksa protokol otomatisasi yang ada, yaitu WebDriver "Klasik" dan Chrome DevTools Protocol (CDP), beserta kelebihan dan batasan masing-masing.

Masuk ke WebDriver BiDi, masa depan otomatisasi browser. Ini adalah protokol otomatisasi browser standar baru yang sedang dalam pengembangan, yang bertujuan untuk menggabungkan WebDriver “Klasik” dan CDP. WebDriver BiDi menjanjikan komunikasi dua arah, sehingga cepat secara default, dan dilengkapi dengan kontrol tingkat rendah.

WebDriver BiDi
WebDriver “Klasik” Chrome DevTools Protocol (CDP)
Dukungan lintas browser terbaik Pesan dua arah yang cepat
Standar W3C Memberikan kontrol tingkat rendah
Dibuat untuk pengujian

Visi di balik WebDriver BiDi adalah memungkinkan Anda menulis pengujian menggunakan alat favorit dan mengotomatiskan pengujian di browser atau driver apa pun, sehingga memberi Anda fleksibilitas penuh.

Visi di balik WebDriver BiDi.
Visi di balik WebDriver BiDi

Standardisasi

WebDriver BiDi Working Group terdiri dari berbagai grup vendor browser, project otomatisasi browser open source, dan perusahaan yang menawarkan solusi otomatisasi browser. Kolaborasi ini memastikan masa depan yang menjanjikan untuk otomatisasi browser.

Grup Kerja BiDi WebDriver
Grup Kerja BiDi WebDriver

Pekerjaan ini sebagian besar dilakukan di repositori GitHub ini. Ada pertemuan bulanan dengan semua vendor browser utama yang melaporkan progres sebenarnya dan membahas detail yang dapat diperdebatkan dan tidak diketahui. Grup kerja lintas perusahaan memastikan bahwa keputusan selaras dengan semua pemangku kepentingan.

Menetapkan dan menerapkan protokol baru bukanlah hal yang mudah. Hal ini memerlukan upaya bersama dari berbagai vendor yang berkolaborasi dan bekerja sama. Proses ini melibatkan aktivitas:

  • Spesifikasi: proses permintaan komentar (RFC) untuk mengumpulkan masukan tentang proposal.
  • Verifikasi: serangkaian pengujian yang dapat dijalankan di seluruh platform, yang berfungsi sebagai sumber tepercaya untuk semua implementasi.
  • Implementasi: browser menerapkan protokol sesuai dengan spesifikasi dan lulus pengujian verifikasi.

Tantangan

Di bagian ini, kita akan mempelajari tantangan penerapan WebDriver BiDi, karena WebDriver BiDi berupaya mencapai keseimbangan antara kompatibilitas, kegunaan, dan kemampuan penerapan.

Lebih dari sekadar clone CDP: mengadopsi kompatibilitas lintas browser

CDP, dengan elemen khusus Chrome dan DevTools, tidak dapat direplikasi secara langsung dalam spesifikasi BiDi WebDriver. Menerapkan CDP apa adanya tidak akan mungkin dilakukan untuk browser lain, sehingga membuat spesifikasi yang hanya mendokumentasikan cara melakukannya menjadi tidak berguna.

Memastikan latensi rendah

WebDriver BiDi harus dirancang untuk menangani latensi tinggi tanpa mengorbankan performa. Di CDP, latensi rendah karena klien dan server hampir selalu berjalan di mesin fisik yang sama, tetapi hal ini tidak terjadi di WebDriver BiDi. Oleh karena itu, WebDriver BiDi harus meminimalkan jumlah roundtrip yang diperlukan antara klien dan server.

Memprioritaskan ergonomi di BiDi

Meskipun developer tidak diharapkan untuk mem-build klien WebDriver BiDi dari awal, penting untuk menghindari protokol yang terlalu rumit. BiDi yang terlalu kompleks tidak hanya sulit diterapkan, tetapi juga sulit digunakan, sehingga menghambat adopsi dan penggunaan.

Memastikan penerapan BiDi

WebDriver BiDi harus dapat diimplementasikan secara realistis, dengan mempertimbangkan batasan berbagai browser. Misalnya, mempertahankan semua objek JavaScript yang pernah diekspos ke klien oleh BiDi dapat menyebabkan kebocoran memori, sedangkan tidak menyimpannya akan menghambat proses debug dan interaksi dengan JavaScript halaman. Anda harus menyeimbangkan antara otomatisasi browser yang efektif tanpa mengorbankan performa.

Mengatasi tantangan

Di bagian ini, kita akan membahas strategi yang digunakan untuk mengatasi tantangan penerapan WebDriver BiDi.

Pembuatan prototipe cepat

Mengatasi tantangan penerapan sangat penting untuk kesuksesan BiDi. Untuk mempercepat progres spesifikasi dan pengujian, kami mengadopsi pendekatan pembuatan prototipe cepat menggunakan NodeJS. Hal ini tidak hanya memungkinkan kita bereksperimen dengan berbagai solusi, tetapi juga memfasilitasi pengembangan Pengujian Platform Web.

Desain dengan mempertimbangkan performa

Keputusan desain ini didorong oleh performa karena, dalam beberapa kasus, latensi tinggi di WebDriver BiDi. Misalnya, saat mengambil ID dan nilai objek dari browser, WebDriver BiDi hanya memerlukan satu perjalanan bolak-balik, sedangkan CDP memerlukan dua. Hal ini karena WebDriver BiDi dapat menampilkan ID dan nilai dalam satu respons (hasilnya tidak boleh diserialisasi JSON), sedangkan CDP harus menampilkannya secara terpisah.

Penekanan pada Pengujian Platform Web (WPT)

Pengujian Platform Web memainkan peran penting dalam pekerjaan BiDi. Saat ini mencakup WebDriver “Klasik” dan WebDriver BiDi, WPT berfungsi sebagai referensi yang andal untuk semua implementasi. Pengujian ini dirancang untuk dijalankan dan diteruskan di berbagai implementasi, sehingga memastikan eksekusi protokol lintas browser yang konsisten, yang sangat penting untuk keberhasilan WebDriver BiDi. Lihat hasil WPT terbaru di dasbor.

Apa rencana dan progres saat ini?

Lihat roadmap WebDriver BiDi untuk memahami arah project. Roadmap ini masih dalam proses dan terus berkembang.

Lihat Pengujian Platform Web terbaru untuk mengetahui status penerapan di seluruh browser, karena berfungsi sebagai sumber tepercaya.

Ikuti milestone project untuk memantau progresnya.

Temukan pencapaian yang dibuat pada tahun 2023 dan dapatkan info terbaru tentang perkembangan terbaru.

Mendukung BiDi WebDriver: cara Anda dapat membantu

Apakah Anda tertarik dengan masa depan otomatisasi browser dengan WebDriver BiDi? Berikut cara menunjukkan dukungan Anda:

  • Jadilah penguji dan pengguna awal, yang membantu membentuk masa depan WebDriver BiDi.
  • Sebarkan beritanya! Bagikan project di media sosial menggunakan hashtag #WebDriverBiDi.
  • Meminta dukungan. Ajukan permintaan fitur atau hubungi alat favorit Anda untuk mengetahui rencana mereka dalam mengadopsi WebDriverBiDi.
  • Berpartisipasi dalam RFC, dengan memberikan masukan tentang API.

Pertanyaan umum

Apakah WebDriver BiDi akan menggantikan Chrome DevTools Protocol (CDP)?

Tidak. Browser berbasis Chromium akan terus menggunakan CDP untuk tujuan proses debug, sedangkan WebDriver BiDi adalah spesifikasi baru untuk memenuhi kebutuhan pengujian dengan API yang lebih ergonomis.

Karena Puppeteer menggunakan CDP, apakah ini berarti Puppeteer tidak akan digunakan lagi?

Tidak. Namun, WebDriver BiDi akan memungkinkan Puppeteer menjadi alat otomatisasi lintas browser.

Apakah Anda memiliki roadmap publik?

Ya, kunjungi roadmap kami di GitHub.