O reporter HTML integrado do Playwright não tem detalhamento passo a passo, nenhum histórico de tendências entre execuções no CI, e nenhuma forma de vincular falhas a um bug tracker. O Allure adiciona os três através do adaptador allure-playwright, que escreve resultados brutos que você então compila em um relatório interativo com gráficos de tendências e categorias de falhas.
O que o Allure oferece
- Suites de teste organizadas por arquivo, describe block e nome do teste
- Timeline mostrando execução paralela de testes
- Detalhamento passo a passo do que aconteceu em cada teste
- Anexos: screenshots, vídeos, logs do console inline no relatório
- Tendências: taxas de aprovação/reprovação em múltiplas execuções
- Informações de ambiente: qual navegador, OS, versão do app foi testada
- Categorias: agrupar falhas por tipo (bugs de produto, bugs de teste, flaky)
Instalação
# Instalar o adaptador Allure para Playwright
npm install -D allure-playwright
# Instalar o Allure CLI para gerar e abrir relatórios
npm install -D allure-commandlineOu instalar o Allure CLI globalmente:
npm install -g allure-commandlineConfiguração
Adicione o Allure como reporter no playwright.config.ts:
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [
['list'], // Output no console durante a execução
['allure-playwright'], // Geração do relatório Allure
],
// Opcional: configurar o Allure especificamente
// reporter: [
// ['allure-playwright', {
// detail: true,
// outputFolder: 'allure-results',
// suiteTitle: false,
// }],
// ],
});O reporter escreve os resultados brutos em allure-results/ durante a execução dos testes. Você então gera o relatório HTML a partir desses resultados.
Rodando e visualizando relatórios
# Rodar os testes (escreve em allure-results/)
npx playwright test
# Gerar relatório HTML
npx allure generate allure-results --clean -o allure-report
# Abrir no navegador
npx allure open allure-reportOu combinar geração e abertura:
npx allure generate allure-results --clean && npx allure open allure-reportAdicione ao package.json para conveniência:
{
"scripts": {
"test": "npx playwright test",
"report": "npx allure generate allure-results --clean -o allure-report && npx allure open allure-report"
}
}Então: npm test && npm run report
Adicionando steps aos testes
O Allure pode mostrar detalhamentos passo a passo se você anotar seu código:
import { test, expect } from '@playwright/test';
import { allure } from 'allure-playwright';
test('login bem-sucedido', async ({ page }) => {
await allure.step('Navegar para a página de login', async () => {
await page.goto('/login');
});
await allure.step('Inserir credenciais', async () => {
await page.fill('[data-testid="email"]', 'user@test.com');
await page.fill('[data-testid="password"]', 'ValidPass1');
});
await allure.step('Enviar formulário de login', async () => {
await page.click('[data-testid="submit"]');
});
await allure.step('Verificar redirecionamento para o dashboard', async () => {
await expect(page).toHaveURL('/dashboard');
await expect(page.getByTestId('welcome')).toBeVisible();
});
});No relatório Allure, cada step aparece separadamente com status de aprovado/reprovado.
Adicionando metadados
Anote os testes com metadados para melhor organização e filtragem:
test('pagamento com cartão válido', async ({ page }) => {
// Labels para filtragem e agrupamento
allure.label('feature', 'Checkout');
allure.label('story', 'Pagamento com cartão de crédito');
allure.severity('critical'); // 'blocker' | 'critical' | 'normal' | 'minor' | 'trivial'
allure.owner('qa-team');
// Link para issues e casos de teste
allure.issue('PROJ-123', 'https://jira.minhaempresa.com/PROJ-123');
allure.tmsLink('TC-456', 'https://testrail.minhaempresa.com/TC-456');
// Descrição
allure.description('Verificar que cartão de teste Stripe válido completa a compra');
// Tags
allure.tag('smoke');
allure.tag('payment');
// ... código do teste
});Anexando screenshots e arquivos
import { allure } from 'allure-playwright';
import * as fs from 'fs';
test('verifica layout da página', async ({ page }) => {
await page.goto('/dashboard');
// Anexar screenshot manualmente
const screenshot = await page.screenshot();
await allure.attachment('Screenshot do dashboard', screenshot, 'image/png');
// Anexar arquivo de texto
const logContent = 'Teste iniciado em: ' + new Date().toISOString();
await allure.attachment('Log do teste', Buffer.from(logContent), 'text/plain');
// Anexar dados JSON
const apiResponse = { status: 'ok', users: 42 };
await allure.attachment(
'Resposta da API',
Buffer.from(JSON.stringify(apiResponse, null, 2)),
'application/json'
);
});Screenshots em caso de falha são anexadas automaticamente se você as configurar no playwright.config.ts:
use: {
screenshot: 'only-on-failure',
video: 'retain-on-failure',
}Informações de ambiente
Adicione detalhes do ambiente para que o relatório mostre o que foi testado:
// No playwright.config.ts ou no global setup
// Cria um arquivo 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 || 'desconhecido'}`,
].join('\n');
fs.mkdirSync('allure-results', { recursive: true });
fs.writeFileSync(path.join('allure-results', 'environment.properties'), envProps);
}Isso aparece na seção Environment do relatório Allure.
Configuração de categorias
Categorias agrupam falhas de teste por tipo. Crie allure-results/categories.json:
[
{
"name": "Bugs de Produto",
"messageRegex": ".*Expected.*",
"matchedStatuses": ["failed"]
},
{
"name": "Problemas de Infraestrutura de Teste",
"messageRegex": ".*net::ERR.*|.*Navigation timeout.*|.*Connection refused.*",
"matchedStatuses": ["failed", "broken"]
},
{
"name": "Flakiness de Teste",
"matchedStatuses": ["flaky"]
}
]O Allure categoriza automaticamente as falhas com base em padrões de mensagens de erro.
Integração com CI/CD
GitHub Actions
- name: Rodar testes Playwright
run: npx playwright test
- name: Gerar relatório Allure
if: always()
run: npx allure generate allure-results --clean -o allure-report
- name: Fazer upload do relatório Allure
uses: actions/upload-artifact@v4
if: always()
with:
name: allure-report
path: allure-report/
retention-days: 30
- name: Fazer upload dos resultados brutos (para dados de tendência)
uses: actions/upload-artifact@v4
if: always()
with:
name: allure-results
path: allure-results/Allure TestOps (versão cloud)
Para histórico de tendências persistente entre execuções no CI, o Allure TestOps (serviço pago) armazena resultados centralmente. Alternativa gratuita: baixe os artefatos allure-results de execuções anteriores e inclua-os no próximo comando allure generate.
Playwright Report vs Allure Report
| Recurso | Playwright HTML | Allure |
|---------|----------------|--------|
| Setup necessário | Nenhum | Instalar + passo de geração |
| Detalhamento de steps | Não | Sim (com anotações) |
| Histórico de tendências | Não | Sim |
| Categorias | Não | Sim (configurável) |
| Links para ferramentas externas | Não | Sim (Jira, TestRail) |
| Melhor para | Uso diário rápido | Relatórios para stakeholders, histórico de CI |
Use o relatório integrado do Playwright localmente para feedback rápido. Use o Allure no CI para histórico persistente e relatórios para stakeholders.
Resumo
# Instalar
npm install -D allure-playwright allure-commandline
# Configurar no playwright.config.ts
reporter: [['allure-playwright']]
# Rodar → gerar → visualizar
npx playwright test
npx allure generate allure-results --clean
npx allure open allure-reportRecursos principais para usar:
allure.step()para detalhamento legível do testeallure.severity()e labels para filtragemallure.issue()para vincular falhas ao bug tracker- Propriedades de ambiente para documentar o que foi testado
O Allure é mais valioso quando você compartilha resultados de teste com desenvolvedores e product managers. Eles precisam entender o que falhou e por quê: o formato visual comunica mais do que uma lista de nomes de teste.
→ Veja também: Relatórios de Testes Playwright: HTML Integrado vs Allure | Relatórios de Testes no CI: Formatos, Ferramentas e Integração | GitHub Actions para Testes Playwright: A Configuração Completa (2026)