Câu hỏi phỏng vấn #17: Fixtures trong Playwright là gì và cách sử dụng?
Trả lời mẫu:
Fixtures là cách Playwright setup và teardown test resources:
1. Built-in fixtures:
test('use built-in fixtures', async ({ page, context, browser }) => { // page: isolated page instance // context: isolated browser context // browser: shared browser instance
});
2. Custom fixtures:
// fixtures.js
import { test as base } from '@playwright/test'; export const test = base.extend({ // Custom fixture loginPage: async ({ page }, use) => { const loginPage = new LoginPage(page); await use(loginPage); // Cleanup sau test (optional) }
});
3. Fixture với dependencies:
test.extend({ storageState: async ({}, use) => { await use('auth.json'); }, authenticatedPage: async ({ browser, storageState }, use) => { const context = await browser.newContext({ storageState }); const page = await context.newPage(); await use(page); await context.close(); }
});
4. Worker-scoped fixtures:
test.extend({ // Runs once per worker workerAuth: [async ({}, use) => { // Setup authentication once const token = await getAuthToken(); await use(token); // Cleanup }, { scope: 'worker' }]
});
5. Auto fixtures:
test.extend({ // Auto-runs for every test autoLogin: [async ({ page }, use) => { await page.goto('/login'); await page.fill('#user', 'test'); await use(); }, { auto: true }]
});
💡 Tips:
- Fixtures enable test isolation
- Lazy evaluation - chỉ run khi được dùng
- Perfect cho reusable test setup
- Chain fixtures cho complex scenarios
Lời Kết
Playwright đang trở thành một trong những automation frameworks phổ biến nhất cho web testing. Thông qua series này, hy vọng bạn sẽ:
- Nắm vững kiến thức từ cơ bản đến nâng cao
- Tự tin trong các buổi phỏng vấn
- Áp dụng hiệu quả vào dự án thực tế
- Trở thành một phần của cộng đồng Playwright Việt Nam năng động
📚 Bắt đầu hành trình của bạn với: Bài 1: Playwright vs Selenium
💬 Có câu hỏi? Tham gia group Facebook của chúng mình!
⭐ Theo dõi series để không bỏ lỡ bài viết mới!