Trung BìnhTesting iconTesting

Playwright là gì? So sánh với Cypress?

Playwright là lựa chọn hiện đại cho E2E testing — cross-browser thực sự (Chromium/Firefox/WebKit), async/await native, parallel execution built-in, Trace Viewer cho debug CI failures.

  • Playwright là E2E testing framework từ Microsoft, hỗ trợ Chromium, Firefox, WebKit (Safari) — cross-browser coverage thực sự.
  • Parallel test execution built-in: test files chạy song song theo default, có thể config workers; Cypress Cloud tính thêm phí cho parallelization.
  • Multiple tabs/contexts/pages: test multi-tab flows như OAuth popup, new window; browser contexts là isolated sessions (khác profiles).
  • Page Object Model tự nhiên: Playwright khuyến khích tổ chức code theo POM pattern với class-based pages. await/async API: test code dùng standard async/await — dễ đọc và debug hơn Cypress command queue.
  • Network interception: page.route('/api/', route => route.fulfill({ json: mockData })) — mạnh và flexible; page.waitForResponse() để wait cho specific API call.
  • Locators: page.getByRole('button', { name: 'Submit' }), getByText(), getByTestId() — semantic locators như Testing Library, auto-retry built-in.
  • Visual regression testing: expect(page).toHaveScreenshot() so sánh screenshots.
  • Tracing: tạo trace.zip với screenshots, network logs, DOM snapshots — mở trong Playwright Trace Viewer để debug CI failures.
  • Playwright Inspector: step-through test execution, pick locators từ browser.
  • So với Cypress: Playwright có better multi-browser support và parallel execution; Cypress có better DX và debugging cho single-browser.

Xem toàn bộ Testing cùng filter theo level & chủ đề con.

Mở danh sách Testing