Introducción a Allure Fetch
Captura solicitudes y respuestas HTTP de fetch como adjuntos en tus reportes de Allure Report.
Allure Fetch es compatible con cualquier integración de Allure JS para frameworks, incluyendo Allure Vitest, Allure Jest, Allure Playwright, Allure Mocha y otros.
Para habilitar la integración en tu proyecto:
Asegúrate de tener una integración de Allure configurada para el framework de pruebas que utilizas.
Consulta las instrucciones en la documentación de la integración en Frameworks.
Instala
allure-fetch.bashnpm install --save-dev allure-fetchbashyarn add --dev allure-fetchbashpnpm install --dev allure-fetchEnvuelve tu implementación de
fetchconwithAllure()para comenzar a capturar solicitudes.El ejemplo a continuación muestra el uso en una suite de pruebas de Vitest.
tsimport { withAllure } from "allure-fetch"; import { describe, expect, it } from "vitest"; const client = withAllure(fetch); describe("Orders API", () => { it("creates an order", async () => { const response = await client("https://api.example.com/orders", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ item: "book", qty: 1 }), }); expect(response.status).toBe(201); }); });Cada solicitud HTTP realizada a través de
clientse añadirá al resultado de prueba como un adjunto, envuelto en un paso con el mismo nombre. El adjunto captura todo el intercambio en un solo lugar: el método de la solicitud, URL, encabezados, parámetros de consulta, cookies y cuerpo; el estado de la respuesta, encabezados, cookies (incluyendo atributos comoPath,Domain,Expires,Secure,HttpOnlyySameSite), y cuerpo; las marcas de tiempo de inicio y fin del intercambio; y, cuando la solicitud falla, el nombre y mensaje del error.Si tus pruebas llaman directamente a la función global
fetch, utilizainstrumentGlobalFetch()en su lugar. Esta reemplazaglobalThis.fetchpor una versión instrumentada y devuelve una función para restaurar el valor original. Llama a la función de restauración cuando ya no quieras capturar solicitudes — normalmente enafterEachoafterAll:tsimport { instrumentGlobalFetch } from "allure-fetch"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; describe("Orders API", () => { let restore: () => void; beforeEach(() => { restore = instrumentGlobalFetch(); }); afterEach(() => { restore(); }); it("creates an order", async () => { const response = await fetch("https://api.example.com/orders", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ item: "book", qty: 1 }), }); expect(response.status).toBe(201); }); });INFO
Para evitar que secretos se filtren en los reportes, ciertos valores se ocultan por defecto — todas las cookies, cualquier encabezado o parámetro de consulta cuyo nombre sugiera que contiene una credencial, y cualquier campo de formulario codificado en URL cuyo nombre también lo sugiera. Consulta Configuración de Allure Fetch para ver la lista completa de valores ocultos por defecto y cómo personalizar las reglas de ocultamiento.
Ejecuta tus pruebas y genera un reporte de prueba como lo harías normalmente.