Как в Playwright перехватить и модифицировать ответ от API для тестирования UI?

Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.

Короткий ответ

Что ответить на собеседовании

Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.

Подробный разбор

Ответ с пояснениями

Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.

Пример для тестового endpoint с полем status:

await page.route('**/api/order/42', async route => {
  const response = await route.fetch();
  const data = await response.json();
  data.status = 'pending';
  await route.fulfill({ response, json: data });
});

После установки маршрута выполните UI-действие и проверьте состояние интерфейса. Убедитесь, что маршрут совпадает с нужным запросом, а service worker не обходит ожидаемый перехват. Такой тест проверяет реакцию UI на подменённые данные, а не истинность backend-результата.

Источник: playwright.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее