Việc kiểm thử là rất quan trọng. Đây là một bước quan trọng trước khi phân phối nội dung bạn đã tạo cho người dùng, cho dù đó là toàn bộ trang web hoặc ứng dụng hay một tính năng mới, để kiểm tra xem nội dung đó có hoạt động như mong đợi hay không. Tuy nhiên, 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 kiểm tra tính năng mới và báo cáo vấn đề.
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ỏ qua 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 mà bạn có khi viết mã, họ không biết về các vấn đề cụ thể mà bạn đã đưa mã vào để ngăn chặn. Và khi thời gian trôi qua và các tính năng mới được thêm vào, 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 rằng các thay đổi không làm hỏng chúng không?
Đó là lý do nhóm Chrome tin rằng kiểm thử tự động rất quan trọng. Bằng cách sử dụng một bộ kiểm thử đáng tin cậy và kiểm thử tính năng của bạn nhiều lần để tìm lỗi, bạn có thể chắc chắn rằng mọi chi tiết nhỏ đều được kiểm thử, ngay bây giờ và sau khi 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 của một tính năng được đóng gói trong một quy trình kiểm thử.
Tuy nhiên, chúng tôi hiểu rằng việc kiểm thử tự động có thể gặp nhiều 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 thực hiện việc này một cách dễ dàng nhất có thể.
Puppeteer
Puppeteer là một thư viện Node.js. Công cụ này cho phép bạn tự động hoá Chrome, Chromium và Firefox bằng một API cấp cao, dễ sử dụng.
Mặc dù ban đầu API này dựa trên Giao thức công cụ phát triển của Chrome, nhưng mục tiêu là làm cho giao thức WebDriver BiDi mới, nâng cao 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 đồng tạo, 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 với nhiều trình duyệt.
Nhưng bạn không cần phải chờ đợi. API của Puppeteer hiện đã hỗ trợ nhiều trường hợp sử dụng tính năng tự động hoá. Điều này sẽ chỉ được cải thiện với WebDriver BiDi. Từ việc kiểm thử, thu thập dữ liệu hình ảnh đến tự động hoá quy trình, bạn có thể làm được nhiều việc với các tính năng như tương tác trên trang, chặn yêu cầu và ả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 AI trên web trong đám mây bằng WebGPU và WebGL.
Các công cụ như WebdriverIO (một khung kiểm thử trình duyệt đầy đủ) và Công cụ phân tích Hộp cát về quyền riêng tư cũng sử dụng Puppeteer, 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 hoá Chrome bằng Puppeteer, bạn có thể đã phát hiện ra rằng 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. Điều này có nghĩa là không có cửa sổ trình duyệt thực 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 không? Trong một thời gian dài, điều này đã gây ra sự nhầm lẫn và khó theo dõi lỗi cũng như vấn đề.
Kể từ Chrome 112, chúng tôi đã ra mắt một chế độ Không có giao diện người dùng mới, hiện dựa trên cùng một cơ sở mã với Chrome thông thường. Điều này không chỉ giúp giảm sự nhầm lẫn trước đây mà còn mang lại chức năng không thể thực hiện trước đây, chẳng hạn như sử dụng 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 sử dụng Chrome không có giao diện người dùng thông qua các giải pháp tự động hoá khác, bạn có thể buộc chế độ Không có giao diện người dùng 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 không nhẹ như chế độ Không có giao diện người dùng cũ. Nếu bị hạn chế rất nhiều về tài nguyên hoặc không cần tất cả các tính năng của Chrome, bạn có thể sử dụng chế độ Không có giao diện người dùng cũ dưới dạng chrome-headless-shell
.
Chrome for Testing
Khi kiểm thử, bạn cần có quyền kiểm soát chi tiết đối với môi trường kiểm thử: 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ể khó khăn.
Đó là lý do chúng tôi tạo ra Chrome for Testing – một phiên bản Chrome không 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 chính, có thể truy cập từ một bản lưu trữ theo phiên bản. Điều này cho phép bạn chạy quy trình làm việc tự động hoá trên một phiên bản Chrome cụ thể mà không cần phải thao tác nhiều.
Bạn có thể truy cập vào các tệp nhị phân của Chrome for Testing từ trang tổng quan về phạm vi cung cấp của Chrome for Testing, API JSON hoặc bằng tiện ích dòng lệnh Puppeteer.
Puppeteer, chế độ Không có giao diện người dùng mới 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 chúng tôi đang thực hiện để giúp bạn tự động hoá trình duyệt và chạy các chương trình kiểm thử một cách suôn sẻ nhất có thể. Và các công cụ liên quan, chẳng hạn như Trình ghi DevTools, hỗ trợ bạn tạo kiểm thử: ghi lại luồng người dùng trong Chrome và phát lại luồng đó trong Puppeteer.
Tìm hiểu về hoạt động kiểm thử trên web.dev
Các công cụ được đề cập trong bài đăng này sẽ giúp bạn cải thiện hoạt động kiểm thử tự động. Tuy nhiên, nếu bạn mới bắt đầu, có thể bạn sẽ thấy có rất nhiều điều cần hiểu và học hỏi. Do đó, chúng tôi đã tạo một khoá học mới gồm 10 mô-đun – Tìm hiểu về hoạt động kiểm thử trên web.dev. Khoá học chuyên sâu này trình bày các khái niệm cốt lõi về hoạt động kiểm thử, vị trí và cách chạy kiểm thử, các loại kiểm thử và nội dung cần kiểm thử. Đây là một điểm khởi đầu tuyệt vời cho hành trình kiểm thử của bạn. Sau khi nắm được những kiến thức cơ bản, bạn có thể chuyển sang Bộ sưu tập về Tự động hoá kiểm thử của chúng tôi để tìm hiểu sâu hơn và tham khảo các mẹo thực tế về các câu hỏi kiểm thử cụ thể hơn.