Aller au contenu
AFUP AFUP Day 2025 Baromètre Planète PHP PUFA
 

Symfony Panther : tester vos applis web avec de vrais navigateurs n’a jamais été aussi simple

Description

Que ce soit quelques lignes de jQuery ou des Progressive Web Apps React/Vue.js/Angular complètes, toutes les applications web modernes contiennent du JavaScript. L’écosystème PHP et les frameworks tels que Symfony ou Zend proposent des outils pour réaliser des tests fonctionnels et de bout en bout (E2E), malheureusement ils se contentent d’effectuer des requêtes HTTP (Guzzle, Symfony WebTestCase, Zend Test PHPUnit) et des assertions sur le HTML généré côté serveur (BrowserKit). Ils ne sont pas capables d’exécuter le code JavaScript, de générer du HTML côté client, de tester si un élément est visible ou non, si une boîte de dialogue (alert, prompt) est bien affichée au clic… De plus, ces outils de test ne permettent pas de détecter les éventuels bugs touchant des navigateurs spécifiques.

Panther est une toute nouvelle bibliothèque qui permet - grâce au standard WebDriver du W3C - de piloter tous les navigateurs modernes (Chrome, Firefox, Safari, Edge…) directement en PHP pour réaliser des tests fonctionnels et E2E, ou du web scraping. Panther implémente la très pratique API publique du composant BrowserKit de Symfony, ce qui lui permet d’exécuter les tests écrits avec le composant de test fonctionnel de Symfony et les scripts utilisant la bibliothèque de web scraping Goutte sans avoir à les modifier ! De plus, il implémente l’API de PHP WebDriver, et donne accès à toutes les fonctionnalités avancées du protocole du même nom, parmi lesquelles la possibilité d’effectuer des captures d’écran ou exécuter des scripts JavaScript personnalisés dans le contexte d’exécution de la page.

Panther s’installe à l’aide d’un simple « composer require » et tout ce dont il a besoin pour fonctionner c’est un navigateur (pas de Selenium ou autre). Il détecte la structure de l’application, lance un serveur web pour la servir, trouve l’installation locale de Chrome ou de Firefox et les démarre en mode « headless » sans qu’aucune configuration ne soit nécessaire ! Il s’intègre également avec les solutions d’intégration continues populaires tel que Travis et fonctionne avec Docker. Encore mieux, il est compatible avec les services SauceLabs et BrowserStack pour tester votre application sur toutes les plateformes mobiles et bureaux possibles et imaginables.

Lors de cette présentation, vous découvrirez l’ensemble des capacités du félin et son fonctionnement interne !

Conférence donnée lors du AFUP Day 2019 Lille, ayant eu lieu le 17 mai 2019.

Informations complémentaires

Le speaker

Kévin DUNGLAS

Kévin est le fondateur de la société autogérée Les-Tilleuls.coop. Développeur polyglotte, il est membre de la core-team Symfony et a créé le framework API Platform. Il est également contributeur à plus d’une centaine de projets Open Source, conférencier et rédacteur d’articles et livres techniques.

Commentaires

Brilliant! ?
Jordan Aubert, le 17/05/2019
Très bon orateur, une pédagogie au top, parle vite mais dit juste ce qu'il faut pour comprendre. Kevin est très précis dans ce qu'il dit ce qui lui donne une force pour "vendre" la technologie avec honnêteté et avec des arguments intéressants. J'irais vraiment essayer pour me faire mon propre avis.
arnolem, le 17/05/2019
Très bonne présentation, qui a donner vraiment envie de pousser plus loin le sujet. Merci
Dominique THOMAS, le 20/05/2019