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
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí