Le reporter HTML intégré de Playwright et Allure donnent tous les deux des résultats de tests structurés et navigables avec screenshots et traces attachés aux échecs. Ils fonctionnent différemment et s'adressent à des publics distincts.

Le reporter HTML intégré

Playwright embarque un reporter HTML qui ne nécessite aucune configuration. Pour l'activer :

// playwright.config.ts
reporter: [['html', { open: 'never' }]],

Après une exécution, ouvrez playwright-report/index.html. Vous obtenez :

  • Un résumé des tests passés, échoués, ignorés et flaky
  • La hiérarchie complète des tests (fichier → describe → test)
  • La durée de chaque test
  • Les messages d'erreur avec stack traces
  • Les screenshots et traces attachés directement aux tests échoués
  • Un filtre par statut (cliquer sur "Failed" pour ne voir que les échecs)

L'option open: 'never' empêche le reporter de lancer un navigateur automatiquement après chaque exécution, ce qui est utile en local mais indésirable en CI.

Pour la CI, uploadez le dossier du rapport comme artefact :

- uses: actions/upload-artifact@v4
  if: always()
  with:
    name: playwright-report
    path: playwright-report/
    retention-days: 30

if: always() garantit l'upload de l'artefact même quand les tests échouent, c'est précisément quand il est nécessaire.

Exécuter plusieurs reporters simultanément

Plusieurs reporters peuvent tourner en même temps :

reporter: [
  ['html', { open: 'never' }],
  ['list'],
  ['junit', { outputFile: 'results.xml' }],
],

List affiche les résultats dans le terminal en temps réel, pratique pour suivre une exécution locale. JUnit produit un fichier XML compatible avec Jenkins et les autres systèmes CI qui parsent ce format. HTML génère le rapport visuel complet.

En CI, list + HTML + JUnit est une combinaison courante : list pour la visibilité dans les logs, HTML pour les humains, JUnit pour les outils CI.

Reporter Allure

Le reporter HTML intégré suffit dans de nombreux cas. Allure va plus loin : graphiques de tendance entre les exécutions, filtrage par sévérité, historique des tests, interface plus soignée. La configuration est plus lourde.

Installation

npm install -D allure-playwright allure-commandline

Configuration

reporter: [
  ['allure-playwright'],
  ['list'],
],

Générer et ouvrir le rapport

npx allure generate allure-results --clean -o allure-report
npx allure open allure-report

La première commande génère le HTML depuis les résultats bruts. La deuxième l'ouvre dans un navigateur. En CI, générez le rapport dans une étape distincte après l'exécution des tests.

Annotations Allure

Allure devient puissant quand on annote les tests :

import { test, expect } from '@playwright/test';
import { allure } from 'allure-playwright';

test('l\'utilisateur peut passer une commande', async ({ page }) => {
  allure.label('severity', 'critical');
  allure.story('Passage de commande');
  allure.description('Vérifie le flux de commande de bout en bout, du panier à la confirmation.');

  await allure.step('Naviguer vers la page produit', async () => {
    await page.goto('/products/laptop');
  });

  await allure.step('Ajouter au panier', async () => {
    await page.getByRole('button', { name: 'Ajouter au panier' }).click();
  });

  await allure.step('Finaliser la commande', async () => {
    await page.getByRole('link', { name: 'Passer la commande' }).click();
    // ...
  });
});

Les étapes apparaissent comme des sections repliables dans le rapport : on voit exactement l'étape qui a échoué, pas seulement le nom du test.

Allure dans GitHub Actions

- name: Exécuter les tests
  run: npx playwright test

- name: Générer le rapport Allure
  if: always()
  run: npx allure generate allure-results --clean -o allure-report

- name: Uploader le rapport Allure
  if: always()
  uses: actions/upload-artifact@v4
  with:
    name: allure-report
    path: allure-report/
    retention-days: 30

Pour un hébergement Allure persistant avec suivi d'historique, déployez sur GitHub Pages ou Allure TestOps (leur service payant). L'option open source consiste à auto-héberger le rapport sur GitHub Pages via un workflow dédié.

Choisir entre HTML et Allure

| Fonctionnalité | Playwright HTML | Allure |

|---|---|---|

| Configuration | Zéro config | npm install + commande generate |

| Intégration trace viewer | Intégrée | Attachement manuel |

| Historique / tendances | Non | Oui |

| Annotations (sévérité, story, étapes) | Non | Oui |

| Taille de l'artefact CI | Petite | Plus grande |

| Accès équipe | Téléchargement de l'artefact | Hébergement possible |

Utilisez le reporter HTML intégré quand vous travaillez seul ou avec une petite équipe. Il convient aussi quand le projet est nouveau ou quand vous voulez zéro surcharge de maintenance.

Utilisez Allure quand :

  • Des parties prenantes doivent lire les rapports sans avoir accès à GitHub
  • Vous voulez suivre les tendances de stabilité des tests dans le temps
  • La suite est suffisamment grande pour que l'historique par test ait de l'importance
  • Vous avez besoin d'une classification par sévérité pour prioriser les corrections

Annoter les tests sans Allure

Pour une catégorisation légère sans Allure, Playwright propose des annotations natives :

test('le paiement échoue gracieusement en cas d\'erreur réseau', {
  tag: '@regression',
  annotation: { type: 'issue', description: 'https://github.com/org/repo/issues/123' },
}, async ({ page }) => {
  // corps du test
});

Les tags apparaissent dans le reporter HTML et servent à filtrer les tests à exécuter :

npx playwright test --grep @regression

C'est suffisant pour la plupart des équipes qui n'ont pas besoin du reporting complet d'Allure.

→ See also: Rapports Allure pour Playwright: Configuration de Rapports de Tests Enrichis | Rapports de Tests en CI: Formats, Outils et Intégration | Playwright Trace Viewer: Déboguez les Tests Échoués Comme un Pro