test-proxy-recorder
VCR para Playwright. Graba respuestas reales de la API una vez y reprodúcelas de forma determinista en CI. Cubre tráfico de SSR de Next.js, del navegador y de WebSocket — sin backend, sin mocks escritos a mano.
El proxy graba respuestas reales de la API durante una ejecución de pruebas y luego las reproduce en CI. Las pruebas se mantienen rápidas y deterministas, y nunca mantienes fixtures de mock a mano.
Record mode Replay mode
Browser/App ──> Proxy ──> Real API Browser/App ──> Proxy ──> Disk │ │ └──> saves to disk └──> serves saved responses (.mock.json) (.mock.json)Por qué
Sección titulada «Por qué»- Sin backend en CI — graba una vez contra la API real y reproduce en cada ejecución de CI.
- Sin mocks manuales — captura interacciones reales en lugar de escribir fixtures a mano.
- Soporte de SSR — graba peticiones del lado del servidor de Next.js y frameworks similares.
- Soporte del lado del navegador — graba llamadas
fetchdel navegador, llamadas a API de extensiones de Chrome, analítica, etc. - Determinista — las mismas respuestas siempre, sin red inestable.
- Soporte de WebSocket — graba y reproduce conexiones WebSocket.
Comparación
Sección titulada «Comparación»Las herramientas de mocking son buenas para trabajos distintos. test-proxy-recorder es la que graba tráfico real a través de SSR, navegador y WebSockets sin mocks escritos a mano — esa combinación es el hueco que las demás dejan abierto.
| Característica | test-proxy-recorder | routeFromHAR | MSW | Polly.js | playwright-network-cache | Mocky Balboa |
|---|---|---|---|---|---|---|
| Graba tráfico real | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| Lado del servidor (SSR) | ✅ | ❌ | ✅ | ⚠️ | ❌ | ✅ |
| Lado del navegador | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| WebSocket | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Nativo de Playwright | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Mantenido | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
⚠️ Polly.js intercepta el HTTP de Node, así que el mocking de SSR es posible dentro del proceso de la app, pero no como parte de una ejecución de Playwright. MSW y Mocky Balboa también reproducen respuestas reales — pero escribes los mocks a mano en lugar de grabarlos.
Cuándo recurrir a otra cosa
Sección titulada «Cuándo recurrir a otra cosa»- Todo tu tráfico es del lado del navegador — el
routeFromHARintegrado de Playwright no tiene dependencias. Empieza ahí; añade esto cuando aparezca el SSR. - Quieres crear respuestas a mano o forzar casos de error/límite — los handlers escritos de MSW y su gran ecosistema encajan mejor, y funcionan mucho más allá de Playwright.
- Caché ligera solo de navegador, sin SSR —
playwright-network-cachehace justo eso con menos configuración.
Polly.js es la inspiración de este enfoque (grabar/reproducir HTTP, «VCR para JS»); ahora está prácticamente sin mantenimiento, lo cual es parte de por qué esto existe.
Empieza aquí
Sección titulada «Empieza aquí»Requisitos
Sección titulada «Requisitos»- Node.js >= 20.0.0
@playwright/test>= 1.0.0 (dependencia de pares)