Các công cụ của Chrome giúp kiểm thử tự động và suôn sẻ

Việc kiểm thử là rất quan trọng. Đây là bước quan trọng trước khi phân phối những gì bạn đã xây dựng cho người dùng (cho dù đó là toàn bộ trang web hay ứng dụng hay một tính năng mới) để kiểm tra xem trang web có hoạt động như mong đợi hay không. Tuy nhiên, rất nhiều hoạt động kiểm thử vẫn diễn ra theo cách thủ công, trong đó các đồng nghiệp hoặc kỹ sư kiểm thử được yêu cầu xem tính năng mới và báo cáo vấn đề.

Matthias Rohmer
Matthias Rohmer

Mặc dù quy trình kiểm thử thủ công này có thể cho thấy một số loại vấn đề nhất định, nhưng có thể bỏ lỡ nhiều vấn đề khác. Những người thực hiện kiểm thử có thể bỏ lỡ các trường hợp hiếm gặp hoặc hoàn toàn không kiểm thử được một hành trình cụ thể thông qua ứng dụng. Họ cũng không có tất cả thông tin bạn có khi viết mã, không biết về các vấn đề cụ thể mà bạn đã đưa vào mã để ngăn chặn. Khi thời gian trôi qua và thêm các tính năng mới, liệu họ có quay lại và kiểm thử lại tất cả những tính năng hoạt động trước đó để đảm bảo những thay đổi không làm hỏng chúng không?

Đó là lý do đội ngũ Chrome tin vào tầm quan trọng của kiểm thử tự động. Bằng cách sử dụng một bộ kiểm thử đáng tin cậy và liên tục kiểm thử tính năng của bạn để phát hiện sự cố, bạn có thể đảm bảo rằng mọi chi tiết nhỏ đều được kiểm thử, cả ở hiện tại và sau quá trình phát triển trong tương lai. Kiến thức của bạn với tư cách là nhà phát triển một tính năng được gói gọn trong một bài kiểm thử.

Tuy nhiên, chúng tôi hiểu rằng kiểm thử tự động có thể là một thách thức. Đó là lý do nhóm Chrome cung cấp các công cụ và hướng dẫn sau đây để giúp bạn trải nghiệm suôn sẻ nhất có thể.

Con rối

Puppeteer là một thư viện Node.js. Thư viện này cho phép bạn tự động hoá Chrome, Chromium và Firefox bằng một API cấp cao và dễ sử dụng.

Mặc dù API này ban đầu dựa trên Giao thức Công cụ của Chrome cho nhà phát triển, nhưng mục tiêu là làm cho giao thức WebDriver BiDi mới, tiên tiến trở thành nền tảng của Puppeteer vào cuối năm nay. WebDriver BiDi do tất cả các nhà cung cấp trình duyệt lớn cùng tạo nên giúp đơn giản hoá nhiều trường hợp sử dụng tự động hoá và hỗ trợ nhiều trường hợp mới, đồng thời tương thích trên nhiều trình duyệt.

Nhưng bạn không cần phải chờ đợi. Hiện nay, API của Puppeteer đã hỗ trợ rất nhiều trường hợp sử dụng của tính năng tự động hoá. Những trường hợp này sẽ chỉ cải thiện với WebDriver BiDi. Từ kiểm thử, thu thập dữ liệu hình ảnh và tự động hoá quy trình, bạn có thể làm rất nhiều việc với các tính năng như tương tác với trang, chặn yêu cầuảnh chụp màn hình. Bạn thậm chí có thể sử dụng công cụ này để kiểm thử các mô hình web AI trên đám mây bằng cách sử dụng WebGPU và WebGL.

Puppeteer cũng được các công cụ như WebdriverIO (một khung kiểm thử trình duyệt chính thức) và Công cụ phân tích Hộp cát về quyền riêng tư sử dụng, cho phép bạn hiểu rõ hơn về việc sử dụng cookie và dữ liệu người dùng trên trang web của mình.

Chrome không có giao diện người dùng

Nếu đã từng tự động dùng Chrome sử dụng Puppeteer, bạn có thể nhận thấy không có cửa sổ trình duyệt nào hiển thị khi chạy kiểm thử. Theo mặc định, Puppeteer khởi động Chrome ở chế độ Không có giao diện người dùng. Tức là không có cửa sổ trình duyệt nào trong khi quy trình tự động hoá đang chạy.

Nhưng bạn có biết rằng chế độ Không có giao diện người dùng của Chrome không chỉ là Chrome không có cửa sổ, mà thực sự là một phiên bản Chrome được duy trì hoàn toàn riêng biệt? Trong một thời gian dài, điều này đã dẫn đến sự nhầm lẫn và khó theo dõi lỗi cũng như sự cố.

Từ Chrome 112, chúng tôi đã giới thiệu chế độ Không có giao diện người dùng mới, nay dựa trên cùng cơ sở mã như Chrome thông thường. Điều này không chỉ làm giảm sự nhầm lẫn trước đây mà còn mang đến những chức năng chưa từng có trước đây, chẳng hạn như sử dụng các tiện ích trong quá trình tự động hoá.

Puppeteer đã sử dụng chế độ Không có giao diện người dùng mới này làm chế độ mặc định kể từ phiên bản 22. Nếu đang dùng Chrome Headless thông qua các giải pháp tự động hoá khác, bạn có thể buộc chuyển sang chế độ Headless mới bằng nút chuyển dòng lệnh --headless=new.

Mặc dù chế độ Không có giao diện người dùng mới của Chrome mạnh mẽ hơn nhưng lại không nhẹ như chế độ Không có giao diện người dùng cũ. Nếu bị hạn chế về tài nguyên hoặc không cần tất cả tính năng của Chrome, bạn có thể sử dụng chế độ Không có giao diện cũ dưới dạng chrome-headless-shell.

Chrome for Testing

Khi kiểm thử, bạn cần kiểm soát chi tiết môi trường kiểm thử của mình: hệ điều hành, trình duyệt và phiên bản trình duyệt. Với tính năng tự động cập nhật của Chrome, việc này có thể gây khó khăn.

Đó là lý do tại sao chúng tôi tạo ra Chrome for Testing – một phiên bản Chrome không cần tự động cập nhật, được phát hành cùng với mọi phiên bản Chrome, cho mọi hệ điều hành lớn, có thể truy cập được từ một kho lưu trữ có nhiều phiên bản. Điều này cho phép bạn chạy quy trình tự động hoá trên một phiên bản Chrome cụ thể mà không phải tốn nhiều công sức.

Bạn có thể truy cập các tệp nhị phân của Chrome for Testing từ trang tổng quan về khả năng sử dụng Chrome for Testing, API JSON hoặc bằng tiện ích dòng lệnhPuppeteer.


Puppeteer, chế độ Không có giao diện người dùng đã cập nhật của Chrome và Chrome for Testing chỉ là một phần trong công việc mà nhóm của chúng tôi hiện đang thực hiện nhằm giúp cho việc tự động hoá trình duyệt và chạy kiểm thử diễn ra suôn sẻ nhất có thể cho bạn. Ngoài ra, các công cụ liên quan, như DevTools Recorder (Trình ghi công cụ của nhà phát triển), sẽ hỗ trợ bạn trong việc tạo các bài kiểm thử: ghi lại một luồng người dùng trong Chrome rồi phát lại luồng đó trong Puppeteer.

Tìm hiểu về hoạt động kiểm thử trên web.dev

Những công cụ được đề cập trong bài đăng này sẽ giúp bạn cải thiện quy trình kiểm thử tự động. Tuy nhiên, có vẻ như bạn chỉ mới bắt đầu tìm hiểu và học hỏi thì có vẻ như vậy. Do đó, chúng tôi đã tạo một khoá học gồm 10 học phần mới: Tìm hiểu về kiểm thử trên web.dev. Khoá học chuyên sâu này sẽ trình bày các khái niệm cốt lõi về kiểm thử, địa điểm và cách thức kiểm thử, các loại kiểm thử cũng như những nội dung cần kiểm thử. Đây là điểm xuất phát tuyệt vời cho hành trình thử nghiệm của bạn. Sau khi bạn có những kiến thức cần thiết, hãy chuyển sang bộ sưu tập Tự động hoá kiểm thử của chúng tôi để tham khảo các nội dung chuyên sâu và mẹo thiết thực về các câu hỏi kiểm thử cụ thể hơn.