0

[Playwright Interview question #11]: Cách xử lý authentication trong Playwright?

Câu hỏi phỏng vấn #11: Cách xử lý authentication trong Playwright?

Trả lời mẫu:

Playwright cung cấp nhiều cách để handle authentication hiệu quả:

1. Reuse authentication state:

// Lưu state sau khi login
await page.goto('/login');
await page.fill('#email', 'user@example.com');
await page.fill('#password', 'password');
await page.click('#submit');

// Save storage state
await context.storageState({ path: 'auth.json' });

2. Sử dụng saved state:


// Tạo context với auth state
const context = await browser.newContext({
  storageState: 'auth.json'
});

3. Global setup với Playwright Test:

// playwright.config.js
export default {
  globalSetup: require.resolve('./global-setup'),
}

// global-setup.js
module.exports = async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  
  // Login một lần
  await page.goto('/login');
  await page.fill('#email', 'test@example.com');
  await page.fill('#password', 'password');
  await page.locator('#submit').click();
  
  // Save state
  await page.context().storageState({ path: 'storageState.json' });
  await browser.close();
};

4. Multiple auth states:

projects: [
  {
    name: 'admin',
    use: { storageState: 'admin-auth.json' }
  },
  {
    name: 'user',
    use: { storageState: 'user-auth.json' }
  }
]

💡 Tips:

  • Login một lần, reuse cho tất cả tests
  • Tách auth logic vào helper functions
  • Sử dụng environment variables cho credentials
  • Regular refresh auth tokens nếu cần

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í