Chrome for Testing

Chrome for Testing est une version de Chrome spécialement conçue pour les cas d'utilisation de tests et d'automatisation d'applications Web. Ce document explique pourquoi l'équipe Chrome a estimé que cela était nécessaire et présente des exemples concrets dans lesquels Chrome for Testing peut vous être utile en tant que développeur.

Arrière-plan

Les tests de navigateur sont un élément essentiel de la création d'une expérience Web de haute qualité, qu'ils soient effectués manuellement ou automatiquement. En même temps, la configuration d'un environnement de test de navigateur adéquat est notoirement difficile, à tel point qu'elle est constamment signalée comme un problème majeur pour les développeurs Web.

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

L'une des fonctionnalités les plus remarquables de Chrome est sa capacité à se mettre à jour automatiquement. Les utilisateurs sont heureux de savoir qu'ils utilisent une version de navigateur à jour et sécurisée, incluant des fonctionnalités modernes de la plate-forme Web, des fonctionnalités de navigateur et des corrections de bugs à tout moment.

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 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 bloquer une version spécifique du navigateur et vérifier ce numéro de version dans votre dépôt de code source, afin de pouvoir extraire d'anciens commits et branches, puis 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 à mise à jour automatique. Par conséquent, vous ne voudrez peut-être pas utiliser votre installation Chrome habituelle pour les tests automatisés. Il s'agit de la différence fondamentale entre ce qui est bon pour les utilisateurs de navigateur habituels et ce qui est bon pour les développeurs effectuant des tests automatisés.

Binaires de navigateur versionnés

Outre la mise à jour automatique, vous avez peut-être également eu du mal à trouver un binaire Chrome avec une version spécifique. Google ne met pas intentionnellement à disposition de téléchargements Chrome versionnés, car les utilisateurs ne devraient pas avoir à se soucier des numéros de version. Ils devraient toujours être mis à jour vers la dernière version dès que possible. C'est idéal pour les utilisateurs, mais problématique 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 se produit lorsque vous souhaitez utiliser ChromeDriver pour l'automatisation du navigateur. Non seulement vous devez télécharger un binaire Chrome, mais vous avez également besoin d'un binaire ChromeDriver versionné de manière correspondante pour vous assurer que les deux binaires sont compatibles.

En l'absence de solution efficace à ces problèmes, de nombreux développeurs téléchargent plutôt des binaires Chromium (et non Chrome), bien que cette approche présente quelques inconvénients. Tout d'abord, ces binaires Chromium ne sont pas disponibles de manière fiable sur toutes les plates-formes. Ensuite, ils sont créés et publiés séparément du processus de publication de Chrome, ce qui rend impossible de mapper leurs versions sur les versions Chrome réelles destinées aux utilisateurs. Enfin, 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 disponible pour chaque version de Chrome. Un binaire versionné aussi proche que possible de Chrome standard sans affecter négativement le cas d'utilisation des tests.

Le logo Chrome for Testing, qui est le logo Chrome habituel avec le mot "Test" dans un rectangle noir.

Pour créer Chrome for Testing, nous avons apporté des modifications aux bases de code Chromium et Chrome, et configuré une infrastructure pour créer et importer ces binaires dans un bucket accessible au public en même temps que le processus de publication de Chrome sur tous les canaux (stable, bêta, développement et Canary).

L'infrastructure autour de Chrome for Testing ouvre des opportunités 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 dans l'infrastructure Chrome for Testing. En plus de résoudre ce problème pour les utilisateurs, cela aligne également les versions de ChromeDriver sur celles de Chrome et élimine le processus manuel de publication de ChromeDriver.