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 xin vui mừng thông báo Chrome for Testing, một phiên bản Chrome mới nhắm mục tiêu riêng vào các trường hợp sử dụng tự động hóa và thử nghiệm ứ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, đồng thời trình bày các ví dụ cụ thể mà Chrome for Testing 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

Việc kiểm thử trình duyệt là một phần quan trọng để tạo ra trải nghiệm web chất lượng cao, bất kể việc kiểm thử đượ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 thích hợp cũng cực kỳ khó khăn, vì thế việc này liên tục được báo cáo là một vấn đề mà các nhà phát triển web hàng đầu gặp phải. Hôm nay, chúng tôi muốn công bố một thay đổi với hy vọng rằng phần nào sẽ bớt phiền hà này.

Tự động cập nhật: tuyệt vời cho người dùng, nhưng 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 chạy một phiên bản trình duyệt mới nhất và an toàn, bao gồm cả các tính năng hiện đại của Nền tảng web, tính năng trình duyệt và 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ộ thử nghiệm toàn diện, bạn có thể có một quan điểm hoàn toàn khác:

  • Bạn muốn có kết quả nhất quán và có thể lặp lại qua 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 đó vào kho lưu trữ mã nguồn để có thể kiểm tra các thay đổi và nhánh cũ, đồng thời chạy lại các kiểm thử so với tệp nhị phân của trình duyệt từ thời điểm đó.

Bạn không thể thực hiện điều 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 phiên bản cài đặt Chrome thông thường của mình cho tính năng kiểm thử tự động. Đây là điểm khác biệt cơ bản giữa những điều tốt cho người dùng trình duyệt thông thường và những điều tốt cho nhà phát triển kiểm thử tự động.

Tệp nhị phân của trình duyệt đã được 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 một tệp nhị phân Chrome cho phiên bản cụ thể. Google chủ ý không cung cấp bản tải xuống Chrome theo phiên bản vì người dùng không cần phải quan tâm đến số phiên bản — họ 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 phù hợp với người dùng, nhưng lại 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ạn không chỉ phải tải tệp nhị phân Chrome xuống mà còn cần có tệp nhị phân ChromeDriver có phiên bản tương ứng để đảm bảo hai tệp nhị phân tương thích với nhau.

Do chưa có cách hay để 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ố lỗi. Thứ nhất, các tệp nhị phân Chromium này không được cung cấp 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 xây dựng và xuất bản riêng biệt với quy trình phát hành Chrome, khiến cho các phiên bản đó không thể ánh xạ trở lại các bản phát hành Chrome thực tế 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 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, được cung cấp cho mọi bản phát hành Chrome. 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 thử nghiệm.

Để 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 và 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 bộ chứa công khai trong quy trình khoá cùng với 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 mang đến những cơ hội thú vị ngoài chính Chrome. Ví dụ: bạn có thể loại bỏ hoàn toàn những khó khăn đã đề cập trước đó 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 các bản phát hành của 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 Chrome for Testing?

Cách dễ nhất để tải tệp nhị phân 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ó 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ẽ giúp bạn. Chúng tôi cung cấp các đ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 (Ổn định, Beta, Dev, 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ề phạm vi cung cấp Chrome for Testing.