Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Playwright Configuration – Tối ưu cấu hình kiểm thử tự động

Playwright cung cấp một file cấu hình trung tâm playwright.config.ts, cho phép bạn dễ dàng:

  • Quản lý cấu hình toàn cục cho test
  • Chạy test trên nhiều trình duyệt
  • Đặt cấu hình theo môi trường khác nhau (dev, staging, production)
  • Thiết lập mặc định như timeout, retries, screenshot, trace, v.v

1. Tạo file cấu hình Playwright

Khi bạn khởi tạo dự án Playwright (npx playwright init), hệ thống sẽ tự tạo file playwright.config.ts. Bạn cũng có thể tự tạo nó như sau:

touch playwright.config.ts

Ví dụ file cấu hình:

// playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  timeout: 30000,
  retries: 1,
  workers: 2,
  fullyParallel: true,

  use: {
    baseURL: 'https://dummy-demo-njndex.web.app',
    headless: true,
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
  },
});

2. Giải thích các thuộc tính chính

Thuộc tính Mô tả
testDir Thư mục chứa các file test
timeout Thời gian tối đa cho mỗi test (ms)
retries Số lần chạy lại test nếu bị fail
workers Số lượng tiến trình chạy song song
fullyParallel Cho phép chạy toàn bộ test song song
use.baseURL URL mặc định cho các test
use.headless Chạy trình duyệt headless
use.trace Bật trace để dễ debug
use.screenshot Tùy chọn chụp ảnh khi fail
use.video Quay lại video nếu test fail

3. Chạy test đa trình duyệt với projects

Bạn có thể định nghĩa nhiều project để chạy test đồng thời trên các trình duyệt khác nhau:

projects: [
  { name: 'Chromium', use: { browserName: 'chromium' } },
  { name: 'Firefox',  use: { browserName: 'firefox' } },
  { name: 'WebKit',   use: { browserName: 'webkit' } },
],

Khi chạy npx playwright test, các test sẽ được chạy song song trên từng browser.


4. Chạy test theo môi trường

Giả sử bạn muốn chạy test trên các môi trường khác nhau: localhost, staging, hoặc production. Hãy sử dụng biến môi trường để linh hoạt cấu hình.

Cách dùng:

const baseURL = process.env.BASE_URL || 'http://localhost:3000';

export default defineConfig({
  use: {
    baseURL,
    headless: true
  }
});

Chạy test:

BASE_URL=https://staging.example.com npx playwright test

5. Tách cấu hình theo môi trường

Bạn có thể tạo nhiều file config khác nhau:

  • playwright.config.ts – Mặc định cho local
  • playwright.staging.config.ts
  • playwright.prod.config.ts

📁 playwright.staging.config.ts:

import base from './playwright.config';

export default {
  ...base,
  use: {
    ...base.use,
    baseURL: 'https://staging.example.com',
  }
}

Chạy:

npx playwright test --config=playwright.staging.config.ts

6. Một số thiết lập nâng cao khác

Thuộc tính Ý nghĩa
testIgnore Bỏ qua một số file hoặc thư mục test
testMatch Chỉ chạy các file test khớp pattern
globalSetup Hàm setup toàn cục trước khi test chạy
globalTeardown Cleanup sau khi test hoàn tất
outputDir Thư mục lưu video/screenshot/trace

7. Tổng kết

File playwright.config.ts là trung tâm quản lý cấu hình test, giúp bạn:

  • Chuẩn hóa cách chạy test
  • Linh hoạt giữa nhiều môi trường
  • Chạy đồng thời nhiều trình duyệt
  • Dễ dàng tích hợp vào CI/CD