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 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 như bạn.

Thông tin khái quát

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 này đượ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 gây nhiều khó khăn đến mức nhất quán được báo cáo là 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 xin thông báo về một thay đổi với hy vọng sẽ làm dịu phần nào đó.

Tự động cập nhật: phù hợp với người dùng, nhưng nhà phát triển không dùng được

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 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 cũng như các bản sửa lỗi.

Tuy nhiên, là một nhà phát triển chạy 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 có kết quả nhất quán và có thể tái tạo qua các lần chạy kiểm thử lặp đi lặp lại. Tuy nhiên, điều này có thể không xảy ra nếu trình duyệt có thể thực thi hoặc tệp nhị phân quyết định tự cập nhật giữa hai lần chạy.
  • Bạn nê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ũ, 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ừ thời điểm đó.

Bạn không thể làm được những việc này với chế độ nhị phân của 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 của mình cho kiểm thử tự động. Đây là sự không thống nhất cơ bản giữa những lợi ích cho người dùng trình duyệt thông thường và những lợi ích 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 đã tạo phiên bản

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

Do 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 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. Trước tiên, các tệp nhị phân Chromium này không đá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à phát hành riêng biệt với quy trình phát hành Chrome, khiến bạn không thể ánh xạ các phiên bản trở lại bản phát hành Chrome dành cho người dùng thực. 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 riêng của Chrome nhắm đến trường hợp sử dụng thử nghiệm 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. 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 đã đưa ra 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 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 của Chrome for Testing mở ra những cơ hội thú vị bên ngoài Chrome. Ví dụ: chúng tôi có thể loại bỏ hoàn toàn những khó khăn đã đề cập trước đây về việc tìm tệp nhị phân Chrome và ChromeDriver trùng khớ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 đề mà người dùng gặp phải này, 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 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 tệp nhị phân Chrome for Testing dành 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 qua npm. Sau đâ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 đã chuẩn bị sẵn cho 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 của Chrome (Chính thức, Beta, Nhà phát triển, 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ề khả năng sử dụng Chrome for Testing.