Chromium là gì? Kiến trúc trình duyệt và hướng dẫn tự động hóa

Chromium là gì?

Scrapeless Agent Browser cung cấp các phiên duyệt web dựa trên Chromium được quản lý dành cho tự động hóa web và trích xuất nội dung động.

Chromium là một dự án trình duyệt mã nguồn mở, mà mã của nó tạo thành nền tảng cho một số trình duyệt web, bao gồm Google Chrome. Chromium chứa nhiều thứ hơn là một bộ kết xuất trang: nó bao gồm các tiến trình trình duyệt, mạng, lưu trữ, cơ chế bảo mật, công cụ dành cho nhà phát triển và các thành phần cần thiết để biến nội dung web thành một ứng dụng tương tác.

Đối với các đội ngũ tự động hóa, Chromium là môi trường thực thi trang. Một thư viện gửi chỉ thị, một dịch vụ lưu trữ cung cấp máy, và Chromium tải tài nguyên cũng như duy trì trạng thái trình duyệt. Biết trách nhiệm thuộc về lớp nào giúp bạn dễ chẩn đoán một trang hiển thị khác đi, dùng bộ nhớ bất thường, hoặc hoạt động khác sau khi nâng cấp.

Những thành phần mà Dự án Chromium bao gồm

Chromium là một dự án trình duyệt và mã nguồn hơn là tên của một thành phần kết xuất đơn lẻ. Dự án Chromium browser project công bố mã nguồn, tài liệu kiến trúc và thông tin phát triển. Một bản build Chromium kết hợp nhiều thành phần vào một trình duyệt có thể điều hướng website và cung cấp các giao diện cho nhà phát triển.

Một phân biệt hữu ích là project, build và product. Project là mã nguồn gốc và nỗ lực kỹ thuật. Build là một tệp thực thi cụ thể được lắp ráp từ mã đó với các tùy chọn nhất định. Product đóng gói một trình duyệt cho người dùng và có thể thêm thương hiệu, dịch vụ, chính sách hoặc tính năng phân phối.

Những phân biệt đó giúp tránh một lỗi đánh giá phổ biến: cho rằng mọi trình duyệt có nguồn gốc từ Chromium đều giống hệt nhau về vận hành. Tệp thực thi thực tế, cấu hình khởi chạy, môi trường vận hành và các dịch vụ đi kèm mới quyết định việc tự động hóa của bạn chạy trên cái gì. Hãy ghi lại những chi tiết đó khi bạn cần hành vi có thể tái lập.

Cách Blink và V8 phân chia công việc

Blink xử lý việc kết xuất nền tảng web và hành vi tài liệu, trong khi V8 thực thi JavaScript trong kiến trúc Chromium. Blink rendering engine là một phần của Chromium, không phải tên khác cho toàn bộ trình duyệt.

Một lần điều hướng bắt đầu bằng việc lấy tài liệu và các tài nguyên liên quan. Phân tích cú pháp HTML tạo các nút tài liệu; kiểu dáng ảnh hưởng tới bố cục; script có thể thay đổi tài liệu; cuối cùng trình duyệt vẽ và tổng hợp kết quả hiển thị. Các hoạt động này tương tác với nhau. Script có thể thêm nội dung sau khi tài liệu ban đầu đã được nhận, điều này giải thích vì sao HTML gốc có thể thiếu thông tin hiển thị trên màn hình.

V8 thực thi JavaScript cung cấp sức mạnh cho những cập nhật đó. Hệ thống kết xuất sau đó phản ánh các thay đổi trong tài liệu và bố cục. Nếu một ứng dụng yêu cầu dữ liệu sau khi người dùng chọn bộ lọc, thì việc tải xong tài liệu hoặc tiêu đề trang hiện có đều không chứng minh rằng các bản ghi được yêu cầu đã xuất hiện.

Đối với trích xuất dữ liệu, hãy chọn một điều kiện sẵn sàng gắn với thông tin bạn muốn. Một bản ghi sản phẩm, số lượng kết quả hoặc một điều khiển đã được bật cho bằng chứng hữu ích hơn là giả định tùy tiện rằng hoàn tất điều hướng nghĩa là ứng dụng đã hoàn tất.

Vì sao Chromium dùng nhiều tiến trình

Chromium phân bổ trách nhiệm trình duyệt qua nhiều tiến trình để hỗ trợ cách ly và quản lý khối lượng công việc của trình duyệt. Kiến trúc multiprocess architecture của nó tách tiến trình trình duyệt chính khỏi các tiến trình renderer và các thành phần khác.

Tiến trình trình duyệt điều phối các hoạt động cấp cao. Renderer xử lý nội dung web trong các ranh giới do trình duyệt kiểm soát. Các tiến trình bổ sung có thể hỗ trợ các dịch vụ như đồ họa hoặc mạng. Đừng mô hình hóa hệ thống như chính xác một tiến trình cho mỗi tab: việc phân bổ tiến trình phụ thuộc vào quyết định triển khai, cách ly site, cấu hình và nội dung liên quan.

Điều này quan trọng khi đo lường một tác vụ. Chỉ nhìn vào tiến trình ban đầu có thể bỏ lỡ phần lớn việc sử dụng tài nguyên trình duyệt. Một ứng dụng với nhiều frame và script nặng có thể có dấu chân tài nguyên khác một trang đơn giản ngay cả khi cả hai được tính là một tác vụ trong bộ lập lịch của bạn.

Ranh giới tiến trình cũng giải thích vì sao việc dọn dẹp thuộc về vòng đời trình duyệt. Đóng một trang không nhất thiết đóng mọi trang, ngữ cảnh hoặc tiến trình gắn với một công việc. Hãy dùng hành vi đóng được tài liệu của client tự động hóa và dịch vụ lưu trữ, và xác minh rằng các tài nguyên dự định thực sự biến mất.

Chromium và Chrome là các sản phẩm liên quan nhưng phạm vi khác nhau

Google Chrome được xây dựng dựa trên Chromium, trong khi Chromium là nền tảng mã nguồn mở. Không nên tùy tiện thay thế các tên này trong yêu cầu kỹ thuật, tuyên bố hỗ trợ hoặc báo cáo kiểm thử.

Thuật ngữNó xác định điều gìCần ghi nhận điều gì
ChromiumDự án trình duyệt hoặc một bản build được dẫn xuất từ mã nguồn của nóPhiên bản build và bản phân phối
ChromeMột sản phẩm trình duyệt được xây dựng trên ChromiumPhiên bản sản phẩm và kênh phân phối
BlinkThành phần kết xuất và nền tảng webTriển khai trình duyệt liên quan
Automation clientPhần mềm điều khiển hành động trình duyệtThư viện và khả năng tương thích giao thức

Ví dụ, một yêu cầu kiểm thử nêu cụ thể một trình duyệt dành cho người dùng cuối thì phải được xác thực đối với chính sản phẩm đó. Một quy trình trích xuất phía server có thể thay vào đó quan tâm đến các tính năng web được hỗ trợ, các phiên bản trình duyệt ổn định và môi trường lưu trữ. Lựa chọn đúng dựa theo tiêu chí chấp nhận thay vì tuyên bố chung rằng một nhãn trình duyệt luôn tốt hơn.

Chromium chế độ headless vẫn thực thi một trình duyệt

Chromium chế độ headless thực hiện công việc của trình duyệt mà không hiển thị cửa sổ trình duyệt thông thường. Nó có thể tải script, tính toán bố cục và tạo ảnh chụp màn hình, nên khác biệt đáng kể so với một HTTP client chỉ tải về nội dung phản hồi.

Một trình duyệt headless vẫn cần các đầu vào môi trường ảnh hưởng đến kết quả hiển thị trang. Phông chữ thay đổi cách xuống dòng. Viewport thay đổi bố cục responsive. Locale có thể thay đổi nhãn và định dạng. Cookie có thể thay đổi trạng thái đồng ý hoặc cá nhân hóa. Việc không có cửa sổ desktop hiển thị không loại bỏ những biến số đó.

Khi ảnh chụp màn hình khác nhau giữa các môi trường, hãy so sánh toàn bộ thiết lập render trước khi quy lỗi cho chế độ headless. Kiểm tra bản build trình duyệt, phông chữ, viewport, tỉ lệ thiết bị, trạng thái trang, và thời điểm ảnh được chụp. Hai ảnh chụp ở các trạng thái ứng dụng khác nhau không thể dùng để cô lập khác biệt của engine.

Chế độ headless cũng không nói gì về quyền truy cập hay ẩn danh. Website vẫn nhận được các yêu cầu trình duyệt và có thể kiểm tra các thuộc tính được lộ ra cho script trên trang. Hãy coi chế độ render như một thiết lập thực thi, với các quyết định riêng cho định tuyến mạng, danh tính và việc sử dụng được phép.

Hồ sơ trình duyệt giữ trạng thái đã chọn giữa các lần chạy

Một hồ sơ Chromium lưu trữ dữ liệu trình duyệt gắn với một môi trường, trong khi một trang đang chạy cũng giữ trạng thái tạm thời trong bộ nhớ. Cookie và storage đã lưu có thể ảnh hưởng đến những lần truy cập sau mà không cần tái tạo mọi tài liệu đang mở hoặc biến script.

Hãy coi một hồ sơ như một đầu vào cho một lần chạy trình duyệt. Một hồ sơ mới có thể tạo ra hộp thoại xin đồng ý và ngôn ngữ mặc định. Một hồ sơ sẵn có có thể chứa các tùy chọn thay đổi cùng một trang. Không kết quả nào tự thân là sai; chúng trả lời những câu hỏi khác nhau. Hãy quyết định trạng thái nào phù hợp với quy trình công việc trước khi so sánh đầu ra.

Cách ly đặc biệt quan trọng khi các tác vụ liên quan đến những tài khoản bạn được phép sử dụng. Một công việc không liên quan không nên thừa hưởng dữ liệu trình duyệt của tài khoản khác. Hãy dùng một chính sách sở hữu hồ sơ có chủ đích và tránh sao chép thông tin xác thực thật hoặc artefact phiên vào log kiểm thử.

Đối với các kiểm tra render quyết định được, hãy ghi rõ lần chạy bắt đầu sạch hay dùng một hồ sơ được đặt tên. Nếu cần lưu trạng thái, hãy kiểm tra cái gì sống sót sau khi tắt trình duyệt và cái gì ứng dụng tự dựng lại khi điều hướng. Một hồ sơ đã lưu không đảm bảo phiên phía server của website vẫn còn hiệu lực.

Quản lý phiên bản là một phần của độ tin cậy tự động hóa

Nâng cấp trình duyệt có thể thay đổi hành vi nền tảng web và khả năng tương thích tự động hóa, nên phiên bản trình duyệt là một phần của kế hoạch triển khai. Thư viện điều khiển và trình duyệt phải thống nhất về các tính năng giao thức được workflow của bạn sử dụng.

Hãy dùng một tập nhỏ các trang đại diện để đánh giá một bản nâng cấp. Bao gồm bố cục bạn chụp, tương tác bạn phụ thuộc, và nội dung nhúng quan trọng đối với việc trích xuất. So sánh các đầu ra có ý nghĩa như những trường bản ghi bắt buộc và trạng thái ứng dụng thay vì chỉ xác nhận rằng trình duyệt khởi động được.

Tách biệt thay đổi trang khỏi thay đổi trình duyệt trong quá trình chẩn đoán. Nếu ứng dụng đích đã thay đổi markup, lỗi selector có thể xảy ra ngay cả khi executable không đổi. Nếu chỉ bản build trình duyệt thay đổi, hãy kiểm tra cấu hình trình duyệt và khả năng tương thích giao thức trước khi viết lại logic trích xuất không liên quan.

Giữ một bảng kiểm kê xác định nguồn executable, phiên bản, client tự động hóa và môi trường vận hành. Một nhãn mơ hồ như “Chromium mới nhất” là không đủ khi bạn cần tái tạo một vấn đề render trong quá khứ.

Sử dụng Chromium thông qua Scrapeless Agent Browser

Scrapeless Agent Browser cung cấp một môi trường được quản lý dựa trên Chromium cho tự động hóa trình duyệt. Phần cơ sở hạ tầng trình duyệt xử lý việc lưu trữ trình duyệt, trong khi ứng dụng của bạn định nghĩa điều hướng, trích xuất và kiểm tra kết quả.

Hãy chọn cấu hình trình duyệt xoay quanh hành vi trang mà bạn cần quan sát. Một trang quản lý dữ liệu desktop và một giao diện di động hẹp có thể lộ cùng bản ghi thông qua các điều khiển khác nhau. Ghi lại cài đặt môi trường cùng với đầu ra để so sánh về sau có thể giải thích vì sao bản ghi hoặc ảnh chụp màn hình khác nhau.

Quy trình trình duyệt từ xa Node.js giải thích sự tách biệt giữa một chương trình client và runtime trình duyệt của nó. Xem lại Scrapeless pricing khi lập kế hoạch dung lượng, và đánh giá khối lượng công việc thực tế thay vì suy diễn chi phí từ một tác vụ trình duyệt không liên quan.

Kết luận

Chromium là nền tảng trình duyệt kết hợp render, thực thi script, mạng, lưu trữ và các ranh giới bảo mật. Tự động hóa đáng tin cậy phụ thuộc vào toàn bộ môi trường: một bản build đã biết, client tương thích, hồ sơ có chủ đích và các kiểm tra sẵn sàng theo từng trang. Hãy bắt đầu gỡ lỗi với những đầu vào đó trước khi thay đổi logic nghiệp vụ xử lý đầu ra.

Chạy workflow Chromium của bạn trên đám mây

Khám phá Scrapeless Agent Browser với một cấu hình render đã biết và các kiểm tra sẵn sàng theo từng trang.

Đăng ký hôm nay và nhận $5 in free credit — không cần thẻ tín dụng.

Nhận $5 Credit của bạn →

FAQ

H: Chromium có phải là một engine render không?

Chromium là một dự án trình duyệt bao gồm engine render Blink. Chỉ gọi Chromium là trình render sẽ bỏ qua mạng, lưu trữ, điều phối trình duyệt và các thành phần khác cần thiết để chạy trình duyệt.

H: Chromium có giống Google Chrome không?

Chromium và Google Chrome chia sẻ nền tảng mã nhưng chỉ những thứ khác nhau. Một yêu cầu tương thích nên nêu rõ sản phẩm hoặc bản build thực tế đang được kiểm thử.

H: Chromium có thể render ứng dụng JavaScript không?

Chromium có thể thực thi JavaScript và render các cập nhật của ứng dụng. Tự động hóa của bạn vẫn phải chờ nội dung mục tiêu thay vì cho rằng nhận được tài liệu ban đầu là hoàn tất workflow của ứng dụng.

H: Chế độ headless có làm Chromium ẩn danh không?

Chế độ headless không làm Chromium ẩn danh. Danh tính mạng, thuộc tính trình duyệt, trạng thái tài khoản và các quan sát của chính website vẫn là những mối quan tâm riêng biệt.

H: Cần ghim những gì để đầu ra trình duyệt có thể tái tạo được?

Để đầu ra trình duyệt có thể tái tạo được, cần có bản dựng trình duyệt đã biết, phiên bản client, khung nhìn, các phông chữ liên quan, ngôn ngữ, trạng thái hồ sơ và điều kiện chụp. Cố định các biến ảnh hưởng đáng kể đến trang cụ thể của bạn.

Tài liệu tham khảo