WebDriver BiDi - Masa depan otomatisasi lintas browser

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

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

BiDi WebDriver
WebDriver “Klasik” Protokol Chrome DevTools (CDP)
Dukungan lintas browser terbaik Pengiriman pesan dua arah yang cepat
Standar W3C Menyediakan kontrol level rendah
Dibuat untuk pengujian

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

Visi di balik WebDriver BiDi.
Visi di balik WebDriver BiDi

Standardisasi

WebDriver BiDi Working Group terdiri atas beragam 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.

Kelompok Kerja BiDi WebDriver
Grup Kerja WebDriver BiDi

Pekerjaan sebagian besar dilakukan di repositori GitHub ini. Ada pertemuan bulanan dengan semua vendor browser utama yang melaporkan kemajuan yang sebenarnya dan membahas hal-hal spesifik yang dapat diperdebatkan dan tidak diketahui. Kelompok kerja lintas perusahaan memastikan bahwa keputusan-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 terkait proposal.
  • Verifikasi: serangkaian pengujian yang dapat dijalankan di berbagai platform, yang berfungsi sebagai sumber kebenaran untuk semua implementasi.
  • Implementasi: browser menerapkan protokol sesuai dengan spesifikasi dan lulus uji verifikasi.

Tantangan

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

Lebih dari clone CDP: menerapkan kompatibilitas lintas browser

CDP, dengan elemen khusus Chrome dan DevTools, tidak dapat direplikasi secara langsung dalam spesifikasi BiDi WebDriver. Mengimplementasikan CDP sebagaimana adanya tidak mungkin dilakukan oleh browser lain, membuat spesifikasi yang hanya mendokumentasikan cara melakukannya tidak ada gunanya.

Memastikan latensi rendah

BiDi WebDriver 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 tidak terjadi di WebDriver BiDi. Oleh karena itu, WebDriver BiDi harus meminimalkan jumlah perjalanan bolak-balik yang diperlukan antara klien dan server.

Memprioritaskan ergonomi di BiDi

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

Memastikan bahwa BiDi dapat diimplementasikan

BiDi WebDriver harus dapat diimplementasikan secara realistis, dengan mempertimbangkan keterbatasan berbagai browser. Misalnya, mempertahankan semua objek JavaScript yang pernah diekspos ke klien oleh BiDi dapat menyebabkan kebocoran memori, tetapi tidak menyimpannya akan menghambat proses debug dan interaksi dengan JavaScript halaman. Penting untuk mencapai keseimbangan yang memungkinkan otomatisasi browser yang efektif tanpa mengorbankan performa.

Mengatasi tantangan

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

Pembuatan prototipe yang cepat

Mengatasi tantangan kemampuan penerapan sangat penting untuk kesuksesan BiDi. Untuk mempercepat progres terkait spesifikasi dan pengujian, kami mengadopsi pendekatan pembuatan prototipe cepat menggunakan NodeJS. Hal ini tidak hanya memungkinkan kami 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, latensinya tinggi di WebDriver BiDi. Misalnya, saat mengambil ID objek dan nilai dari browser, WebDriver BiDi hanya memerlukan satu perjalanan bolak balik, sedangkan CDP memerlukan dua perjalanan. Hal ini karena WebDriver BiDi dapat menampilkan ID dan nilai dalam satu respons (hasil tidak boleh JSON-serializable), sementara CDP harus menampilkannya secara terpisah.

Penekanan pada Pengujian Platform Web (WPT)

Pengujian Platform Web memainkan peran penting dalam karya BiDi. Saat ini mencakup WebDriver “Klasik” dan WebDriver BiDi, WPT berfungsi sebagai referensi yang dapat diandalkan 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 rencananya dan kemajuan saat ini?

Lihat roadmap WebDriver BiDi untuk memahami arah project. {i>Roadmap<i} adalah pekerjaan yang masih berjalan dan terus berkembang.

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

Ikuti pencapaian project untuk memantau progresnya.

Temukan pencapaian yang dibuat pada tahun 2023 dan terus ikuti perkembangan terbarunya.

Mendukung WebDriver BiDi: cara membantu Anda

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

  • Menjadi penguji dan pengguna awal, yang membantu membentuk masa depan WebDriver BiDi.
  • Sebarkan beritanya! Bagikan project di media sosial menggunakan hashtag #WebDriverBiDi.
  • Minta dukungan. Ajukan permintaan fitur atau tanyakan kepada alat favorit Anda tentang rencana mereka untuk mengadopsi WebDriverBiDi.
  • Berpartisipasi dalam RFC, 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 mengaktifkan Puppeteer menjadi alat otomatisasi lintas browser.

Apakah Anda memiliki roadmap publik?

Ya, buka roadmap kami di GitHub.