0

[Playwright Interview question #17]: Fixtures trong Playwright là gì và cách sử dụng?

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!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.