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

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 tests et d'automatisations d'applications Web. Cet article explique pourquoi l'équipe Chrome a estimé que c'était nécessaire, et présente des exemples concrets dans lesquels Chrome for Testing pourrait vous être utile en tant que développeur.

Contexte

Les tests du navigateur sont essentiels pour créer une expérience Web de haute qualité, que ces tests soient effectués manuellement ou automatiquement. Parallèlement, il n'est pas toujours facile de configurer un environnement de test adéquat pour les navigateurs, à tel point qu'il est systématiquement signalé comme l'une des principales difficultés rencontrées par 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, pénible 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 à tout moment les dernières fonctionnalités de la plate-forme Web et du navigateur, ainsi que des corrections de bugs.

Toutefois, 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 lors d'exécutions de tests répétées, 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 de navigateur spécifique et vérifier son numéro de version dans votre dépôt de code source, afin de pouvoir récupérer les anciens commits et branches, et réexécuter les tests sur le binaire du navigateur à ce moment-là.

Rien de tout cela n'est possible avec un binaire de navigateur mis à jour automatiquement. Il se peut donc que vous ne souhaitiez 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 classiques 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 aussi eu du mal à trouver un binaire Chrome avec une version spécifique. Google n'offre pas intentionnellement la possibilité aux téléchargements Chrome avec versions gérées, car les utilisateurs ne devraient pas avoir à se soucier des numéros de version. Ils doivent toujours obtenir la dernière version le plus rapidement possible. C'est une solution pratique pour les utilisateurs, mais cela peut s'avérer pénible pour les développeurs qui doivent 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 avec les versions correspondantes.

É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 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 conçues et publiées séparément du processus de publication de Chrome. Par conséquent, il est impossible de faire correspondre leurs versions aux 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 une version dédiée de Chrome ciblant le cas d'utilisation de test, sans mise à jour automatique. Elle est intégrée au processus de publication de Chrome et disponible pour chaque version de Chrome. Un binaire versionné le plus proche 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, et nous avons configuré l'infrastructure pour créer et importer ces fichiers binaires dans un bucket 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 offre des opportunités intéressantes au-delà de Chrome. Par exemple, les difficultés que nous avons 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 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 du ChromeDriver est éliminé.

Comment puis-je 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, en développement ou Canary). Pour un aperçu rapide de l'état le plus récent, consultez le tableau de bord de disponibilité Chrome for Testing.