Chrome for Testing: téléchargements fiables pour l'automatisation des navigateurs

Mathias Bynens
Mathias Bynens

Aujourd'hui, nous avons le plaisir d'annoncer le lancement de Chrome for Testing, une nouvelle version de Chrome qui cible spécifiquement les cas d'utilisation de test et d'automatisation des applications Web. Cet article explique pourquoi l'équipe Chrome a estimé que c'était nécessaire, et présente des exemples concrets où Chrome for Testing pourrait vous être utile en tant que développeur.

Contexte

Qu'ils soient réalisés manuellement ou automatiquement, les tests des navigateurs sont essentiels pour créer une expérience de haute qualité sur le Web. En parallèle, configurer un environnement de test de navigateur adapté est particulièrement difficile à mettre en place, à tel point qu'il est systématiquement signalé comme une difficulté majeure pour les développeurs Web. Nous annonçons aujourd'hui un changement qui, nous l'espérons, atténuera certaines de ces difficultés.

Mise à jour automatique: idéale pour les utilisateurs, fastidieuse pour les développeurs

L'une des fonctionnalités les plus importantes de Chrome est sa capacité à se mettre à jour automatiquement. Les utilisateurs sont ravis d'apprendre qu'ils exécutent une version à jour et sécurisée de leur navigateur, qui inclut en permanence des fonctionnalités modernes de la plate-forme Web et du navigateur, et corrige les bugs.

Toutefois, en tant que développeur exécutant une suite de tests de bout en bout, vous pouvez avoir un point de vue complètement différent:

  • Vous souhaitez obtenir des résultats cohérents et reproductibles lors de tests répétés, mais cela peut ne pas se produire si le fichier exécutable ou le binaire du navigateur décide de se mettre à jour entre deux exécutions.
  • Vous souhaitez épingler une version spécifique du navigateur et vérifier son numéro de version dans votre dépôt de code source, afin de pouvoir vérifier les anciens commits et branches, et réexécuter les tests sur le binaire du navigateur à partir de ce moment-là.

Rien de tout cela n'est possible avec un binaire de navigateur mis à jour automatiquement. Vous ne souhaitez donc peut-être pas utiliser votre installation Chrome habituelle pour réaliser des tests automatisés. Il s'agit là de la différence fondamentale entre ce qui est bon pour les utilisateurs de navigateurs standards et ce qui est bon pour les développeurs qui effectuent des tests automatisés.

Binaires de navigateur versionnés

Hormis la mise à jour automatique, vous avez peut-être aussi eu des difficultés à trouver un binaire Chrome avec une version spécifique. Google n'offre pas intentionnellement la possibilité de télécharger les versions de Chrome, car les utilisateurs ne doivent pas se soucier des numéros de version et doivent toujours obtenir la dernière version le plus rapidement possible. C'est une solution idéale pour les utilisateurs, mais elle peut s'avérer fastidieuse pour les développeurs qui ont besoin de reproduire un rapport de bug dans une ancienne version de Chrome.

Voici un exemple plus spécifique : lorsque vous souhaitez utiliser ChromeDriver pour l'automatisation du navigateur. Pour vous assurer que les deux fichiers binaires sont compatibles, vous devez non seulement télécharger un binaire Chrome, mais aussi un binaire ChromeDriver dont les versions sont associées.

Comme il n'existe aucun moyen efficace de résoudre ces problèmes, nous savons que de nombreux développeurs téléchargent plutôt les fichiers binaires Chromium (et non Chrome), bien que cette approche présente quelques défauts. Tout d'abord, ces fichiers binaires Chromium ne sont pas disponibles de manière fiable sur toutes les plates-formes. Deuxièmement, elles sont créées et publiées séparément du processus de publication de Chrome, ce qui empêche de recouper leurs versions avec les versions réelles de Chrome destinées aux utilisateurs. Troisièmement, Chromium est différent de Chrome.

La solution: Chrome for Testing

Conçu pour résoudre ces problèmes, Chrome for Testing est un type de Chrome dédié aux tests, sans mise à jour automatique, intégré au processus de lancement de Chrome et disponible pour chaque version de Chrome. Un binaire avec gestion des versions aussi proche que possible de la version standard de Chrome, sans nuire au cas d'utilisation des tests

Pour créer Chrome for Testing, nous avons apporté des modifications aux codebases Chromium et Chrome. Nous avons également configuré l'infrastructure pour créer et importer ces binaires dans un bucket accessible au public, en parallèle du processus de publication de Chrome sur toutes les versions (stable, bêta, en développement et Canary).

L'infrastructure autour de Chrome for Testing offre des opportunités intéressantes au-delà de Chrome. Par exemple, les problèmes mentionnés précédemment concernant la recherche d'un binaire Chrome et ChromeDriver correspondant peuvent être complètement éliminés en intégrant le processus de publication ChromeDriver à l'infrastructure Chrome for Testing. En plus de résoudre ce problème des utilisateurs, les versions ChromeDriver sont alignées sur celles de Chrome et le processus de lancement manuel est éliminé.

Comment obtenir des binaires Chrome for Testing ?

Le moyen le plus simple de télécharger des binaires Chrome for Testing pour votre plate-forme consiste à utiliser notre utilitaire de ligne de commande @puppeteer/browsers, disponible via npm. Voici quelques exemples :

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Si vous préférez créer vos propres scripts automatisés pour télécharger ces binaires, nous avons ce qu'il vous faut. Nous proposons des points de terminaison d'API JSON avec les dernières versions disponibles par version de Chrome (stable, bêta, en développement ou Canary). Pour un aperçu rapide du dernier état, consultez le tableau de bord de disponibilité Chrome for Testing.