Cấu hình Proxy cho Selenium và Playwright là chủ đề quan trọng nếu bạn muốn vận hành kết nối ổn định, bảo mật và dễ kiểm soát. Bài viết này giải thích từ nền tảng đến cách áp dụng thực tế, kèm tiêu chí kiểm tra để bạn đưa ra quyết định phù hợp thay vì chọn theo cảm tính.
Mục lục
- Phạm vi sử dụng phù hợp
- Cấu hình trong Selenium
- Cấu hình trong Playwright
- Xác minh IP và DNS trong test
- Quản lý phiên, retry và song song
- Checklist CI/CD
Phạm vi sử dụng phù hợp
Proxy trong Selenium và Playwright hữu ích khi kiểm thử website bạn sở hữu hoặc được ủy quyền: kiểm tra định tuyến, giao diện theo khu vực, khả năng chịu lỗi và quy trình xác thực. Nó không nên được dùng để tạo lưu lượng giả, vượt cơ chế bảo vệ hoặc tự động hóa trái điều khoản.
Trước khi viết mã, hãy xác định giao thức, hostname, cổng, cơ chế xác thực và liệu mỗi test cần IP riêng hay dùng chung. Một thiết kế rõ ràng giúp tránh việc gắn credentials trực tiếp vào hàng trăm test case.
Cấu hình trong Selenium
Với proxy không yêu cầu xác thực ở cấp trình duyệt, bạn có thể đặt tham số proxy trong browser options trước khi khởi tạo driver. Cấu hình phải được áp dụng từ đầu phiên; thay đổi giữa chừng thường cần tạo driver mới để tránh trạng thái mạng không nhất quán.
Đối với username/password, khả năng hỗ trợ phụ thuộc trình duyệt, driver và kiểu proxy. Không nên chèn credentials vào URL nếu chúng có thể xuất hiện trong log. Ưu tiên whitelist IP, extension nội bộ được kiểm soát hoặc một gateway cục bộ lấy bí mật từ secret manager.
- Tạo một factory chịu trách nhiệm cấu hình driver và proxy.
- Không hard-code thông tin xác thực trong test.
- Gắn ID proxy vào log, không ghi password.
- Đóng driver sau test để giải phóng socket và cookie.
Cấu hình trong Playwright
Playwright cho phép truyền cấu hình proxy khi khởi chạy browser. Server thường dùng dạng http://host:port hoặc socks5://host:port; username và password được truyền ở trường riêng. Hãy lấy các giá trị này từ môi trường chạy hoặc secret store.
Nếu các test cần danh tính mạng khác nhau, tạo browser hoặc context theo chiến lược đã kiểm thử. Context giúp cô lập cookie và storage, nhưng cấu hình proxy có thể ở cấp browser tùy phiên bản và ngôn ngữ. Luôn đối chiếu tài liệu phiên bản bạn đang dùng.
Xác minh IP và DNS trong test
Tham khảo thêm bài kiểm tra đúng IP và không rò rỉ DNS. Xác minh nên là bước setup của bộ test, không phải thao tác thủ công sau khi lỗi đã xảy ra.
- Mở một endpoint kiểm tra thuộc quyền kiểm soát của bạn hoặc dịch vụ đáng tin cậy.
- Ghi nhận IP đầu ra mong đợi và so sánh với kết quả thực.
- Kiểm tra DNS, timezone và locale nếu chúng là một phần yêu cầu kiểm thử.
- Không giả định proxy hoạt động chỉ vì trình duyệt mở được trang.
- Dừng test sớm nếu IP trực tiếp bị lộ hoặc proxy không đúng khu vực.
Quản lý phiên, retry và song song
Mỗi worker cần quyền sở hữu rõ ràng đối với proxy và context. Nếu nhiều test dùng chung một IP, giới hạn số luồng theo năng lực của gói dịch vụ. Tách lỗi ứng dụng khỏi lỗi hạ tầng bằng cách ghi mã lỗi, thời gian và proxy ID.
Chỉ retry các bước có thể lặp lại an toàn. Khi proxy đổi giữa một quy trình có trạng thái, tạo context mới và thực hiện lại từ điểm nhất quán thay vì ghép cookie cũ với IP mới. Retry nên có backoff và số lần tối đa.
Checklist CI/CD
Một bộ test tốt có thể chạy không qua proxy cho kiểm thử chức năng cơ bản và bật proxy chỉ cho kịch bản mạng cụ thể. Điều này giảm phụ thuộc và giúp kết quả dễ chẩn đoán hơn.
- Credentials nằm trong secret store và được che khỏi log.
- Test có nhãn để tách lỗi proxy khỏi lỗi sản phẩm.
- Giới hạn concurrency và tổng băng thông.
- Có endpoint health check trước khi chạy test tốn thời gian.
- Lưu artifact đã loại bỏ cookie, token và dữ liệu cá nhân.
- Chỉ chạy với website và tài khoản được phép kiểm thử.
Câu hỏi thường gặp
Có thể đổi proxy giữa một phiên Selenium không?
Thường không nên. Cách ổn định là tạo driver mới với cấu hình proxy mới để tránh cookie và kết nối cũ trộn lẫn.
Playwright context có luôn dùng proxy riêng được không?
Tùy API, ngôn ngữ và phiên bản. Hãy kiểm tra tài liệu chính thức của phiên bản đang dùng; nhiều cấu hình proxy được đặt khi launch browser.
Làm sao tránh lộ password trong log CI?
Dùng secret store, truyền username/password ở trường riêng, bật masking và kiểm thử các ngoại lệ để bảo đảm URL nhạy cảm không bị ghi.
Kết luận
Cấu hình proxy cho Selenium và Playwright nên được đóng gói trong lớp khởi tạo, lấy bí mật từ kho an toàn và xác minh IP trước test. Cô lập phiên, giới hạn song song và chỉ tự động hóa trên hệ thống được phép sẽ cho kết quả ổn định hơn.
Cần một cấu hình phù hợp với hệ thống của bạn? Hãy xem các gói proxy tại ProxySmart hoặc liên hệ bộ phận hỗ trợ để được tư vấn theo vị trí IP, giao thức, lưu lượng và số phiên đồng thời. Chỉ sử dụng proxy cho mục đích hợp pháp, tuân thủ điều khoản của nền tảng và bảo vệ dữ liệu người dùng.