Chrome for Testing: tính năng tải xuống đáng tin cậy để tự động hoá trình duyệt

Hôm nay, chúng tôi rất vui mừng thông báo về Chrome for Testing, một phiên bản Chrome mới nhắm đến các trường hợp sử dụng kiểm thử và tự động hoá ứng dụng web. Bài viết này giải thích lý do nhóm Chrome cho rằng điều này là cần thiết và trình bày các ví dụ cụ thể về những trường hợp mà Chrome cho Kiểm thử có thể mang lại lợi ích cho bạn với tư cách là nhà phát triển.

Thông tin khái quát

Kiểm thử trình duyệt là một thành phần quan trọng trong việc tạo ra trải nghiệm chất lượng cao trên web, bất kể bạn thực hiện theo cách thủ công hay tự động. Đồng thời, việc thiết lập một môi trường kiểm thử trình duyệt phù hợp là một việc rất khó khăn, đến mức việc này liên tục được báo cáo là một trong những vấn đề gây khó chịu nhất cho nhà phát triển web. Hôm nay, chúng tôi xin thông báo về một thay đổi mà hy vọng sẽ giúp giảm bớt phần nào khó khăn này.

Tự động cập nhật: có lợi cho người dùng, gây phiền toái cho nhà phát triển

Một trong những tính năng đáng chú ý nhất của Chrome là khả năng tự động cập nhật. Người dùng sẽ hài lòng khi biết họ luôn chạy một phiên bản trình duyệt an toàn và mới nhất, bao gồm cả các tính năng của Nền tảng web hiện đại, các tính năng của trình duyệt và các bản sửa lỗi.

Tuy nhiên, với tư cách là một nhà phát triển chạy một bộ kiểm thử toàn diện, bạn có thể có một góc nhìn hoàn toàn khác:

  • Bạn muốn kết quả nhất quán và có thể tái tạo trong các lần chạy kiểm thử lặp lại, nhưng điều này có thể không xảy ra nếu tệp thực thi hoặc tệp nhị phân của trình duyệt quyết định tự cập nhật giữa hai lần chạy.
  • Bạn muốn ghim một phiên bản trình duyệt cụ thể và kiểm tra số phiên bản đó trong kho lưu trữ mã nguồn, để có thể kiểm tra các cam kết và nhánh cũ, đồng thời chạy lại các kiểm thử đối với tệp nhị phân trình duyệt từ thời điểm đó.

Không thể thực hiện bất kỳ thao tác nào trong số này với tệp nhị phân trình duyệt tự động cập nhật. Do đó, bạn có thể không muốn sử dụng bản cài đặt Chrome thông thường cho hoạt động kiểm thử tự động. Đây là sự không phù hợp cơ bản giữa những gì tốt cho người dùng trình duyệt thông thường so với những gì tốt cho nhà phát triển thực hiện kiểm thử tự động.

Tệp nhị phân của trình duyệt theo phiên bản

Ngoài tính năng tự động cập nhật, bạn cũng có thể gặp khó khăn khi tìm một tệp nhị phân Chrome có phiên bản cụ thể. Google cố tình không cung cấp các bản tải xuống Chrome theo phiên bản, vì người dùng không cần quan tâm đến số phiên bản mà nên luôn được cập nhật lên phiên bản mới nhất càng sớm càng tốt. Điều này rất tốt cho người dùng, nhưng gây khó khăn cho những nhà phát triển cần tái tạo báo cáo lỗi trong một phiên bản Chrome cũ.

Một ví dụ cụ thể hơn về vấn đề này là khi bạn muốn sử dụng ChromeDriver để tự động hoá trình duyệt. Không chỉ phải tải một tệp nhị phân Chrome xuống bằng cách nào đó, bạn cũng cần một tệp nhị phân ChromeDriver có phiên bản tương ứng để đảm bảo 2 tệp nhị phân này tương thích với nhau.

Vì không có cách nào hiệu quả để giải quyết những vấn đề này, nên chúng tôi biết rằng nhiều nhà phát triển tải các tệp nhị phân Chromium (không phải Chrome) xuống thay vì sử dụng Chrome, mặc dù phương pháp này có một số điểm yếu. Trước tiên, các tệp nhị phân Chromium này không có sẵn một cách đáng tin cậy trên tất cả các nền tảng. Thứ hai, các phiên bản này được tạo và xuất bản riêng biệt với quy trình phát hành Chrome, khiến bạn không thể liên kết các phiên bản này với các bản phát hành Chrome thực tế mà người dùng nhìn thấy. Thứ ba, Chromium khác với Chrome.

Giải pháp: Chrome for Testing

Được thiết kế để giải quyết những vấn đề này, Chrome for Testing là một phiên bản Chrome chuyên biệt nhắm đến trường hợp sử dụng thử nghiệm, không tự động cập nhật, được tích hợp vào quy trình phát hành Chrome và được cung cấp cho mọi bản phát hành Chrome. Một tệp nhị phân có phiên bản gần với Chrome thông thường nhất có thể mà không ảnh hưởng tiêu cực đến trường hợp sử dụng thử nghiệm.

Để tạo Chrome cho Kiểm thử, chúng tôi đã thực hiện các thay đổi đối với cơ sở mã Chromium và Chrome, đồng thời thiết lập cơ sở hạ tầng để tạo và tải các tệp nhị phân này lên một vùng lưu trữ công khai theo quy trình phát hành Chrome trên tất cả các kênh (Ổn định, Beta, Dev và Canary).

Cơ sở hạ tầng xung quanh Chrome for Testing mở ra những cơ hội thú vị ngoài Chrome. Ví dụ: bạn có thể hoàn toàn loại bỏ những khó khăn mà chúng tôi đã đề cập trước đó về việc tìm một tệp nhị phân Chrome và ChromeDriver phù hợp bằng cách tích hợp quy trình phát hành ChromeDriver vào cơ sở hạ tầng Chrome for Testing. Ngoài việc giải quyết vấn đề gây khó chịu cho người dùng này, việc này cũng giúp các bản phát hành ChromeDriver phù hợp với Chrome và loại bỏ quy trình phát hành ChromeDriver theo cách thủ công.

Làm cách nào để tải các tệp nhị phân của Chrome for Testing?

Cách dễ nhất để tải các tệp nhị phân Chrome cho thử nghiệm xuống cho nền tảng của bạn là sử dụng tiện ích dòng lệnh @puppeteer/browsers của chúng tôi, có sẵn thông qua npm. Dưới đây là một số ví dụ:

# 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

Nếu bạn muốn tạo tập lệnh tự động của riêng mình để tải các tệp nhị phân này xuống, chúng tôi sẽ hỗ trợ bạn. Chúng tôi cung cấp các điểm cuối JSON API với các phiên bản mới nhất hiện có cho mỗi kênh phát hành Chrome (Ổn định, Beta, Dev, Canary). Để xem thông tin tổng quan nhanh về trạng thái mới nhất, hãy tham khảo trang tổng quan về tình trạng cung cấp Chrome for Testing.