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

Un error HTTP sigue siendo una respuesta HTTP.

Separa estados no satisfactorios de fallos de transporte al diagnosticar una solicitud.

5 min de lecturaQA The Other Way
Diagrama original que separa respuesta HTTP de error y transporte abortado.
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.

Separa estados no satisfactorios de fallos de transporte al diagnosticar una solicitud.
Ejemplo local con datos inventados, no una interfaz de cliente o proveedor.

Un panel no carga y el test espera requestfailed. No llega: el servidor devolvió un error HTTP, así que el navegador recibió una respuesta. La ausencia del evento no prueba éxito del producto. La prueba preguntó por el límite equivocado.

Esta guía usa documentación de red de Playwright y eventos de Page con solicitudes locales inventadas. Una devuelve 503 y otra se aborta mediante una ruta. No hay cliente real ni caída externa. Separamos estado y finalización del transporte.

Lee el estado explícitamente

La API documenta request, response y requestfinished para una solicitud completada. Los estados HTTP de error siguen siendo respuestas y no generan requestfailed. El transporte puede finalizar aunque el producto falle.

const pending = page.waitForResponse(response =>
  response.url().endsWith('/demo-unavailable')
);
await page.getByRole('button', { name: 'Load demo panel' }).click();
const response = await pending;
expect(response.status()).toBe(503);
await expect(page.getByRole('status')).toHaveText('Demo service unavailable');

Se requieren botón local y servidor con ese estado controlado. La interfaz informa del error. Esperar 503 es correcto en esta muestra negativa, no para aceptar 503 en un recorrido positivo real.

Registra la espera antes de actuar. Elige endpoint e identidad según el contrato. Un observador demasiado amplio puede tomar otra respuesta como evidencia.

Usa requestfailed para su pregunta

Ese evento indica falta de respuesta completada normal, por ejemplo un problema de transporte. La otra muestra usa route.abort(). Se verifica el evento de esa URL y una descripción de fallo, sin fijar su texto como constante entre navegadores.

Abortar no es un 503 del servidor. Mantén nombres y expectativas separados. Si ambos exigen reintento en el producto, comprueba la recuperación en cada caso sin mezclar causas.

Un evento no identifica por sí solo la causa de producción. Orienta la investigación, pero no localiza servidor, salto de red o política. Combina la evidencia pertinente en el entorno permitido.

No confundas transporte y negocio

Una respuesta puede tener estado válido y registro incorrecto o cuerpo de error. El estado es solo parte del contrato. Comprueba contenido y estado de interfaz requeridos sin ampliar el alcance de la muestra.

El servidor local cuenta un 503 completado y el test confirma que no produjo requestfailed. El aborto sí lo produce. Eso valida semántica de eventos, no mide fiabilidad ni reproduce una caída externa.

No repitas clics solo porque falta un evento. El servidor podría haber recibido la operación y los clics duplicarla. Identifica el límite y si el producto permite reintento.

Usa vocabulario concreto

Registra endpoint, estado o evento esperado, resultado de interfaz y dudas. Es mejor que una etiqueta general Red fallida. Protege URLs y cuerpos privados antes de compartir.

AnyTest describe tests revisables tras explorar aplicaciones. Pregunta si se observa el evento correcto y se verifica recuperación. No se afirma una implementación de red de AnyTest. Separa respuesta no satisfactoria de ausencia de respuesta completada.

Preguntas comunes

¿HTTP 503 genera automáticamente requestfailed?

No. Es una respuesta; inspecciona su estado explícitamente.

¿requestfinished prueba éxito del negocio?

No. Transporte, estado, contenido y resultado del producto son distintos.

Fuentes