Archivos de historial
WARNING
Esta página describe un formato de datos utilizado por Allure. Comprender este formato no es necesario para usar Allure en tu proyecto. Para una descripción más general sobre cómo trabajar con el historial, consulta Historial de pruebas.
El directorio history en Allure Report 2 y el archivo JSONL de historial, que lo reemplazó en Allure Report 3, se utilizan para transferir información simplificada entre informes de pruebas consecutivos.
Los datos históricos pueblan la pestaña Historia en los detalles de la prueba y varios gráficos.
Allure Report 3
Allure report 3 almacena todos los datos históricos en un único archivo JSONL, cuya ubicación está determinada por el parámetro de configuración historyPath.
Formato del Archivo de Historial
Archivo: formato JSONL (JSON Lines) - un objeto JSON por línea
Ubicación: Configurado mediante historyPath (predeterminado: undefined)
Estructura: Cada línea representa una ejecución completa de pruebas
Ejemplo:
{"uuid":"abc-123","name":"Allure Report","timestamp":1697020800000,"knownTestCaseIds":["tc1","tc2"],"testResults":{...},"metrics":{},"url":""}
{"uuid":"def-456","name":"Allure Report","timestamp":1697107200000,"knownTestCaseIds":["tc1","tc2","tc3"],"testResults":{...},"metrics":{},"url":""}Cada entrada de historial contiene:
uuid(cadena) — ID único para esta ejecución de informe.name(cadena) — nombre del informe.timestamp(entero) — cuándo ocurrió esta ejecución, en formato de marca de tiempo UNIX.knownTestCaseIds(arreglo de cadenas) — arreglo de IDs de casos de prueba.testResults(objeto) — objeto indexado porhistoryIdque contiene resultados de pruebas.url(cadena) — URL remota (ej., URL del trabajo de CI).
Cada resultado de prueba en el objeto testResults contiene:
id(cadena) — el identificador único de este elemento de historial.name(cadena) — el título de la prueba. Copiado denameen el archivo de resultado de prueba.fullName(cadena) — un identificador único basado en el nombre del archivo y el nombre de la prueba. Copiado defullNameen el archivo de resultado de prueba.environment(cadena) — nombre del entorno. Establecido al hacer coincidir etiquetas mediante reglas definidas en el archivo de configuración.status(cadena) — el estado con el que la prueba o paso finalizó. Copiado destatusen el archivo de resultado de prueba.start(entero) — el momento en que comenzó la ejecución, en formato de marca de tiempo UNIX. Copiado destarten el archivo de resultado de prueba.stop(entero) — el momento en que finalizó la ejecución, en formato de marca de tiempo UNIX. Copiado destopen el archivo de resultado de prueba.duration(entero) — la diferencia entre los valoresstartystop.labels(arreglo) — arreglo de etiquetas de prueba. Copiado delabelsen el archivo de resultado de prueba.url(cadena) — actualmente sin usar.historyId(cadena) — elhistoryIdpara este elemento de historial.reportLinks(arreglo) — actualmente sin usar.
Las pruebas fallidas también contienen los siguientes campos poblados con datos de error copiados de statusDetails en el archivo de resultado de prueba:
message(cadena) — una breve descripción de por qué falló la prueba.trace(cadena) — la traza de pila completa que muestra dónde en el código ocurrió el fallo.
Ejemplo de objeto de resultado de prueba individual:
{
"9b448b5eff623519556020f329494163.d41d8cd98f00b204e9800998ecf8427e": {
"id": "74364e3f7162027e8e10fe7f3af56b5e",
"name": "Creating new issue authorized user",
"fullName": "io.qameta.allure.IssuesWebTest.shouldCreateIssue",
"environment": "default",
"status": "passed",
"start": 1748616059263,
"stop": 1748616060376,
"duration": 1113,
"labels": [
{
"name": "framework",
"value": "junit-platform"
},
{
"name": "language",
"value": "java"
},
{
"name": "package",
"value": "io.qameta.allure.IssuesWebTest"
},
{
"name": "testClass",
"value": "io.qameta.allure.IssuesWebTest"
},
{
"name": "testMethod",
"value": "shouldCreateIssue"
},
{
"name": "suite",
"value": "io.qameta.allure.IssuesWebTest"
}
],
"url": "",
"historyId": "9b448b5eff623519556020f329494163.d41d8cd98f00b204e9800998ecf8427e",
"reportLinks": []
}
}Configuración
{
historyPath: "./.allure/history.jsonl",
appendHistory: true
}Allure Report 2
Allure Report 2 genera su directorio history durante la generación del informe de pruebas. Luego puede ser copiado al directorio de resultados de pruebas para el nuevo informe, ya sea manualmente o mediante un plugin de integración de CI.
El directorio contiene los siguientes archivos:
history.json
El archivo history/history.json almacena información general sobre las ejecuciones de cada prueba.
En el objeto JSON raíz del archivo, cada clave es el historyId de una prueba. Cada valor es un objeto que contiene:
statistic— las estadísticas relacionadas con la prueba (utilizadas para el Gráfico de estados de prueba).items— información sobre ejecuciones específicas de la prueba (utilizada para la pestaña Historial en los detalles de las pruebas).
Ejemplo:
{
"4da3226ec9761b158ba5f826fc8f8289": {
"statistic": {
"failed": 1,
"broken": 0,
"skipped": 0,
"passed": 0,
"unknown": 0,
"total": 1
},
"items": [
{
"uid": "74556baed1daf783",
"reportUrl": "https://reports.example.com/1234",
"status": "failed",
"statusDetails": "AssertionError: Some fail reason\nassert False",
"time": {
"start": 1682358404995,
"stop": 1682358404995,
"duration": 0
}
}
]
}
}En el objeto statistic, hay una clave correspondiente a cada posible estado de prueba. El valor de cada una de estas claves representa la cantidad de veces que la prueba obtuvo este estado. Además, existe la clave total, cuyo valor representa el número total de informes que incluyen esta prueba.
El arreglo items representa los datos de la prueba desde diferentes informes de prueba. Cada objeto en el arreglo tiene las siguientes propiedades:
uid(string) — el identificador único de este elemento de historial.reportUrl(string) — la URL del informe de prueba del cual se extraen estos datos.status(string) — el estado con el que finalizó la prueba o paso. Copiado destatusen el archivo de resultados de la prueba.statusDetails(string) — el mensaje corto con el que finalizó la prueba. Copiado destatusDetails.messageen el archivo de resultados de la prueba.time(object):start(integer) — el momento en que comenzó la ejecución, en formato de marca de tiempo UNIX. Copiado destarten el archivo de resultados de la prueba.stop(integer) — el momento en que terminó la ejecución, en formato de marca de tiempo UNIX. Copiado destopen el archivo de resultados de la prueba.duration(integer) — la diferencia en segundos entre los valores destartystop.
history-trend.json
El archivo history/history-trend.json almacena datos para el Gráfico de tendencias.
Ejemplo:
[
{
"buildOrder": 1234,
"reportName": "Report #1234",
"reportUrl": "https://reports.example.com/1234",
"data": {
"failed": 0,
"broken": 0,
"passed": 32,
"skipped": 0,
"unknown": 0,
"total": 32
}
}
]Cada objeto en el array tiene las siguientes propiedades:
buildOrder(integer) — el identificador proporcionado por el archivoexecutor.json.reportUrl(string) — la URL del informe de prueba del cual se extraen los datos.reportName(string) — el título del informe del cual se extraen los datos.data(object) — en este objeto, hay una clave correspondiente a cada categoría (consulta Categorías de defectos). El valor de cada una de estas claves representa la cantidad de pruebas en esta categoría. El valor de la clavetotalindica el número total de pruebas.
duration-trend.json
El archivo history/duration-trend.json almacena datos para el gráfico de tendencias de Duración, consulta Gráficos de tendencias.
Ejemplo:
[
{
"buildOrder": 1234,
"reportName": "Report #1234",
"reportUrl": "https://reports.example.com/1234",
"data": {
"duration": 78
}
}
]Cada objeto en el array tiene las siguientes propiedades:
buildOrder(integer) — el identificador proporcionado por el archivoexecutor.json.reportUrl(string) — la URL del informe de prueba del cual se extraen los datos.reportName(string) — el título del informe del cual se extraen los datos.data(object):duration(integer) — número de segundos que se tardó en ejecutar todas las pruebas.
retry-trend.json
El archivo history/retries-trend.json almacena datos para el gráfico de tendencias de Reintentos, consulta Gráficos de tendencias.
Ejemplo:
[
{
"buildOrder": 1234,
"reportName": "Report #1234",
"reportUrl": "https://reports.example.com/1234",
"data": {
"run": 39,
"retry": 15
}
}
]Cada objeto en el array tiene las siguientes propiedades:
buildOrder(integer) — el identificador proporcionado por el archivoexecutor.json.reportUrl(string) — la URL del informe de prueba del cual se extraen los datos.reportName(string) — el título del informe del cual se extraen los datos.data(object):run(integer) — número de ejecuciones de prueba que no causaron un reintento.retry(integer) — número de ejecuciones de prueba que causaron un reintento.
categories-trend.json
El archivo history/categories-trend.json almacena datos para el gráfico de tendencias de Categorías, consulta Gráficos de tendencias.
Ejemplo:
[
{
"buildOrder": 1234,
"reportName": "Report #1234",
"reportUrl": "https://reports.example.com/1234",
"data": {
"Product defects": 2,
"Test defects": 1
}
}
]Cada objeto en el array tiene las siguientes propiedades:
buildOrder(integer) — el identificador proporcionado por el archivoexecutor.json.reportUrl(string) — la URL del informe de prueba del cual se extraen los datos.reportName(string) — el título del informe del cual se extraen los datos.data(object) — en este objeto, hay una clave correspondiente a cada categoría (consulta Categorías de defectos). El valor de cada una de estas claves representa el número de pruebas en esta categoría.