El reporter HTML integrado de Playwright no tiene desglose paso a paso, no tiene historial de tendencias entre ejecuciones de CI, y no tiene forma de vincular fallos a un rastreador de bugs. Allure agrega las tres cosas a través del adaptador allure-playwright, que escribe resultados en bruto que luego compilas en un reporte interactivo con gráficos de tendencias y categorías de fallos. Esta guía cubre la instalación, la configuración en playwright.config.ts, la generación local de reportes y la integración con GitHub Actions.
Qué te da Allure
- Suites de tests organizadas por archivo, bloque describe y nombre del test
- Línea de tiempo que muestra la ejecución paralela de tests
- Desglose paso a paso de lo que ocurrió en cada test
- Adjuntos: capturas de pantalla, videos, logs de consola integrados en el reporte
- Tendencias: tasas de aprobado/fallido a través de múltiples ejecuciones de tests
- Información del entorno: qué navegador, OS y versión de la app se testeó
- Categorías: agrupar fallos por tipo (bugs del producto, bugs del test, inestables)
Instalación
# Instalar el adaptador Allure para Playwright
npm install -D allure-playwright
# Instalar Allure CLI para generar y abrir reportes
npm install -D allure-commandlineO instalar Allure CLI globalmente:
npm install -g allure-commandlineConfiguración
Agrega Allure como reporter en playwright.config.ts:
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [
['list'], // Output en consola durante la ejecución
['allure-playwright'], // Generación del reporte Allure
],
// Opcional: configurar Allure específicamente
// reporter: [
// ['allure-playwright', {
// detail: true,
// outputFolder: 'allure-results',
// suiteTitle: false,
// }],
// ],
});El reporter escribe los resultados en bruto en allure-results/ durante la ejecución de los tests. Luego generas el reporte HTML a partir de esos resultados.
Ejecutar y ver reportes
# Ejecutar tests (escribe en allure-results/)
npx playwright test
# Generar reporte HTML
npx allure generate allure-results --clean -o allure-report
# Abrir en el navegador
npx allure open allure-reportO combinar generar y abrir:
npx allure generate allure-results --clean && npx allure open allure-reportAgrega a package.json para mayor comodidad:
{
"scripts": {
"test": "npx playwright test",
"report": "npx allure generate allure-results --clean -o allure-report && npx allure open allure-report"
}
}Luego: npm test && npm run report
Agregar pasos a los tests
Allure puede mostrar desglose paso a paso si anotas tu código:
import { test, expect } from '@playwright/test';
import { allure } from 'allure-playwright';
test('login exitoso', async ({ page }) => {
await allure.step('Navegar a la página de login', async () => {
await page.goto('/login');
});
await allure.step('Ingresar credenciales', async () => {
await page.fill('[data-testid="email"]', 'user@test.com');
await page.fill('[data-testid="password"]', 'ValidPass1');
});
await allure.step('Enviar el formulario de login', async () => {
await page.click('[data-testid="submit"]');
});
await allure.step('Verificar redirección al dashboard', async () => {
await expect(page).toHaveURL('/dashboard');
await expect(page.getByTestId('welcome')).toBeVisible();
});
});En el reporte Allure, cada paso se muestra por separado con su estado de aprobado/fallido.
Agregar metadatos
Anota los tests con metadatos para mejor organización y filtrado:
test('pago con tarjeta válida', async ({ page }) => {
// Etiquetas para filtrar y agrupar
allure.label('feature', 'Checkout');
allure.label('story', 'Pago con tarjeta de crédito');
allure.severity('critical'); // 'blocker' | 'critical' | 'normal' | 'minor' | 'trivial'
allure.owner('qa-team');
// Vincular a issues y casos de prueba
allure.issue('PROJ-123', 'https://jira.miempresa.com/PROJ-123');
allure.tmsLink('TC-456', 'https://testrail.miempresa.com/TC-456');
// Descripción
allure.description('Verificar que la tarjeta de prueba válida de Stripe completa la compra');
// Tags
allure.tag('smoke');
allure.tag('payment');
// ... código del test
});Adjuntar capturas de pantalla y archivos
import { allure } from 'allure-playwright';
import * as fs from 'fs';
test('verifica el layout de la página', async ({ page }) => {
await page.goto('/dashboard');
// Adjuntar una captura de pantalla manualmente
const screenshot = await page.screenshot();
await allure.attachment('Captura del dashboard', screenshot, 'image/png');
// Adjuntar un archivo de texto
const logContent = 'Test iniciado en: ' + new Date().toISOString();
await allure.attachment('Log del test', Buffer.from(logContent), 'text/plain');
// Adjuntar datos JSON
const apiResponse = { status: 'ok', users: 42 };
await allure.attachment(
'Respuesta de la API',
Buffer.from(JSON.stringify(apiResponse, null, 2)),
'application/json'
);
});Las capturas de pantalla al fallar se adjuntan automáticamente si las configuras en playwright.config.ts:
use: {
screenshot: 'only-on-failure',
video: 'retain-on-failure',
}Información del entorno
Agrega detalles del entorno para que el reporte muestre qué se testeó:
// En playwright.config.ts o en el setup global
// Crear un archivo allure-results/environment.properties
// global-setup.ts
import * as fs from 'fs';
import * as path from 'path';
export default async function globalSetup() {
const envProps = [
`BASE_URL=${process.env.BASE_URL || 'http://localhost:3000'}`,
`ENV=${process.env.TEST_ENV || 'local'}`,
`BROWSER=chromium`,
`APP_VERSION=${process.env.APP_VERSION || 'unknown'}`,
].join('\n');
fs.mkdirSync('allure-results', { recursive: true });
fs.writeFileSync(path.join('allure-results', 'environment.properties'), envProps);
}Esto aparece en la sección de Entorno del reporte Allure.
Configuración de categorías
Las categorías agrupan los fallos de tests por tipo. Crea allure-results/categories.json:
[
{
"name": "Bugs del producto",
"messageRegex": ".*Expected.*",
"matchedStatuses": ["failed"]
},
{
"name": "Problemas de infraestructura de tests",
"messageRegex": ".*net::ERR.*|.*Navigation timeout.*|.*Connection refused.*",
"matchedStatuses": ["failed", "broken"]
},
{
"name": "Tests inestables",
"matchedStatuses": ["flaky"]
}
]Allure categoriza automáticamente los fallos según los patrones de mensajes de error.
Integración con CI/CD
GitHub Actions
- name: Ejecutar tests de Playwright
run: npx playwright test
- name: Generar reporte Allure
if: always()
run: npx allure generate allure-results --clean -o allure-report
- name: Subir reporte Allure
uses: actions/upload-artifact@v4
if: always()
with:
name: allure-report
path: allure-report/
retention-days: 30
- name: Subir resultados en bruto (para datos de tendencias)
uses: actions/upload-artifact@v4
if: always()
with:
name: allure-results
path: allure-results/Allure TestOps (versión cloud)
Para historial de tendencias persistente entre ejecuciones de CI, Allure TestOps (servicio de pago) almacena los resultados de forma centralizada. Alternativa gratuita: descarga los artefactos de allure-results de ejecuciones anteriores e inclúyelos en el próximo comando allure generate.
Reporte de Playwright vs reporte Allure
| Funcionalidad | HTML de Playwright | Allure |
|---------------|-------------------|--------|
| Configuración requerida | Ninguna | Instalación + paso de generación |
| Desglose de pasos | No | Sí (con anotaciones) |
| Historial de tendencias | No | Sí |
| Categorías | No | Sí (configurable) |
| Vínculos a herramientas externas | No | Sí (Jira, TestRail) |
| Mejor para | Uso diario rápido | Reportes para stakeholders, historial de CI |
Usa el reporte integrado de Playwright localmente para feedback rápido. Usa Allure en CI para historial persistente y reportes a stakeholders.
Resumen
# Instalar
npm install -D allure-playwright allure-commandline
# Configurar en playwright.config.ts
reporter: [['allure-playwright']]
# Ejecutar → generar → ver
npx playwright test
npx allure generate allure-results --clean
npx allure open allure-reportFuncionalidades clave para usar:
allure.step()para desglose legible del testallure.severity()y etiquetas para filtradoallure.issue()para vincular fallos al rastreador de bugs- Propiedades del entorno para documentar qué se testeó
Allure es más valioso cuando compartes los resultados de los tests con desarrolladores y product managers que necesitan entender qué falló y por qué: el formato visual comunica más que una lista de nombres de tests.
→ See also: Informes de Tests en Playwright: HTML Integrado vs Allure | Informes de Tests en CI: Formatos, Herramientas e Integración | GitHub Actions para Tests de Playwright: La Configuración Completa (2026)