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

Mathias Bynens
Mathias Bynens

Aujourd'hui, nous sommes heureux 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 d'applications Web. Cet article explique pourquoi l'équipe Chrome a estimé que c'était nécessaire et présente des exemples concrets d'avantages que Chrome for Testing pourrait vous apporter en tant que développeur.

Contexte

Les tests du navigateur sont essentiels pour créer une expérience Web de haute qualité, que ce soit manuellement ou automatiquement. Parallèlement, il est difficile de configurer un environnement de test de navigateur adéquat, à tel point qu'il est régulièrement signalé comme une difficulté majeure pour les développeurs Web. Aujourd'hui, nous annonçons un changement qui, nous l'espérons, permettra de soulager certaines de ces difficultés.

Mise à jour automatique: idéal pour les utilisateurs, pénible pour les développeurs

L'une des fonctionnalités les plus importantes de Chrome est la possibilité de se mettre à jour automatiquement. Les utilisateurs sont heureux d'apprendre qu'ils disposent en permanence d'une version à jour et sécurisée du navigateur, qui inclut les dernières fonctionnalités de la plate-forme Web, ainsi que des fonctionnalités de navigateur et des corrections de bugs.

Cependant, en tant que développeur exécutant une suite de tests de bout en bout, vous pouvez avoir une perspective complètement différente:

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

Rien de tout cela n'est possible avec un binaire de navigateur qui se met à jour automatiquement. Par conséquent, vous ne souhaiterez peut-être pas utiliser votre installation Chrome standard pour effectuer des tests automatisés. Il s'agit 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 avec versions gérées

Mis à part la mise à jour automatique, vous avez peut-être également eu du mal à trouver un binaire Chrome avec une version spécifique. Google ne propose pas intentionnellement de télécharger les versions gérées de Chrome, car les utilisateurs ne devraient pas avoir à se soucier des numéros de version. Ils devraient toujours passer à la dernière version dès que possible. Cette méthode est utile pour les utilisateurs, mais elle peut être fastidieuse pour les développeurs qui doivent reproduire un rapport de bug dans une ancienne version de Chrome.

Un exemple plus spécifique de ce problème est lorsque vous souhaitez utiliser ChromeDriver pour automatiser le navigateur. Vous devez non seulement télécharger un fichier binaire Chrome, mais vous avez également besoin d'un binaire ChromeDriver avec la version correspondante pour vous assurer que les deux binaires sont compatibles.

Étant donné qu'il n'existe aucun moyen efficace de résoudre ces problèmes, nous savons que de nombreux développeurs téléchargent des binaires Chromium (et non Chrome) à la place, bien que cette approche comporte quelques défauts. Tout d'abord, ces binaires Chromium ne sont pas disponibles de manière fiable sur toutes les plates-formes. Deuxièmement, ils sont créés et publiés indépendamment du processus de publication de Chrome, ce qui rend impossible de faire correspondre leurs versions aux versions réelles de Chrome visibles par les 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 une version dédiée de Chrome ciblant le cas d'utilisation des tests, sans mise à jour automatique, intégrée au processus de publication de Chrome et rendue disponible pour chaque version de Chrome. Un binaire avec gestion des versions qui se rapproche le plus de la version standard de Chrome sans affecter négativement le cas d'utilisation des tests.

Pour créer Chrome for Testing, nous avons apporté des modifications aux codebases Chromium et Chrome, et nous avons mis en place une infrastructure permettant de créer et d'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 de Chrome for Testing ouvre des perspectives intéressantes au-delà de Chrome lui-même. Par exemple, les difficultés mentionnées précédemment concernant la recherche d'un binaire Chrome et ChromeDriver correspondant peuvent être complètement éliminées en intégrant le processus de publication de ChromeDriver à l'infrastructure Chrome for Testing. En plus de résoudre ce problème visible par l'utilisateur, les versions de ChromeDriver sont alignées sur celles de Chrome et le processus de publication manuelle de ChromeDriver est éliminé.

Comment obtenir des binaires Chrome for Testing ?

Le moyen le plus simple de télécharger les 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 pour chaque version disponible de Chrome (stable, bêta, développeur, Canary). Pour obtenir un aperçu rapide de l'état le plus récent, consultez le tableau de bord des disponibilités de Chrome for Testing.