[Playwright Interview question #12]: Network interception và mocking API response được thực hiện như thế nào?

0 0 0

Người đăng: Playwright Việt Nam

Theo Viblo Asia

Câu hỏi phỏng vấn #12: Network interception và mocking API response được thực hiện như thế nào?

Trả lời mẫu:

Playwright cung cấp powerful network interception capabilities:

1. Mock API response:

await page.route('**/api/users', async route => { await route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ users: ['John', 'Jane'] }) });
});

2. Modify response:

await page.route('**/api/data', async route => { const response = await route.fetch(); const json = await response.json(); json.modified = true; await route.fulfill({ response, json });
});

3. Block resources:

// Block images và CSS
await page.route(/(\.png$)|(\.jpg$)|(\.css$)/, route => route.abort());

4. Network conditions:

// Simulate slow network
await page.route('**/*', async route => { await page.waitForTimeout(1000); // Delay 1s await route.continue();
});

5. HAR replay:

// Record HAR
await page.routeFromHAR('network.har', { url: '**/api/**', update: true
}); // Replay from HAR
await page.routeFromHAR('network.har');

💡 Tips:

  • Use route patterns wisely với glob hoặc regex
  • Mock external APIs để test nhanh và stable hơn
  • HAR files perfect cho offline testing
  • Combine với assertions: expect(response.status()).toBe(200)

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!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Flutter - GetX - Using GetConnect to handle API request (Part 4)

Giới thiệu. Xin chào các bạn, lại là mình với series về GetX và Flutter.

0 0 382

- vừa được xem lúc

API vs WebSockets vs WebHooks: What to Choose?

. Khi xây dựng bất kì một ứng dụng nào, chúng ta đều cần phải có một cơ chế đáng tin cậy để giao tiếp giữa các thành phần của nó. Đây là khi APIs, WebSockets và WebHooks được ứng dụng vào.

0 0 115

- vừa được xem lúc

Sử dụng Fast JSON API serialization trong Ruby on Rails

Ở bài viết này chúng ta sẽ thử tạo 1 project API sử dụng gem fast_jsonapi cho serializer. Đầu tiên là tạo một project API mới. $ rails new rails-jsonapi --database=postgresql --skip-action-mailbox --skip-action-text --skip-spring -T --skip-turbolinks --api. .

0 0 158

- vừa được xem lúc

Test thử ba loại API chụp màn hình Windows

Hiện tại, Windows cung cấp khoảng ba cách để chụp màn hình. Thế thì cái nào là nhanh nhất? Tôi muốn test thử từng cái.

0 0 92

- vừa được xem lúc

Ngừng sử dụng REST cho API — GraphQL là cách tốt hơn

Mở đầu. REST đã được nhiều developers sử dụng để gửi dữ liệu qua HTTP trong khi GraphQL thường được trình bày như một công nghệ thay thế các API REST.

0 0 123

- vừa được xem lúc

Quản lý và sử dụng API trong Nuxt bằng cách sử dụng Repository Pattern

Mở đầu năm mới, à nhầm, mở đầu bài viết. Cái tên NuxtJS chắc hẳn cũng không còn xa lạ gì với những bạn yêu thích VueJS nữa, đương nhiên mình cũng là một chàng trai dành tình yêu to lớn cho frameworks này.

0 0 251