Entornos Allure 3
Allure Report 3 ofrece una nueva forma de organizar los resultados de pruebas por entornos, permitiéndote agrupar pruebas por sistemas operativos, navegadores, despliegues - o cualquier otra forma de categorización, y comparar resultados de diferentes entornos fácilmente.
Esta característica se basa en etiquetas de resultados de pruebas: puedes mapear ciertas etiquetas (o combinaciones de etiquetas) a un nombre de entorno específico, y Allure Report 3 dividirá todos los resultados de pruebas en la página de inicio del reporte en jerarquías separadas, entre las cuales puedes cambiar a través del menú desplegable Entornos.

Además, en la pestaña Entornos de cada resultado de prueba podrás ver los resultados disponibles de la misma prueba desde otros entornos.

Requisitos previos
- Esta característica requiere que uses un archivo de configuración dinámico (
.mjs,.cjs,.js) para Allure Report 3. - Debes establecer las etiquetas que almacenan información del entorno en el código de tus pruebas. Por favor, consulta la documentación del integración de framework que estés usando para saber cómo hacerlo.
Configuración básica
Los entornos están gobernados por el parámetro de configuración environments.
Las claves del objeto environments son IDs de entorno — identificadores cortos usados internamente (solo letras latinas, dígitos, guiones bajos y guiones, máximo 64 caracteres). Cada entrada requiere una función matcher y también acepta un campo opcional name para el nombre visible en el reporte. Si se omite name, se usa el ID como nombre visible.
Los ejemplos a continuación muestran cómo asignar entornos basándose en una sola etiqueta o múltiples etiquetas. Allure buscará etiquetas llamadas os y, en el ejemplo de dos etiquetas, browser, y asignará entornos en consecuencia:
{
environments: {
windows: {
matcher: ({ labels }) =>
labels.find(({ name, value }) => name === "os" && value === "Windows"),
},
macos: {
matcher: ({ labels }) =>
labels.find(({ name, value }) => name === "os" && value === "macOS"),
},
linux: {
matcher: ({ labels }) =>
labels.find(({ name, value }) => name === "os" && value === "Linux"),
}
}
}{
environments: {
"windows-chrome": {
matcher: ({ labels }) =>
labels.some(l => l.name === "os" && l.value === "Windows") &&
labels.some(l => l.name === "browser" && l.value === "Chrome"),
},
"windows-firefox": {
matcher: ({ labels }) =>
labels.some(l => l.name === "os" && l.value === "Windows") &&
labels.some(l => l.name === "browser" && l.value === "Firefox"),
},
"ubuntu-chrome": {
matcher: ({ labels }) =>
labels.some(l => l.name === "os" && l.value === "Ubuntu") &&
labels.some(l => l.name === "browser" && l.value === "Chrome"),
},
"ubuntu-firefox": {
matcher: ({ labels }) =>
labels.some(l => l.name === "os" && l.value === "Ubuntu") &&
labels.some(l => l.name === "browser" && l.value === "Firefox"),
}
}
}Para establecer un nombre visible diferente al ID, agrega el campo name:
{
environments: {
prod_env: {
name: "Production", // se muestra en el reporte; el ID "prod_env" se usa internamente
matcher: ({ labels }) =>
labels.find(({ name, value }) => name === "env" && value === "production"),
},
}
}Las configuraciones anteriores resultan en menús de entorno como estos:

Cómo funcionan las funciones de coincidencia
- Allure lee archivos de resultados de pruebas y carga todas las
labelsde cada resultado de prueba. - La función de coincidencia recibe
{ labels: TestLabel[] }del proceso de Allure Report. Cada etiqueta es{ name: string, value: string }. - Si el resultado de la prueba pertenece al entorno, la función de coincidencia devuelve
true. - La primera coincidencia gana - los resultados de pruebas no pueden ser asignados a múltiples entornos, por lo que el orden de los entornos en el archivo de configuración importa.
- Si Allure no puede hacer coincidir un resultado de prueba con ningún entorno, lo asigna al entorno
default, para que no se pierdan resultados de pruebas.
Variables de entorno
Puedes agregar cualquier metadata que se aplique a todo el reporte a través del parámetro de configuración global variables. Allure lo muestra en la parte superior de la página de inicio del reporte en la sección Variables.
En addition to global variables, you can set environment-specific variables, which can override existing global variables, or be displayed in addition to them, when you select a specific environment:
// Variables Globales vs Variables Específicas de Entorno
{
variables: {
"App Version": "2.5.1", // Se muestra en todas partes
"Build Number": "#1234", // Se muestra en todas partes
"Database": "prod-db-primary" // Se muestra, a menos que se sobrescriba
},
environments: {
staging: {
matcher: ({ labels }) =>
labels.some(({ name, value }) => name === "env" && value === "staging"),
variables: {
"Server": "staging.example.com", // Se muestra para staging
"Database": "staging-db", // Sobrescribe la variable global para staging
}
},
production: {
matcher: ({ labels }) =>
labels.some(({ name, value }) => name === "env" && value === "production"),
variables: {
"Server": "api.example.com", // Se muestra para production
}
}
}
}
Sobrescritura CLI y flujos de trabajo CI/CD
Allure CLI te permite sobrescribir la asignación de entorno para todo el lanzamiento de pruebas usando el comando envolvente allure run.
Usa --environment para especificar el entorno por su ID (la clave del config):
allure run --environment="<id_entorno>" -- <comando_prueba>O usa --environment-name para especificarlo por su nombre visible:
allure run --environment-name="<nombre_visible_entorno>" -- <comando_prueba>--environment tiene prioridad sobre --environment-name si se proporcionan ambos. Ambos tienen prioridad sobre el valor environment del archivo de configuración.
Por ejemplo:
allure run --environment="prod_env" -- pnpm test
allure run --environment-name="Production" -- pnpm testSu uso principal es ejecutar pruebas en múltiples entornos en flujos de trabajo CI/CD y crear reportes combinados con la ayuda de la funcionalidad de construcciones multietapa:
- Ejecutas tus pruebas en diferentes entornos y guardas cada ejecución como un archivo de volcado.
- Luego recopilas todos los archivos de volcado y construyes un único reporte multietapa a partir de ellos.
- Allure mapea los resultados de pruebas de todas las ejecuciones a sus entornos asignados y obtienes un reporte unificado bien estructurado, donde puedes ver y comparar fácilmente cómo se desempeñan tus pruebas en diferentes contextos.
A continuación se muestra un fragmento del flujo de trabajo de demostración de Allure Report 3 en GitHub, ilustrando esta idea.
jobs:
test:
name: Build
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
# ...
# Pasos de configuración del entorno de prueba
# ...
- name: Test Project
# Una ejecución completa de pruebas por sistema operativo guardada como archivo de volcado
run: pnpm allure run --config=./allurerc.mjs --environment="${{ matrix.os }}" --dump="allure-results-${{ matrix.os }}" -- pnpm test
- name: Upload test results
if: always()
uses: actions/upload-artifact@v5
with:
name: allure-results-${{ matrix.os }}
path: ./allure-results-${{ matrix.os }}.zip
compression-level: 0
report:
runs-on: ubuntu-latest
needs: test
steps:
# ...
# Pasos de configuración del generador de reportes
# ...
# Obteniendo el archivo de volcado para la ejecución de pruebas en Ubuntu
- name: Download allure results from Ubuntu
uses: actions/download-artifact@v6
with:
name: allure-results-ubuntu-latest
path: ./
# Obteniendo el archivo de volcado para la ejecución de pruebas en macOS
- name: Download allure results from macOS
uses: actions/download-artifact@v6
with:
name: allure-results-macos-latest
path: ./
- name: Build report
# Construyendo el reporte multietapa desde todos los archivos de volcado obtenidos
run: pnpm allure generate --dump="allure-results-*.zip" --output=./allure-report
# ...
# Pasos de despliegue del reporte
# ...TIP
Aunque la opción --environment sobrescribe las reglas de mapeo de etiquetas en el archivo de configuración, aún recogerá cualquier variable especificada para el entorno que coincida con el que pasas. Esto significa que puedes definir variables de entorno en la configuración incluso cuando uses --environment para asignar entornos.
{
environments: {
staging: {
// matcher redundante cuando se usa la bandera --environment
variables: {
"Server": "staging.example.com",
"Database": "staging-db"
}
},
production: {
variables: {
"Server": "api.example.com",
"Database": "prod-db-primary"
}
}
}
}La antigua característica de entornos
Allure 3 aún admite agregar metadata de entorno a un reporte usando el método heredado de Allure 2: si se descubre un archivo environment.properties en el directorio de resultados, Allure muestra los datos de este en la parte superior de la página del reporte en la sección Metadata.

Esto puede complementar o entrar en conflicto con tu configuración de entornos, así que asegúrate de deshacerte de este archivo, o de armonizarlo con tu nueva configuración de entornos - lo que mejor te convenga.