Referencia de Allure Axios
Esquema de adjunto
Cada intercambio HTTP se registra como un adjunto JSON con tipo de contenido application/vnd.allure.http+json y extensión de archivo .httpexchange. El objeto raíz tiene la siguiente estructura:
| Campo | Tipo | Descripción |
|---|---|---|
schemaVersion | 1 | Versión del esquema. Siempre es 1. |
start | number | Marca de tiempo Unix en milisegundos cuando comenzó la solicitud. |
stop | number | Marca de tiempo Unix en milisegundos, registrada cuando se recibió la respuesta o el error. |
request | object | Datos capturados de la solicitud. Ver Request. |
response | object | Datos capturados de la respuesta. Solo presente cuando se recibió una respuesta. Ver Response. |
error | object | Información de error. Solo presente cuando la solicitud falló. Ver Error. |
Para respuestas de error HTTP (códigos de estado 4xx y 5xx), tanto response como error están presentes simultáneamente: response contiene el estado, los encabezados y el cuerpo de la respuesta de error, mientras que error contiene los detalles de AxiosError.
Request
| Campo | Tipo | Descripción |
|---|---|---|
method | string | Método HTTP en mayúsculas, por ejemplo "GET". |
url | string | URL de la solicitud resuelta, incluyendo los parámetros de consulta en su forma original sin redacción. |
headers | {name, value}[] | Encabezados de la solicitud después de la redacción. Omitido cuando no hay encabezados. |
query | {name, value}[] | Parámetros de consulta analizados desde la URL, después de la redacción. Omitido cuando no hay parámetros de consulta. |
cookies | Cookie[] | Cookies analizadas desde el encabezado Cookie de la solicitud, después de la redacción. Omitido cuando no hay cookies. Ver Cookie. |
body | object | Cuerpo de la solicitud. Solo presente cuando captureRequestBody es true y se envió un cuerpo. Ver Body. |
Response
| Campo | Tipo | Descripción |
|---|---|---|
status | number | Código de estado HTTP. |
statusText | string | Texto de estado HTTP. |
headers | {name, value}[] | Encabezados de la respuesta después de la redacción. Omitido cuando no hay encabezados. |
cookies | Cookie[] | Cookies analizadas desde los encabezados Set-Cookie de la respuesta, después de la redacción. Omitido cuando no hay encabezados Set-Cookie. Ver Cookie. |
body | object | Cuerpo de la respuesta. Solo presente cuando captureResponseBody es true y se recibió un cuerpo. Ver Body. |
Los cuerpos de respuesta se capturan desde response.data — el valor después de que Axios aplica sus transformaciones de respuesta. Cuando responseType es 'json' (el valor predeterminado), Axios analiza la respuesta como JSON antes de que Allure Axios la reciba, por lo que el value capturado es el objeto analizado re-serializado con JSON.stringify. Esto produce JSON compacto independientemente de cómo el servidor haya formateado la respuesta original. Para capturar los bytes de respuesta sin modificar, establece responseType: 'arraybuffer' o responseType: 'text' en la solicitud de Axios.
Body
| Campo | Tipo | Descripción |
|---|---|---|
contentType | string | Valor del encabezado Content-Type. Ausente cuando no hay encabezado Content-Type. |
encoding | "utf8" | "base64" | Codificación utilizada para value. Solo presente para cuerpos no stream. Ver Codificación de cuerpo. |
value | string | El contenido capturado del cuerpo, codificado según encoding. Ausente para cuerpos stream y multipart. |
size | number | Tamaño del cuerpo en bytes. Para cuerpos no stream, siempre presente. Para cuerpos stream, solo presente cuando hay un encabezado Content-Length; ausente en caso contrario. Ver Tamaño de cuerpo. |
truncated | boolean | true cuando el cuerpo excedió maxBodySize y fue recortado. Siempre es false para cuerpos stream. |
form | {name, value}[] | Campos estructurados analizados desde un cuerpo application/x-www-form-urlencoded, después de la redacción. Ver Cuerpos de formulario URL-encoded. |
stream | {type: string} | Presente en lugar de value y encoding para cuerpos stream y multipart. Ver Cuerpos stream. |
Codificación de cuerpo
La encoding depende del tipo de dato JavaScript del cuerpo, no principalmente del encabezado Content-Type:
string,URLSearchParams, objetos simples (serializados como JSON), y cualquier otro valor no binario →"utf8".ArrayBuffery typed arrays →"base64".Blob→ determinado porBlob.type:"utf8"cuandoBlob.typeestext/*,application/json,application/javascript,application/x-www-form-urlencoded,application/xml, o termina en+jsono+xml;"base64"para todos los demás tipos. UnBlob.typeausente o vacío se trata como texto.
Cuerpos de formulario URL-encoded
Cuando el tipo de contenido es application/x-www-form-urlencoded, el cuerpo contiene dos representaciones de los mismos datos:
value: la cadena URL-encoded re-serializada, con los campos sensibles reemplazados por el marcador de redacción.form: un array estructurado{name, value}[]con la misma redacción aplicada.
Cuerpos stream
Los cuerpos que no pueden leerse sin consumirlos no se capturan. El campo stream está presente en lugar de value. Se tratan como streams los siguientes:
- Streams legibles de Node.js y iterables asíncronos — objetos con una propiedad
pipe,readoSymbol.asyncIterator, excluyendoURLSearchParams,ArrayBuffery typed arrays. - Objetos del paquete npm
form-data. - Cualquier cuerpo cuyo
Content-Typeseamultipart/form-data.
Los cuerpos Blob se capturan, no se tratan como streams — Allure Axios los lee mediante arrayBuffer(). La codificación se determina por Blob.type, no por el encabezado Content-Type de la solicitud.
{ "stream": { "type": "chunked" } }El type se deriva del tipo de contenido: text/event-stream → "server-sent-events", application/grpc → "grpc", todos los demás → "chunked".
Tamaño de cuerpo
El campo size utiliza el encabezado Content-Length cuando está presente. Si Content-Length está ausente, size es el conteo real de bytes de los datos capturados. Para cuerpos recortados, size puede ser mayor que la longitud del value almacenado.
Cookie
Las cookies de solicitud se analizan desde el encabezado Cookie. Las cookies de respuesta se analizan desde los encabezados Set-Cookie.
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre de la cookie. |
value | string | Valor de la cookie, después de la redacción. |
path | string | Atributo Path. Solo para cookies de respuesta. |
domain | string | Atributo Domain. Solo para cookies de respuesta. |
expires | string | Atributo Expires. Solo para cookies de respuesta. |
httpOnly | boolean | true cuando el atributo HttpOnly está presente. Solo para cookies de respuesta. |
secure | boolean | true cuando el atributo Secure está presente. Solo para cookies de respuesta. |
sameSite | string | Valor del atributo SameSite. Solo para cookies de respuesta. |
Error
Presente cuando la solicitud falló — ya sea por un error de transporte, cancelación o una respuesta de error HTTP.
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Propiedad name del error. |
message | string | Mensaje del error. |
stack | string | Traza de pila. Solo presente cuando includeErrorStack es true y el valor lanzado es una instancia de Error. |
Tipos de redacción
RedactionMatcher
Un RedactionMatcher controla si un valor de campo específico debe ser redactado. Puede ser cualquiera de los siguientes:
- Un string: redacta cualquier campo cuyo nombre sea igual al string, sin distinguir mayúsculas/minúsculas.
- Un
RegExp: redacta cualquier campo cuyo nombre coincida con el patrón. - Una función
(name: string, value: string, context: RedactionContext) => boolean: redacta según cualquier lógica, con acceso al nombre del campo, valor y contexto circundante.
instrumentAxios(client, {
redactHeaders: [
"x-api-key", // nombre exacto, sin distinguir mayúsculas/minúsculas
/^x-internal-/i, // expresión regular sobre el nombre del encabezado
(name, value) => value.startsWith("sk-"), // coincidencia sobre el valor mismo
],
});RedactionContext
El argumento context que se pasa a una función RedactionMatcher:
| Propiedad | Tipo | Descripción |
|---|---|---|
kind | "header" | "query" | "cookie" | "form" | Qué categoría se está evaluando. |
name | string | El nombre del campo. |
value | string | El valor del campo. |
url | string | undefined | La URL de la solicitud resuelta. |
request | InternalAxiosRequestConfig | undefined | La configuración de la solicitud de Axios. |
response | AxiosResponse | undefined | La respuesta de Axios. Solo presente al evaluar campos de la fase de respuesta (encabezados de respuesta, cookies de respuesta). |