Les tests automatisés des navigateurs sont essentiels pour créer des applications Web robustes et de haute qualité. Que vous exécutiez des suites de bout en bout d'intégration continue (CI), que vous effectuiez des tests de régression sur différentes versions de navigateur ou que vous automatisiez les interactions avec le navigateur, Chrome fournit une suite d'outils et de modes d'exécution dédiés conçus pour les développeurs et les ingénieurs en automatisation des tests.
Cette présentation décrit les principaux produits de l'écosystème d'automatisation et de test de Chrome : Chrome for Testing, ChromeDriver, Puppeteer et Chrome Headless mode. Elle explique également comment les utiliser ensemble pour des workflows de test fiables et reproductibles.
Chrome for Testing
Chrome for Testing est une version de Chrome dédiée aux tests et à l'automatisation des applications Web.
Lorsque vous exécutez des suites de tests de bout en bout ou des pipelines d'intégration continue (CI), vous avez souvent besoin de résultats cohérents et reproductibles sur plusieurs exécutions de test. Plutôt que de vous appuyer sur des installations de navigateur standards, Chrome for Testing vous permet de télécharger et d'épingler des versions spécifiques de Chrome pour vos environnements de test.
Principales fonctionnalités
- Téléchargements de versions à la demande : accédez à des binaires Chrome spécifiques et versionnés afin de toujours effectuer des tests sur la version exacte de votre choix.
- Binaires appariés sur tous les canaux : pour chaque version de Chrome sur tous les canaux (Stable, Beta, Dev et Canary), Chrome for Testing fournit des binaires Chrome correspondants associés aux binaires ChromeDriver pertinents, ainsi que l'ancienne interface Chrome Headless (
chrome-headless-shell) pour ceux qui l'utilisent encore dans les tests automatisés. - Automatisation facile des téléchargements : les binaires peuvent être téléchargés facilement à l'aide de l'utilitaire de ligne de commande
@puppeteer/browsersou interrogés via le tableau de bord de disponibilité.
En savoir plus
ChromeDriver
ChromeDriver est un serveur autonome Open Source qui implémente la norme W3C WebDriver et le protocole bidirectionnel WebDriver BiDi. Il sert de pont entre les frameworks de test basés sur WebDriver (tels que Selenium, WebDriverIO et Nightwatch) et le navigateur Chrome.
Principales fonctionnalités
- Compatibilité avec W3C WebDriver et WebDriver BiDi : prend en charge les commandes d'automatisation WebDriver classiques et la communication bidirectionnelle en temps réel via WebDriver BiDi pour une écoute rapide des événements, une surveillance du réseau et une interception des journaux.
- Publication simultanée avec Chrome for Testing : les versions de ChromeDriver sont intégrées directement à l'infrastructure Chrome for Testing. Pour chaque version de Chrome for Testing, une version de ChromeDriver correspondante est publiée simultanément, ce qui évite les problèmes d'incompatibilité de version.
En savoir plus
- Documentation ChromeDriver
- WebDriver BiDi : l'avenir de l'automatisation multi-navigateur
- MDN : référence WebDriver BiDi
Marionnettiste
Puppeteer est une bibliothèque JavaScript développée par Google qui fournit une API de haut niveau pour contrôler Chrome via le protocole Chrome DevTools (CDP) ou WebDriver BiDi.
Principales fonctionnalités
- Automatisation sans configuration : Puppeteer télécharge automatiquement un binaire Chrome for Testing compatible par défaut, ce qui permet une automatisation du navigateur prête à l'emploi.
- Contrôle total de Chrome : capturez facilement des captures d'écran, générez des PDF, automatisez l'envoi de formulaires, interceptez les requêtes réseau et exécutez des tests d'interface utilisateur en mode avec interface graphique ou headless.
En savoir plus
Chrome Headless mode
Le mode headless de Chrome vous permet d'exécuter Chrome dans un environnement sans surveillance, sans interface utilisateur visible. En transmettant l'indicateur --headless sur la ligne de commande, Chrome s'exécute de manière propre dans les environnements de serveur, les conteneurs et les pipelines CI/CD.
Principales fonctionnalités
- Moteur de navigateur unifié : le mode headless moderne (
--headless) partage exactement la même implémentation de navigateur que Chrome avec interface graphique. - Fonctionnalités d'automatisation et de débogage riches : prend en charge la capture de captures d'écran, la génération de PDF, le débogage à distance et la configuration d'écrans virtuels.
En savoir plus
- Exécuter Chrome en mode headless
- Configurer des écrans virtuels
- Déboguer en mode headless
- Référence de la ligne de commande headless
Exemple : Utiliser ces produits ensemble
Dans un workflow de test automatisé ou d'intégration continue (CI) typique, ces produits fonctionnent ensemble pour fournir un environnement de test reproductible et sans surveillance :
- Binaire de navigateur (Chrome for Testing) : utilisez un binaire Chrome for Testing spécifique et épinglé à une version pour que les résultats de vos tests soient déterministes sur plusieurs exécutions.
- Mode d'exécution (Chrome Headless mode) : exécutez ce binaire en mode headless (
--headless) afin que les tests s'exécutent de manière propre dans les serveurs, les conteneurs ou les pipelines CI sans affichage graphique. - Pilote d'automatisation (Puppeteer ou ChromeDriver) : pilotez le navigateur à l'aide d'une bibliothèque d'automatisation telle que Puppeteer ou tout autre framework de test connecté via WebDriver BiDi.
Puppeteer connecte ces éléments automatiquement. Une fois installé, il télécharge un binaire Chrome for Testing compatible et le lance en mode headless par défaut.
Lorsque vous utilisez des frameworks W3C WebDriver (tels que Selenium ou WebdriverIO), vous pouvez télécharger automatiquement une paire correspondante de binaires Chrome for Testing et ChromeDriver , puis transmettre l'indicateur --headless pour exécuter sans interface utilisateur.