Configuración de Allure Fetch
Esta página describe las opciones que afectan el comportamiento de la integración Allure Fetch.
Todas las opciones se pasan como segundo argumento a withAllure() o instrumentGlobalFetch():
withAllure(fetch, {
// opciones aquí
});
instrumentGlobalFetch({
// opciones aquí
});withAllure() valida su primer argumento y lanza "allure-fetch requires a fetch implementation" inmediatamente si es null, undefined o cualquier valor falsy.
instrumentGlobalFetch() lanza "allure-fetch can't instrument global fetch because globalThis.fetch is not defined" si falta globalThis.fetch — por ejemplo, en entornos Node.js sin un polyfill de fetch.
Personalizar el nombre del adjunto
attachmentName: string | ((exchange: HttpExchange) => string)
Especifica el nombre bajo el cual Allure Fetch crea el adjunto para cada intercambio HTTP. Para la estructura del argumento HttpExchange, consulta la Referencia de Allure Fetch.
Por defecto, cada adjunto se nombra como "HTTP Exchange". Para usar un nombre estático diferente para todos los adjuntos, pasa una cadena:
withAllure(fetch, {
attachmentName: "Solicitud API",
});Para derivar el nombre dinámicamente a partir de los datos del intercambio, pasa una función. La URL disponible en exchange.request.url es la URL sin redacción. La redacción solo se aplica a los campos estructurados dentro del adjunto (query, headers, cookies, form), no a la cadena de URL usada en exchange.request.url.
withAllure(fetch, {
attachmentName: (exchange) =>
`${exchange.request.method} ${new URL(exchange.request.url).pathname}`,
});Controlar la captura del cuerpo
captureRequestBody: boolean(por defecto:true)captureResponseBody: boolean(por defecto:true)maxBodySize: number(por defecto:65536)
Por defecto, Allure Fetch captura tanto el cuerpo de la solicitud como el de la respuesta. Establece captureRequestBody o captureResponseBody en false para omitir uno o ambos:
withAllure(fetch, {
captureRequestBody: false,
captureResponseBody: false,
});maxBodySize establece el número máximo de bytes a capturar de cualquier cuerpo. Los cuerpos que exceden este límite se capturan hasta el límite y se marcan como truncados en el adjunto. El valor por defecto es 64 KiB (65 536 bytes).
withAllure(fetch, {
maxBodySize: 1024 * 1024, // 1 MiB
});Cualquier valor menor que 1 se trata como 0, lo que captura solo los metadatos del cuerpo y almacena un value vacío.
Para más detalles sobre cómo se codifican los cuerpos capturados y qué contienen los campos del adjunto, consulta la Referencia de Allure Fetch.
Redacción
Allure Fetch reemplaza los valores sensibles por la cadena centinela __ALLURE_REDACTED__ antes de escribir el adjunto. Los valores por defecto son:
| Categoría | Redactado por defecto |
|---|---|
| Headers | authorization, cookie, set-cookie y cualquier header cuyo nombre contenga token, password, passwd, secret, api-key/api_key/apikey (un solo patrón), o session |
| Parámetros de consulta | Cualquier parámetro cuyo nombre contenga los mismos patrones mencionados arriba |
| Cookies | Todas las cookies |
| Campos de formulario codificados en URL | Cualquier campo cuyo nombre contenga los mismos patrones mencionados arriba |
Las siguientes opciones te permiten sobrescribir los valores por defecto para cada categoría. Cada una acepta un array de valores RedactionMatcher — cadenas, expresiones regulares o funciones. Proporcionar un array reemplaza los valores por defecto de esa categoría completamente. Consulta la Referencia de Allure Fetch para la documentación completa de los tipos RedactionMatcher y RedactionContext.
redactHeaders: RedactionMatcher[]redactQueryParams: RedactionMatcher[]redactCookies: RedactionMatcher[]redactFormFields: RedactionMatcher[]
withAllure(fetch, {
// Solo redactar los headers listados explícitamente, nada más
redactHeaders: ["authorization", "x-api-key"],
// Permitir que las cookies pasen sin redacción
redactCookies: [],
});Opciones de error
includeErrorStack: boolean(por defecto:false)
Cuando una solicitud falla — ya sea por un error de transporte, una cancelación o un error en el stream del cuerpo de la respuesta — Allure Fetch registra el nombre y el mensaje del error en el adjunto. Establece includeErrorStack en true para capturar también el stack trace:
withAllure(fetch, {
includeErrorStack: true,
});throwAttachmentErrors: boolean(por defecto:false)
Por defecto, si falla la escritura del adjunto — por ejemplo, porque no hay un runtime de Allure activo durante la solicitud — el error se ignora silenciosamente. Establece throwAttachmentErrors en true para que dichos errores se lancen en vez de ignorarse. Esto es útil al depurar por qué los adjuntos no aparecen:
withAllure(fetch, {
throwAttachmentErrors: true,
});INFO
throwAttachmentErrors solo tiene efecto cuando la solicitud HTTP en sí misma es exitosa. Si la solicitud falla (por error de transporte, cancelación o error en el stream del cuerpo de la respuesta) y también falla la escritura del adjunto, el error del adjunto se sigue ignorando silenciosamente para que el error original de la solicitud se propague correctamente.