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

Mathias Bynens
Mathias Bynens

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

Thông tin khái quát

Kiểm thử trình duyệt là một phần quan trọng trong quá trình tạo ra trải nghiệm web chất lượng cao, bất kể được 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 thử nghiệm trình duyệt đầy đủ là không hề đơn giản, đến mức nó một cách nhất quán được báo cáo là một điểm khó khăn của các nhà phát triển web hàng đầu. Hôm nay, chúng tôi muốn thông báo về một thay đổi với hy vọng sẽ xoa dịu nỗi đau này.

Tự động cập nhật: rất hữu ích cho người dùng nhưng lại gây khó chịu 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 rất vui khi biết rằng họ đang sử dụng một phiên bản trình duyệt an toàn và cập nhật, bao gồm cả các tính năng hiện đại của Nền tảng web, các tính năng của trình duyệt và bản sửa lỗi.

Tuy nhiên, với vai trò là nhà phát triển chạy bộ thử nghiệm 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 có kết quả nhất quán và có thể mô phỏng qua các lần chạy thử nghiệm lặp lại. Tuy nhiên, điều này có thể không xảy ra nếu trình 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 đó vào kho lưu trữ mã nguồn để có thể kiểm tra các cam kết và nhánh cũ cũng như chạy lại các bài kiểm thử dựa trên tệp nhị phân của trình duyệt tại thời điểm đó.

Bạn không thể làm những việc 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 kiểm thử tự động. Đây là sự không khớp căn bản giữa những gì tốt cho người dùng trình duyệt thông thường và những gì tốt cho nhà phát triển thực hiện thử nghiệm tự động.

Tệp nhị phân của trình duyệt đã tạo phiên bản

Ngoài tính năng tự động cập nhật, có thể bạn cũng gặp khó khăn khi tìm tệp nhị phân trên Chrome có một phiên bản cụ thể. Google cố ý không cung cấp các bản tải xuống Chrome được lập phiên bản, vì người dùng không cần phải quan tâm đến số phiên bản — các bản tải xuống này phải 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 hữu ích cho người dùng, nhưng gây khó chịu cho các nhà phát triển cần tạo lại báo cáo lỗi trong 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. Bằng cách nào đó, bạn không chỉ phải tải tệp nhị phân của Chrome xuống, mà còn cần tệp nhị phân ChromeDriver được tạo phiên bản tương ứng để đảm bảo hai tệp nhị phân đều tương thích.

Do không có cách tốt để 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 tệp nhị phân Chromium (không phải Chrome) xuống, mặc dù phương pháp này có một số thiếu sót. Trước tiên, các tệp nhị phân Chromium này không hoạt động ổn định trên tất cả các nền tảng. Thứ hai, các phiên bản này được xây dựng và phát hành riêng biệt với quy trình phát hành Chrome, khiến các phiên bản của chúng trở lại các bản phát hành Chrome thực sự dành cho người dùng. 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 dành riêng cho trường hợp sử dụng kiểm thử mà không cần tự động cập nhật, được tích hợp vào quy trình phát hành Chrome, được cung cấp cho mọi bản phát hành Chrome. Là một tệp nhị phân được tạo phiên bản gần giống 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 kiểm thử.

Để tạo Chrome for Testing, 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 để xây dựng và tải các tệp nhị phân này lên một bộ chứa có sẵn công khai theo quy trình phát hành Chrome trên tất cả các kênh (Chính thức, Beta, Nhà phát triển và Canary).

Cơ sở hạ tầng liên quan đến Chrome for Testing mở ra những cơ hội thú vị ngoài chính Chrome. Ví dụ: chúng tôi có thể loại bỏ hoàn toàn những khó khăn chúng tôi đã đề cập trước đây về việc tìm tệp nhị phân Chrome và ChromeDriver 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 đề mà người dùng gặp phải, phương pháp này còn điều chỉnh các bản phát hành ChromeDriver cho 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 tệp nhị phân của Chrome for Testing?

Cách dễ nhất để tải các tệp nhị phân của Chrome for Testing xuống 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 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 xuống các tệp nhị phân này, chúng tôi đã chuẩn bị sẵn cho bạn. Chúng tôi cung cấp điểm cuối API JSON 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 (Chính thức, Beta, Nhà phát triển, Canary). Để xem nhanh thông tin tổng quan về trạng thái mới nhất, hãy tham khảo trang tổng quan về khả năng sử dụng Chrome for Testing.