Playwright est une librairie open-source développée par Microsoft qui permet d’automatiser les tests de navigateurs web. En plus des tests end-to-end classiques, elle offre des fonctionnalités avancées pour détecter et analyser les erreurs JavaScript qui surviennent pendant l’exécution des tests. Dans le cadre d’un audit que j’ai eu à réaliser, cette fonctionnalité est vraiment utile pour identifier les bugs côté client avant qu’ils n’atteignent la production.
Contexte
J’ai trois pages HTML :
page0.html
qui est une page HTML sans erreurspage1.html
qui est une page HTML qui génère une erreur JSpage2.html
qui est une page HTML qui génère un warning JS
|
|
|
|
|
|
Mise en place
- On va commencer par mettre en place l’environnement de test avec la commande
npm init playwright@latest
- La commande va nous poser quelques questions sur le déploiement :
- La commande va générer tous les fichiers et installer les dépendances :
- La commande donne ensuite quelques commandes pour utiliser playwright :
Théorie
Playwright permet de se brancher sur différents évènements de la page. L’un d’eux console
permet de récupérer des objets de type ConsoleMessage
. Chaque message de la console déclenchera un évènement.
On peut y récupérer :
- le type
- le message
- l’origine du message (fichier, line et colonne)
- la page d’origine
Ainsi, le code sera basiquement cela :
|
|
Utilisation
Maintenant que l’on a la théorie, on peut l’appliquer sur nos fichiers HTML.
On va créer un scénario en trois étapes :
- Avant chaque test :
- Je me branche sur l’évènement
console
et je récupère les erreurs et les warnings de la console
- Je me branche sur l’évènement
- Après chaque test :
- Je réinitialise les erreurs et warnings de la page
- Pour chaque test :
- Je vais sur le chaque fichier HTML
- Je vérifie qu’il y a bien le bon nombre d’erreurs et de warnings de la console attendus
Voici le code :
|
|
Et pour tester cela, une commande :
|
|
Et voilà le résultat :