Aller au contenu

test-proxy-recorder

VCR pour Playwright. Enregistrez les vraies réponses d’API une fois, puis rejouez-les de façon déterministe en CI. Couvre le trafic SSR Next.js, navigateur et WebSocket — sans backend, sans mocks écrits à la main.

Le proxy enregistre les vraies réponses d’API pendant une exécution de tests, puis les rejoue en CI. Les tests restent rapides et déterministes, et vous ne maintenez jamais de fixtures de mock à la main.

Record mode Replay mode
Browser/App ──> Proxy ──> Real API Browser/App ──> Proxy ──> Disk
│ │
└──> saves to disk └──> serves saved responses
(.mock.json) (.mock.json)
  • Aucun backend en CI — enregistrez une fois contre la vraie API, rejouez à chaque exécution CI.
  • Aucun mock manuel — capturez de vraies interactions au lieu d’écrire des fixtures à la main.
  • Support du SSR — enregistre les requêtes côté serveur de Next.js et des frameworks similaires.
  • Support côté navigateur — enregistre les appels fetch du navigateur, les appels d’API des extensions Chrome, l’analytics, etc.
  • Déterministe — les mêmes réponses à chaque fois, sans réseau instable.
  • Support des WebSockets — enregistre et rejoue les connexions WebSocket.

Les outils de mock sont bons pour des tâches différentes. test-proxy-recorder est celui qui enregistre le trafic réel à travers le SSR, le navigateur et les WebSockets sans mocks écrits à la main — cette combinaison est la lacune que les autres laissent ouverte.

Fonctionnalitétest-proxy-recorderrouteFromHARMSWPolly.jsplaywright-network-cacheMocky Balboa
Enregistre le trafic réel
Côté serveur (SSR)⚠️
Côté navigateur
WebSocket
Natif Playwright
Maintenu

⚠️ Polly.js intercepte le HTTP de Node, donc le mock SSR est possible dans le processus de l’app, mais pas dans le cadre d’une exécution Playwright. MSW et Mocky Balboa rejouent aussi de vraies réponses — mais vous écrivez les mocks à la main au lieu de les enregistrer.

  • Tout votre trafic est côté navigateur — le routeFromHAR intégré de Playwright est sans dépendance. Commencez par là ; ajoutez ceci quand le SSR apparaît.
  • Vous voulez fabriquer des réponses à la main ou forcer des cas d’erreur/limites — les handlers écrits de MSW et son grand écosystème conviennent mieux, et fonctionnent bien au-delà de Playwright.
  • Cache léger côté navigateur uniquement, sans SSRplaywright-network-cache fait exactement cela avec moins de configuration.

Polly.js est l’inspiration de cette approche (enregistrer/rejouer le HTTP, « VCR pour JS ») ; il n’est désormais quasiment plus maintenu, ce qui explique en partie pourquoi ceci existe.

  • Node.js >= 20.0.0
  • @playwright/test >= 1.0.0 (dépendance de pair)