Configuración de Allure Axios
Esta página describe las opciones que afectan el comportamiento de la integración Allure Axios.
Todas las opciones se pasan como segundo argumento a instrumentAxios():
instrumentAxios(client, {
// opciones aquí
});instrumentAxios() valida su primer argumento y lanza "allure-axios requires an Axios instance" inmediatamente si no es una instancia válida de Axios.
Personalizar el nombre del adjunto
attachmentName: string | ((exchange: HttpExchange) => string)
Especifica el nombre bajo el cual Allure Axios crea el adjunto para cada intercambio HTTP. Para la forma del argumento HttpExchange, consulta la Referencia de Allure Axios.
Por defecto, cada adjunto se nombra según el método de la solicitud y la URL completa — por ejemplo, GET https://api.example.com/orders. La URL utilizada aquí es la URL sin procesar y resuelta, incluyendo cualquier parámetro de consulta en su forma original (sin redactar). La redacción solo se aplica a los campos estructurados dentro del adjunto (query, headers, cookies, form), no a la cadena de la URL en el nombre del adjunto ni en exchange.request.url.
Para usar el mismo nombre estático para todos los adjuntos, pasa una cadena:
instrumentAxios(client, {
attachmentName: "Solicitud API",
});Para derivar el nombre dinámicamente a partir de los datos del intercambio, pasa una función:
instrumentAxios(client, {
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 Axios captura tanto el cuerpo de la solicitud como el de la respuesta. Establece captureRequestBody o captureResponseBody en false para omitir uno o ambos:
instrumentAxios(client, {
captureRequestBody: false,
captureResponseBody: false,
});maxBodySize establece el número máximo de bytes a capturar de cualquier cuerpo individual. 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).
instrumentAxios(client, {
maxBodySize: 1024 * 1024, // 1 MiB
});Cualquier valor menor que 1 se trata como 0, lo que captura solo los metadatos del cuerpo pero 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 Axios.
Redacción
Allure Axios reemplaza los valores sensibles con 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 URL-encoded | 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 Axios para la documentación completa de los tipos RedactionMatcher y RedactionContext.
redactHeaders: RedactionMatcher[]redactQueryParams: RedactionMatcher[]redactCookies: RedactionMatcher[]redactFormFields: RedactionMatcher[]
instrumentAxios(client, {
// Solo redacta los headers listados explícitamente, nada más
redactHeaders: ["authorization", "x-api-key"],
// Permite las cookies sin redactar
redactCookies: [],
});Opciones de error
includeErrorStack: boolean(por defecto:false)
Cuando una solicitud falla — ya sea por un error de transporte, una cancelación o una respuesta HTTP de error — Allure Axios registra el nombre y el mensaje del error en el adjunto. Establece includeErrorStack en true para capturar también el stack trace:
instrumentAxios(client, {
includeErrorStack: true,
});throwAttachmentErrors: boolean(por defecto:false)
Por defecto, si escribir el adjunto falla — 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 su lugar. Esto es útil al depurar por qué los adjuntos no aparecen:
instrumentAxios(client, {
throwAttachmentErrors: true,
});INFO
throwAttachmentErrors solo tiene efecto cuando la solicitud HTTP en sí misma es exitosa. Si la solicitud falla (por un error de red, cancelación o respuesta HTTP de error) y escribir el adjunto también falla, el error del adjunto sigue siendo ignorado silenciosamente para que el error original de la solicitud se propague correctamente.