Sử dụng proxy kiểm thử tự động để kiểm tra trang web và ứng dụng từ nhiều quốc gia
Socks5Proxy bán proxy riêng từ trung tâm dữ liệu để kiểm thử tự động và QA theo từng IP (giá từ $0.4680/IP/tháng), cho phép thực hiện cùng bài kiểm tra nhiều lần với IP từ nhiều quốc gia trên Selenium, Playwright, Puppeteer và máy chủ CI.
Khi nào cần dùng proxy để kiểm tra?
Nếu dịch vụ mở ở nhiều quốc gia, bạn cần kiểm tra các phần hoạt động khác nhau theo từng nước. Tính năng thay đổi theo vị trí truy cập như tự động chọn ngôn ngữ, hiển thị tiền tệ và giá, danh sách phương thức thanh toán, thông báo hạn chế khu vực, màn hình đồng ý cookie... chỉ có thể kiểm tra bằng IP của nước đó.
Proxy cũng cần thiết cho các tình huống yêu cầu gửi đồng thời từ nhiều IP như kiểm tra tải hay tính năng giới hạn truy cập. Bạn có thể xác minh: giới hạn yêu cầu theo IP trên dịch vụ của mình hoạt động đúng chưa, quy tắc chặn theo quốc gia có áp dụng chính xác không.
Có thể kiểm tra cả các dịch vụ tích hợp như bản đồ, thanh toán, script quảng cáo hiển thị đúng theo quốc gia.
Loại proxy nào phù hợp cho việc kiểm tra?
Đối với thử nghiệm lặp lại, chúng tôi khuyên dùng private datacenter proxy. IP cố định trong suốt thời gian gói, giúp so sánh kết quả hôm nay và hôm qua trong cùng điều kiện, băng thông và kết nối đồng thời không giới hạn, thoải mái chạy thử nghiệm trình duyệt.
Để kiểm tra hành vi chỉ hiển thị với người dùng gia đình (ví dụ hệ thống chống gian lận xử lý khác với truy cập từ datacenter), chuẩn bị thêm ISP private proxy. Để thử nghiệm tải với nhiều yêu cầu đồng thời từ nhiều IP thì datacenter shared proxy tiết kiệm chi phí.
| Kiểm thử | Sản phẩm đề xuất | Lý do |
|---|---|---|
| Kiểm tra màn hình·chức năng theo quốc gia | Datacenter riêng tư | Lặp lại điều kiện với IP cố định |
| Kiểm tra điều kiện truy cập gia đình | ISP riêng tư | IP thuộc dải nhà mạng |
| Kiểm tra giới hạn và tải yêu cầu | Datacenter dùng chung | Nhiều IP với giá thấp |
| Kiểm tra hồi quy dài hạn | Private Datacenter hàng năm | Giữ nguyên IP trong 1 năm |
Cách kết nối với công cụ tự động hóa trình duyệt?
Playwright là đơn giản nhất vì bạn có thể nhập địa chỉ máy chủ, tên người dùng và mật khẩu vào cài đặt proxy khi mở trình duyệt. Puppeteer nhập địa chỉ qua đối số --proxy-server và truyền tên người dùng và mật khẩu qua page.authenticate.
Selenium kết hợp với Chrome không nhận mật khẩu proxy trực tiếp nên sử dụng IP authorization sẽ thuận tiện hơn. Đăng ký IPv4 của máy chủ thử nghiệm trên bảng điều khiển để kết nối chỉ với ip:port mà không cần tên người dùng và mật khẩu. Mã thực tế cho từng công cụ được tổng hợp trên trang hướng dẫn.
- Playwright: server, username, password trong proxy
- Puppeteer: --proxy-server + page.authenticate
- Selenium + Chrome: Sử dụng IP authorization chỉ với ip:port
- Nếu cần SOCKS5, hãy sử dụng cổng SOCKS5 trên mỗi dòng
Vận hành thế nào trên server CI?
Nếu server CI có IP ra cố định, đăng ký IP đó trong IP authorization. Không cần lưu mật khẩu trong kho lưu trữ hoặc file cấu hình, dễ quản lý hơn. Môi trường IP thay đổi thường xuyên, lưu tên người dùng/mật khẩu trong kho bí mật và đọc khi bắt đầu kiểm tra.
Nếu nhận danh sách mới nhất qua API và phân chia theo quốc gia khi bắt đầu kiểm thử, bạn không cần ghi IP vào code kiểm thử. Thêm điều kiện quốc gia và giao thức vào GET /proxies để chỉ nhận những dòng cần thiết.
Hãy ghi lại IP và quốc gia đã sử dụng trong kết quả kiểm thử. Bạn sẽ biết ngay nếu lỗi chỉ xảy ra ở một quốc gia hoặc IP cụ thể.
Cần điều chỉnh gì để kết quả đáng tin cậy?
Đặt ngôn ngữ trình duyệt, múi giờ và kích thước màn hình theo từng kịch bản kiểm thử. Nếu các giá trị này thay đổi giữa các lần chạy, kết quả có thể dao động ngay cả với cùng chức năng.
Đối với các bài kiểm tra mà độ trễ mạng ảnh hưởng đến kết quả, bạn nên chọn IP gần với máy chủ kiểm thử. Ghi lại thời gian phản hồi của proxy và dịch vụ của bạn riêng biệt sẽ giúp phân tích nguyên nhân.
Chi phí proxy dùng để kiểm tra là bao nhiêu?
Giá khởi điểm 1 IP/tháng là datacenter proxy private $0.4680, ISP proxy private $0.5850, tính bằng USD. Có thể bắt đầu với gói nhỏ vài IP cho mỗi quốc gia cần test, dùng gói năm giảm 30% cho test hồi quy chạy liên tục.
Làm thế nào để tạo kịch bản thử nghiệm theo quốc gia?
Lập bảng kết quả mong đợi cho mỗi quốc gia kiểm thử giúp tự động hóa dễ dàng hơn. Ví dụ: giá USD và giao diện tiếng Anh với IP Mỹ, giá Euro và giao diện tiếng Đức với IP Đức, giá Yên và giao diện tiếng Nhật với IP Nhật. Code kiểm thử sẽ mở trang qua proxy từng quốc gia và so sánh với bảng.
Hãy đưa các yếu tố thay đổi theo quốc gia như danh sách phương thức thanh toán, thông tin giao hàng, màn hình đồng ý cookie vào cùng một bảng. Chạy cùng kịch bản mỗi khi triển khai tính năng mới giúp phát hiện sớm các vấn đề chỉ xảy ra ở một số quốc gia.
Nếu sử dụng thử nghiệm so sánh giao diện, hãy thiết lập tiêu chuẩn riêng cho từng quốc gia và chỉ so sánh các giao diện chụp từ cùng IP để giảm khác biệt không cần thiết.
- Tạo bảng kết quả mong đợi theo quốc gia
- Bao gồm các yếu tố theo quốc gia như thanh toán, giao hàng, màn hình đồng ý
- Lặp lại cùng kịch bản cho mỗi lần triển khai
Cách quản lý cài đặt proxy khi làm việc nhóm?
Đừng ghi IP trực tiếp vào code kiểm thử, hãy để code nhận danh sách theo quốc gia qua API khi bắt đầu kiểm thử. Bạn không cần sửa code khi thay đổi gói hoặc thêm quốc gia. Lưu trữ API key trong kho bí mật CI và đặt biến môi trường riêng cho mỗi máy phát triển sẽ an toàn hơn.
Nếu nhiều team dùng chung một tài khoản, hãy chia gói theo team để danh sách không bị trộn lẫn. Nếu kết quả thử nghiệm ghi lại cả gói và quốc gia, sẽ biết ngay thử nghiệm của team nào.
Nên kiểm tra trạng thái proxy trước khi chạy thử. Gửi yêu cầu đơn giản qua mỗi proxy để xác nhận phản hồi trước khi bắt đầu thử nghiệm, giúp phân biệt lỗi do dịch vụ hay kết nối.
Những điều cần lưu ý khi kiểm thử?
Chỉ thực hiện kiểm tra tải và giới hạn kết nối trên dịch vụ do bạn sở hữu hoặc được phép. Tấn công DDoS vào dịch vụ khác bị nghiêm cấm và có thể dẫn đến khóa tài khoản.