WebDriver BiDi – Tương lai của tự động hoá trên nhiều trình duyệt

Trong bài viết trước đây, chúng tôi đã xem xét các giao thức tự động hóa hiện có, cụ thể là WebDriver "Cũ" và Giao thức Công cụ của Chrome cho nhà phát triển (CDP), cùng với những ưu điểm và hạn chế tương ứng.

WebDriver BiDi – tương lai của công nghệ tự động hoá trình duyệt! Đây là một giao thức tự động hoá trình duyệt tiêu chuẩn mới hiện đang được phát triển, nhằm kết hợp những ưu điểm tốt nhất của cả WebDriver "Cũ" và CDP. WebDriver BiDi hứa hẹn khả năng giao tiếp hai chiều, giúp tốc độ cao theo mặc định và đi kèm với khả năng kiểm soát cấp thấp.

WebDriver BiDi
WebDriver "Cũ" Giao thức Công cụ của Chrome cho nhà phát triển (CDP)
Hỗ trợ tốt nhất trên nhiều trình duyệt Nhắn tin nhanh, hai chiều
Tiêu chuẩn W3C Cung cấp quyền kiểm soát cấp thấp
Được thiết kế để thử nghiệm

Tầm nhìn của WebDriver BiDi là cho phép bạn viết thử nghiệm bằng bất kỳ công cụ nào bạn yêu thích và tự động hoá chúng trong bất kỳ trình duyệt hoặc trình điều khiển nào, mang đến cho bạn sự linh hoạt hoàn toàn.

Tầm nhìn của WebDriver BiDi.
Tầm nhìn của WebDriver BiDi

Tiêu chuẩn hoá

Nhóm công tác WebDriver BiDi bao gồm một nhóm đa dạng các nhà cung cấp trình duyệt, các dự án tự động hoá trình duyệt nguồn mở và các công ty cung cấp các giải pháp tự động hoá trình duyệt. Sự cộng tác này đảm bảo một tương lai đầy hứa hẹn cho việc tự động hoá trình duyệt.

Nhóm công tác WebDriver BiDi
Nhóm công tác WebDriver BiDi

Công việc chủ yếu được thực hiện trong kho lưu trữ GitHub này. Chúng tôi có các cuộc họp hằng tháng với tất cả các nhà cung cấp trình duyệt lớn để báo cáo tiến độ thực tế, đồng thời thảo luận về những nội dung cụ thể còn tranh cãi và chưa rõ. Nhóm công tác liên công ty sẽ đảm bảo rằng quyết định được đưa ra thống nhất với tất cả các bên liên quan.

Việc thiết lập và triển khai một giao thức mới không phải là công việc đơn giản. Điều này đòi hỏi sự nỗ lực phối hợp của nhiều nhà cung cấp cùng cộng tác và làm việc. Quy trình này bao gồm:

  • Đặc tả: quy trình yêu cầu nhận xét (RFC) để thu thập phản hồi về đề xuất.
  • Xác minh: một loạt các kiểm thử có thể chạy trên các nền tảng, đóng vai trò là nguồn dữ liệu đáng tin cho tất cả các hoạt động triển khai.
  • Triển khai: các trình duyệt triển khai các giao thức theo quy cách và vượt qua các bài kiểm thử xác minh.

Thử thách

Trong phần này, chúng ta sẽ tìm hiểu sâu hơn về những thách thức trong việc triển khai WebDriver BiDi, vì WebDriver này tìm cách cân bằng giữa khả năng tương thích, khả năng hữu dụng và khả năng triển khai.

Ngoài bản sao CDP: bao gồm khả năng tương thích trên nhiều trình duyệt

Không thể sao chép trực tiếp CDP, với các phần tử dành riêng cho Chrome và Công cụ cho nhà phát triển, trong thông số kỹ thuật BiDi của WebDriver. Việc triển khai CDP nguyên trạng sẽ không khả thi cho các trình duyệt khác, hiển thị thông số kỹ thuật chỉ ghi lại cách thực hiện như vậy trở nên vô nghĩa.

Đảm bảo độ trễ thấp

WebDriver BiDi phải được thiết kế để xử lý độ trễ cao mà không làm giảm hiệu suất. Trong CDP, độ trễ thấp vì ứng dụng khách và máy chủ hầu như luôn chạy trong cùng một máy vật lý, nhưng điều này không đúng trong WebDriver BiDi. Do đó, WebDriver BiDi phải giảm thiểu số lượt trọn vòng cần thiết giữa ứng dụng và máy chủ.

Ưu tiên công thái học tại BiDi

Mặc dù các nhà phát triển không nên tạo ứng dụng WebDriver BiDi từ đầu, nhưng điều quan trọng là cần tránh làm phức tạp giao thức quá mức. BiDi quá phức tạp không chỉ khó triển khai mà còn khó xử lý, gây cản trở cho việc áp dụng và sử dụng.

Đảm bảo khả năng triển khai của BiDi

WebDriver BiDi phải triển khai được trên thực tế, có tính đến hạn chế của nhiều trình duyệt. Ví dụ: việc giữ lại tất cả đối tượng JavaScript mà BiDi từng hiển thị cho ứng dụng có thể dẫn đến rò rỉ bộ nhớ, trong khi không giữ lại bất kỳ đối tượng nào sẽ cản trở việc gỡ lỗi và tương tác với JavaScript của một trang. Bạn cần phải cân bằng giữa việc tự động hoá trình duyệt một cách hiệu quả mà không làm ảnh hưởng đến hiệu suất.

Vượt qua thử thách

Trong phần này, chúng ta sẽ thảo luận về các chiến lược được dùng để giải quyết thách thức trong việc triển khai WebDriver BiDi.

Tạo mẫu nhanh

Việc giải quyết thách thức về khả năng triển khai là yếu tố rất quan trọng mang lại thành công cho BiDi. Để đẩy nhanh tiến độ về quy cách và kiểm thử, chúng tôi đã áp dụng phương pháp tạo mẫu nhanh bằng NodeJS. Việc này không chỉ cho phép chúng tôi thử nghiệm các giải pháp khác nhau mà còn tạo điều kiện thuận lợi cho việc phát triển chương trình Kiểm thử nền tảng web.

Chú trọng hiệu suất khi thiết kế

Quyết định thiết kế này được quyết định bởi hiệu suất vì, trong một số trường hợp, độ trễ trong WebDriver BiDi cao. Ví dụ: khi truy xuất giá trị và mã đối tượng từ trình duyệt, WebDriver BiDi chỉ yêu cầu 1 lượt khứ hồi, trong khi CDP yêu cầu 2 lượt khứ hồi. Điều này là do WebDriver BiDi có thể trả về cả mã nhận dạng và giá trị trong một phản hồi (kết quả không được chuyển đổi tuần tự JSON), trong khi CDP phải trả về riêng các mã nhận dạng và giá trị đó.

Nhấn mạnh vào Thử nghiệm nền tảng web (WPT)

Kiểm thử nền tảng web đóng vai trò quan trọng trong các công việc của BiDi. Hiện bao gồm WebDriver "classic" và WebDriver BiDi, WPT đóng vai trò là tài liệu tham khảo đáng tin cậy cho tất cả các phương pháp triển khai. Các chương trình kiểm thử này được thiết kế để chạy và được truyền qua nhiều phương thức triển khai, đảm bảo tính nhất quán khi thực thi giao thức trên nhiều trình duyệt. Điều này rất quan trọng đối với sự thành công của WebDriver BiDi. Hãy xem kết quả WPT mới nhất trên trang tổng quan.

Kế hoạch và tiến độ hiện tại ra sao?

Hãy xem lộ trình phát triển WebDriver BiDi để nắm được hướng đi của dự án. Lộ trình này đang trong quá trình hoàn thiện và không ngừng phát triển.

Hãy tham khảo Bài kiểm tra nền tảng web mới nhất để biết trạng thái triển khai trên nhiều trình duyệt, vì đây là nguồn đáng tin.

Luôn theo dõi các mốc quan trọng của dự án để theo dõi tiến trình của dự án.

Hãy khám phá các thành tích đạt được trong năm 2023 và luôn cập nhật những bước phát triển mới nhất!

Hỗ trợ WebDriver BiDi: cách bạn có thể trợ giúp

Bạn có hào hứng với tương lai tự động hoá trình duyệt với WebDriver BiDi không? Sau đây là cách thể hiện sự ủng hộ của bạn:

  • Trở thành người thử nghiệm và sử dụng sớm, giúp định hình tương lai của WebDriver BiDi.
  • Hãy lan toả thông điệp này! Chia sẻ dự án lên mạng xã hội kèm theo hashtag #WebDriverBiDi.
  • Yêu cầu hỗ trợ. Gửi yêu cầu về tính năng hoặc tham khảo các công cụ yêu thích của bạn để lên kế hoạch sử dụng WebDriverBiDi.
  • Tham gia RFC, cung cấp ý kiến phản hồi về API.

Câu hỏi thường gặp

WebDriver BiDi có sẽ thay thế Giao thức Công cụ của Chrome cho nhà phát triển (CDP) không?

Không. Các trình duyệt dựa trên Chromium sẽ tiếp tục sử dụng CDP cho mục đích gỡ lỗi, trong khi WebDriver BiDi là thông số kỹ thuật mới nhằm đáp ứng nhu cầu kiểm thử bằng một API mang tính hiệu quả cao hơn.

Vì Puppeteer đang sử dụng CDP, có phải Puppeteer sẽ ngừng hoạt động không?

Không. Tuy nhiên, WebDriver BiDi sẽ cho phép Puppeteer trở thành công cụ tự động hoá trên nhiều trình duyệt.

Bạn có lộ trình công khai không?

Có, hãy truy cập vào lộ trình của chúng tôi trên GitHub.