Historial y reintentos
Sabemos que una de las razones por las que las pruebas regulares son importantes es porque ayudan a entender cómo la calidad de tu producto cambia con el tiempo. Si una prueba falla ahora, es útil saber si también falló ayer o incluso la semana pasada.
En Allure Report, puedes navegar entre múltiples ejecuciones de la misma prueba, tanto a través de diferentes informes mediante el Historial de pruebas como dentro de un solo informe mediante los Reintentos.
Historial de pruebas

Cada informe incluye los resultados de las pruebas recopilados durante un nuevo lanzamiento de prueba. Sin embargo, las pruebas en sí no son nuevas en absoluto: lo más probable es que uses el mismo código de prueba cada vez, actualizándolo ligeramente solo cuando sea necesario. Usando el identificador único de cada prueba, Allure Report puede vincular su último resultado con los resultados de la misma prueba de lanzamientos anteriores. Esta colección de enlaces se conoce como historial de pruebas.
En un informe con el historial de pruebas incluido, puedes:
- ver qué estados tuvo una prueba anteriormente,
- identificar pruebas inestables (ver Análisis de estabilidad de pruebas),
- encontrar pruebas que cambiaron su estado desde el último informe (ver Filtrar pruebas por marcas),
- ver cómo cambian varias métricas con el tiempo (ver Gráficos de tendencias).
Para la mayoría de los servidores CI que soportamos, un complemento correspondiente de Allure Report mantendrá automáticamente el historial y te permitirá navegar sin problemas hacia los informes de pruebas anteriores. Lo mismo se puede hacer al generar informes localmente, también, consulta Cómo habilitar el historial a continuación.
Cómo habilitar el historial
Allure 2 y Allure 3 utilizan diferentes enfoques para trabajar con el historial.
Allure Report 3
En Allure Report 3, para habilitar el historial, simplemente establece historyPath a la ubicación deseada del archivo JSONL de historial en el archivo de configuración:
{
"historyPath": "./history.jsonl"
}Cada vez que Allure Report 3 genera un informe mientras el historial está habilitado, lee los datos históricos previos del archivo de historial y escribe una nueva línea con todos los datos actuales del lanzamiento de pruebas en él.
Todos los datos históricos en Allure 3 se almacenan en este único archivo. Para más detalles sobre la estructura del archivo, consulta Archivos de historial.
Allure Report 2
Cada vez que Allure Report 2 genera un informe de pruebas (ver Cómo funciona), también genera datos en el subdirectorio history. Los archivos JSON en este subdirectorio almacenan toda la información que Allure necesita para incluir los datos de este informe de pruebas en el siguiente informe de pruebas, ver Archivos de historial.
Para Allure 2, habilitar las características relacionadas con el historial es cuestión de copiar el subdirectorio history en el directorio de resultados de pruebas antes de generar el siguiente informe de pruebas.
Asegúrate de que el informe anterior se haya generado en el directorio
allure-report.Elimina el directorio
allure-results.Ejecuta las pruebas.
Copia el subdirectorio
allure-report/historyenallure-results/history.Genera el nuevo informe.
Si sigues esta rutina regularmente, Allure mantendrá cada vez los datos de hasta 20 informes más recientes en allure-results/history. Esto crea hasta 20 entradas de historial para cada prueba y hasta 20 columnas en cada gráfico.
Reintentos

Cuando ejecutas la misma prueba varias veces, Allure produce un archivo de resultado de prueba separado para cada ejecución. El informe de prueba luego incluye el estado y otra información del último archivo, mostrando las demás ejecuciones como reintentos.
Una razón común para reintentar una prueba es si falló por algunas razones específicas del entorno (mala conexión a internet, espacio en disco insuficiente, etc.) y necesitas ejecutarla nuevamente para obtener resultados más informativos. Algunos marcos de prueba incluso pueden reintentar las pruebas fallidas automáticamente. En estos casos, el número total de reintentos puede convertirse en una métrica útil por sí misma: puedes ver si crece o disminuye en uno de los Gráficos de tendencias.
Otro caso es cuando una o más pruebas son conocidas por ser inestables, pero aún así es importante diferenciar entre los estados de “fallar siempre” y “fallar algunas veces”. En Allure Report, puedes encontrar todas las pruebas que han cambiado su estado después de un reintento usando un filtro especial, consulta Filtrar pruebas por marcas.
Ten en cuenta que, a diferencia del último intento de cada prueba, los reintentos no se incluyen en el Historial de pruebas.
Cómo mantener los reintentos
Para asegurarte de que la información sobre los reintentos se agregue al informe de pruebas, solo evita eliminar tu directorio de resultados de prueba (que generalmente se llama allure-results). Si el adaptador de Allure para el marco que usas tiene una opción para limpiar el directorio antes de cada ejecución, desactiva esa opción. Luego, al generar un informe, Allure Report incluirá todos los archivos presentes en el directorio, es decir, todas las ejecuciones de pruebas desde que limpiaste el directorio por última vez.
Sin embargo, ten en cuenta que mantener todos los reintentos puede sesgar los datos del gráfico de tendencias de Reintentos. Los complementos de Allure Report para servidores CI siempre ejecutan las pruebas con un directorio allure-results vacío, para que el informe solo incluya los reintentos automáticos realizados por el marco de prueba.
Asegurarse de que las pruebas estén identificadas correctamente
Para que los resultados de prueba aparezcan correctamente en las pestañas de Historial y Reintentos, Allure necesita identificar qué resultados pertenecen a la misma prueba a través de diferentes ejecuciones. Hace esto usando un identificador interno llamado "history ID".
El history ID se calcula automáticamente por el adaptador de Allure de tu framework. Con algunas limitaciones y excepciones, discutidas en el artículo enlazado, cada adaptador asigna el history ID basándose en dos factores:
- el nombre completamente calificado de la prueba,
- los parámetros no excluidos de la prueba.
Esto permite a Allure agrupar correctamente las ejecuciones de prueba de la misma prueba exacta con los mismos parámetros exactos:
- Los resultados de prueba con el mismo history ID que son parte de un solo lanzamiento (ubicados en el directorio
allure-results) se incluyen en la pestaña de Reintentos para la prueba en tu reporte. - Los resultados de prueba con el mismo history ID de diferentes lanzamientos - los que copias a
allure-results/history, se enlazan en la pestaña de Historial en tu reporte.
TIP
Para asegurar que el reporte de prueba maneje apropiadamente el historial y los reintentos, asegúrate de pasar a Allure todos los parámetros que distinguen diferentes versiones de una prueba.
La mayoría de los adaptadores de Allure se encargan de esto automáticamente, pero algunos pueden necesitar código adicional, como Allure::parameter() para Allure PHPUnit o @TestInstanceParameter para algunas configuraciones en Allure TestNG.
A continuación se presentan algunos problemas comunes relacionados con inconsistencias en el history ID, que puedes encontrar al configurar tus flujos de trabajo de reportes.
Error común: faltan pruebas de diferentes entornos en el informe
Supongamos que ejecutas una prueba en múltiples plataformas antes de recopilar todos los resultados en un solo directorio allure-results y generar el informe. A menos que te asegures de que diferentes ejecuciones tengan conjuntos diferentes de parámetros, Allure Report mostrará solo un resultado de prueba por defecto, moviendo los demás a su lista de reintentos.
Recomendamos agregar uno o más parámetros especiales que constituyan una combinación diferente para cada entorno. Por ejemplo, puede que quieras agregar parámetros como "os_version", "browser_version", "java_version", etc., dependiendo de las tecnologías utilizadas por tu prueba.
Asegúrate de revisar la sección "Pruebas parametrizadas" de la documentación del adaptador de Allure para ver si tiene alguna limitación. Cuando un adaptador tiene múltiples formas de declarar parámetros de prueba, puede que no los soporte todos para los fines de identificación de la prueba. Por ejemplo, Allure JUnit 5 y algunos otros adaptadores no pueden distinguir las pruebas que solo difieren en los parámetros "dinámicos", es decir, los parámetros que se establecieron después de que comenzó la ejecución de la prueba.
Error común: los reintentos de una prueba se muestran como pruebas separadas
Normalmente, cuando ejecutas una prueba con un conjunto de parámetros diferente a los de las ejecuciones anteriores, Allure Report la trata como una prueba nueva. Esto significa que las ejecuciones se muestran en el informe de pruebas por separado en lugar de agruparse en una lista de reintentos de una única prueba. Además, Allure puede no encontrar enlaces a los resultados anteriores en el historial de la prueba.
Por ejemplo, si un parámetro deriva de la fecha y hora actuales o de un valor aleatorio, obtendrás resultados aparentemente duplicados cuando ejecutes la prueba más de una vez.
Si este no es el comportamiento deseado para tu prueba, considera eliminar dicho parámetro o marcarlo como excluido. Consulta la referencia de tu adaptador para saber si permite marcar los parámetros como excluidos y cómo hacerlo.
Reintentos de pruebas desde Allure
Una solicitud de característica popular es la capacidad de volver a ejecutar pruebas fallidas directamente desde Allure Report. Algunos escenarios donde puede ser útil incluyen:
- verificar si los resultados de la prueba son consistentes,
- reintentar pruebas inestables,
- seguir el proceso TDD con Allure.
A partir de Allure Report 3 algunos de estos escenarios ahora son posibles.
El comando allure run permite ejecutar cualquier comando de prueba específico del framework, por ejemplo:
allure run -- npm run testEste comando incluye una opción para volver a ejecutar pruebas fallidas hasta un número establecido de veces. El siguiente comando volverá a ejecutar las pruebas fallidas hasta tres veces, y los resultados de múltiples ejecuciones se listarán como reintentos en el reporte generado.
allure run --rerun 3 -- npm run testSi necesitas más, considera usar Allure TestOps. Soporta la reejecución de un conjunto arbitrario de pruebas en un pipeline de CI o en modo manual.