Quay lại danh sách
Tin tức công nghệ

Thiết lập Selenium/Playwright Grid

6 tháng 5, 2026
Thiết lập Selenium/Playwright Grid trên VPS

Thiết lập Selenium/Playwright Grid: Chạy kiểm thử tự động song song trên cụm VPS

Khi phát triển ứng dụng web lớn, việc chạy kiểm thử E2E (End-to-End) thủ công hoặc trên máy local trở nên chậm chạp và không hiệu quả. Selenium Grid và Playwright Grid cho phép biến nhiều VPS thành một cụm (cluster) trình duyệt mạnh mẽ, hỗ trợ chạy song song hàng trăm test case trên nhiều trình duyệt (Chrome, Firefox, Edge) ở chế độ headless. Bài viết này hướng dẫn chi tiết cách triển khai Selenium Grid và Playwright Grid trên VPS để tối ưu quy trình testing năm 2026.

1. Selenium/Playwright Grid là gì và tại sao cần?

Grid là kiến trúc Hub + Node giúp phân phối test case đến nhiều máy ảo trình duyệt cùng lúc, hỗ trợ scale ngang dễ dàng.

  • Lợi ích chính: Chạy test song song, tiết kiệm thời gian CI/CD, test trên nhiều môi trường và thiết bị.
  • Ứng dụng thực tế: Regression testing, cross-browser testing, load testing giao diện.
  • Selenium Grid vs Playwright: Selenium hỗ trợ rộng, Playwright nhanh và hiện đại hơn.

// Interface mô phỏng Grid Session
interface GridSession {
  sessionId: string;
  browser: "chrome" | "firefox" | "edge";
  nodeIP: string;
  status: "running" | "completed" | "failed";
  durationMs: number;
  testName: string;
}

class GridManager {
  private activeSessions: Map = new Map();

  registerSession(session: GridSession) {
    this.activeSessions.set(session.sessionId, session);
    console.log(`[Grid] New session ${session.sessionId} on ${session.nodeIP} - Browser: ${session.browser}`);
  }

  getStats() {
    console.log(`[Grid] Total active sessions: ${this.activeSessions.size}`);
  }
}
 

2. Kiến trúc Selenium/Playwright Grid

Grid bao gồm:

  • Hub / Coordinator: Nhận request và phân phối test.
  • Node: Chạy trình duyệt thực tế (headless hoặc headed).
  • Scale: Có thể thêm hàng chục Node trên nhiều VPS.

3. Yêu cầu VPS cho Grid

Thành phần CPU / RAM Storage Số lượng khuyến nghị
Hub 2-4 cores / 8GB 50GB 1
Node 4-8 cores / 16GB+ 100GB NVMe 4-20+

4. Triển khai Selenium Grid


// Docker Compose cho Selenium Grid Hub + Node
const seleniumGridConfig = `
version: '3.8'
services:
  selenium-hub:
    image: selenium/hub:4.25
    ports:
      - "4444:4444"
  chrome-node:
    image: selenium/node-chrome:4.25
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
`;

console.log("[Selenium Grid] Hub và Chrome Node đã được khởi động");
 

5. Triển khai Playwright Grid


// Playwright Test Configuration với Grid
const playwrightConfig = `
{
  "webServer": {
    "command": "npm run start",
    "url": "http://localhost:3000"
  },
  "projects": [
    {
      "name": "chromium",
      "use": { "browserName": "chromium" }
    },
    {
      "name": "firefox",
      "use": { "browserName": "firefox" }
    }
  ]
}
`;

console.log("[Playwright] Grid đã được cấu hình chạy song song trên nhiều VPS");
 

6. Chạy test từ CI/CD


// Example test execution script
async function runDistributedTest() {
  console.log("[Grid] Kết nối đến Selenium Grid Hub...");
  // Sử dụng WebDriver hoặc Playwright Remote
  console.log("[Grid] Đang chạy 50 test cases song song trên 10 nodes");
  console.log("[Success] Test hoàn thành với 98% pass rate");
}

runDistributedTest();
 

7. Best Practices khi vận hành Grid

  • Sử dụng headless mode để tiết kiệm tài nguyên.
  • Auto-scale Node theo tải test.
  • Monitor CPU/RAM của từng Node.
  • Sử dụng Docker + Docker Swarm hoặc Kubernetes để quản lý.
  • Thiết lập timeout và retry cho test case.
  • Bảo mật Grid bằng authentication.

8. Kết luận: Checklist triển khai Selenium/Playwright Grid

Trước khi đưa vào CI/CD production, hãy kiểm tra:

  1. Đã thiết lập Hub và nhiều Node trên các VPS?
  2. Test case đã chạy song song thành công?
  3. Có monitoring tài nguyên Grid chưa?
  4. Đã tối ưu headless browser và timeout?
  5. Grid có khả năng scale ngang dễ dàng?
  6. Đã tích hợp với Jenkins/GitHub Actions?

Việc triển khai Selenium/Playwright Grid giúp đội ngũ QA và Developer chạy test E2E nhanh chóng, ổn định và tiết kiệm chi phí. Đây là giải pháp chuyên nghiệp để duy trì chất lượng phần mềm cao khi ứng dụng ngày càng phức tạp trong năm 2026.

Hy vọng hướng dẫn chi tiết này giúp bạn xây dựng thành công môi trường testing Grid mạnh mẽ trên hạ tầng VPS!