Playwright (Microsoft) là lựa chọn hiện đại cho E2E testing — cross-browser thực sự (Chromium/Firefox/WebKit), async/await chuẩn, parallel execution built-in, Trace Viewer để debug lỗi trên CI.
- Cross-browser + parallel — hỗ trợ cả WebKit (Safari); test file chạy song song mặc định, config được số workers; Cypress tính phí thêm cho parallelization qua Cypress Cloud.
- Multi-tab/context — test flow nhiều tab như OAuth popup, cửa sổ mới; browser context là session cô lập.
- API async/await — test code dùng async/await chuẩn — dễ đọc và debug hơn command queue của Cypress.
- Network interception —
page.route('/api/', route => route.fulfill({ json: mockData }));page.waitForResponse()chờ API call cụ thể. - Locators —
page.getByRole('button', { name: 'Submit' }),getByText(),getByTestId()— semantic như Testing Library, auto-retry built-in. - Debug — trace.zip (screenshot, network log, DOM snapshot) mở trong Trace Viewer để debug CI failures; Playwright Inspector step-through và pick locator;
expect(page).toHaveScreenshot()cho visual regression.
So với Cypress: Playwright mạnh hơn về multi-browser và parallel execution; Cypress có DX và debugging tốt hơn cho single-browser.