QA The Other WayGarantía de calidad para la era de las pruebas escritas por IA. QA The Other Way.
QA práctica

Tu comprobación API puede compartir las cookies del navegador.

Elige deliberadamente estado compartido o aislado antes de llamar independiente a un resultado API.

5 min de lecturaQA The Other Way
Diagrama original de cookies compartidas y almacenamiento separado de solicitudes.
Ilustración editorial original.
Vídeo ilustrativo de este artículo. Texto en pantalla en inglés; seleccione subtítulos para este idioma.

Edición traducida. Los identificadores técnicos permanecen en su forma original.

Elige deliberadamente estado compartido o aislado antes de llamar independiente a un resultado API.
Ejemplo local con datos inventados, no una interfaz de cliente o proveedor.

El test abre una página autenticada y llama a una API para inspeccionar el resultado. Se supone otra identidad porque no hubo clic. En Playwright, el contexto de solicitudes asociado puede compartir cookies con el navegador. Una llamada API no crea automáticamente otra frontera de autenticación.

Esta guía usa la documentación de APIRequestContext, un servidor local y la cookie inventada demo_session. No hay credencial ni cuenta reales. Mostramos el almacenamiento usado, no cómo eludir acceso.

Identifica el contexto creado

browserContext.request y page.request comparten cookies con el contexto de navegador. Las solicitudes las usan y las respuestas pueden actualizarlas. Sirve para conservar deliberadamente la sesión, pero afecta la interpretación.

request.newContext crea almacenamiento propio. Úsalo si necesitas estado independiente. El aislamiento es una elección previa, no una etiqueta añadida después de obtener la respuesta.

const shared = await page.request.get('http://localhost:4181/who');
expect(await shared.text()).toBe('demo_session=fixture');

const isolated = await request.newContext();
try {
  const response = await isolated.get('http://localhost:4181/who');
  expect(await response.text()).toBe('no demo cookie');
} finally {
  await isolated.dispose();
}

Se requieren servidor local y navegador con la cookie inventada. Importa request y expect de Playwright. El servidor solo informa de esa cookie controlada. No publiques cabeceras de sesión reales.

Define qué significa independencia

Una solicitud compartida puede leer un resultado por otro camino con la misma identidad. Puede verificar el resultado por una vía independiente, pero no representa a otro usuario ni a un cliente anónimo. Nombra la capa: lectura, identidad, almacenamiento o autorización.

Un contexto sin cookie es otra configuración. No prueba una política real de sesión cerrada sin endpoint y respuesta esperada establecidos. El servidor devuelve una cadena inventada, no certifica control de acceso.

Copiar estado a otro contexto cambia el significado. Una sesión copiada no es anónima. Un almacén vacío también puede tener cabeceras o credenciales configuradas. Revisa toda la solicitud.

Haz visibles los efectos de respuesta

El intercambio de cookies funciona en ambos sentidos. Una respuesta compartida que establece una cookie afecta al navegador después. Preparar datos puede cambiar más que un registro del servidor.

La prueba lo comprueba: una respuesta compartida establece otra cookie inventada y el navegador la muestra. El contexto aislado sigue separado. Es un mecanismo, no una afirmación sobre todas las sesiones.

Cierra los contextos desechables al acabar. La documentación describe cuerpos de respuesta guardados para lectura posterior y dispose para liberar recursos. Lee la evidencia necesaria antes de eliminar el contexto.

Escribe el límite de identidad

Anota objeto de solicitud, estado inicial, efectos de cookies y usuario esperado. Usa sesiones de pruebas autorizadas y no publiques archivos de estado o cabeceras de acceso.

AnyTest describe exploración y tests revisables. Pregunta si la comprobación comparte sesión o usa estado separado. No se afirma una implementación de AnyTest. Independencia debe nombrar el límite, no solo el transporte.

Preguntas comunes

¿page.request usa cookies separadas?

No. Comparte el almacenamiento de cookies del contexto de navegador asociado.

¿Un contexto aislado prueba automáticamente el acceso anónimo?

No. Hay que establecer toda su configuración y las expectativas del endpoint real.

Fuentes