Wir freuen uns, heute Chrome for Testing vorstellen zu können, eine neue Chrome-Variante, die speziell auf das Testen von Web-Apps und die Automatisierung ausgerichtet ist. In diesem Artikel wird erläutert, warum das Chrome-Team dies für notwendig hielt und anhand konkreter Beispiele erläutert, in welchen Bereichen Chrome for Testing Sie als Entwickler unterstützen kann.
Hintergrund
Browsertests sind ein wesentlicher Bestandteil beim Erstellen einer qualitativ hochwertigen Website, unabhängig davon, ob sie manuell oder automatisch durchgeführt werden. Gleichzeitig ist die Einrichtung einer geeigneten Browsertestumgebung so schwierig, dass sie konsequent als eines der häufigsten Probleme von Webentwicklern gemeldet wird. Heute geben wir eine Änderung bekannt, durch die einige dieser Probleme hoffentlich behoben werden.
Automatische Updates: hervorragend für Nutzer, mühsam für Entwickler
Eine der bemerkenswertesten Funktionen von Chrome sind die automatischen Updates. Nutzer sind froh, dass sie eine aktuelle und sichere Browserversion verwenden, die jederzeit moderne Webplattform-Funktionen und Browserfunktionen sowie Fehlerkorrekturen bietet.
Als Entwickler, der eine Reihe von End-to-End-Tests durchführt, sehen Sie jedoch möglicherweise eine ganz andere Perspektive:
- Sie möchten konsistente, reproduzierbare Ergebnisse bei wiederholten Testläufen. Dies passiert jedoch möglicherweise nicht, wenn die ausführbare Datei oder das Binärprogramm des Browsers zwischen zwei Testläufen automatisch aktualisiert wird.
- Sie möchten eine bestimmte Browserversion anheften und diese Versionsnummer in Ihr Quellcode-Repository einchecken, damit Sie alte Commits und Zweige auschecken und die Tests ab diesem Zeitpunkt erneut mit der Browser-Binärdatei ausführen können.
Mit einem automatisch aktualisierten Browser-Binärprogramm ist dies nicht möglich. Daher sollten Sie Ihre reguläre Chrome-Installation nicht für automatische Tests verwenden. Dies ist die grundlegende Abweichung zwischen den Vorteilen für normale Browsernutzer und den Vorteilen für Entwickler, die automatisierte Tests durchführen.
Browser-Binärdateien mit Versionsangabe
Abgesehen von den automatischen Updates fanden Sie möglicherweise auch schwierig, ein Chrome-Binärprogramm mit einer bestimmten Version zu finden. Google stellt absichtlich keine versionierten Chrome-Downloads zur Verfügung, da sich die Nutzer nicht um Versionsnummern kümmern sollten – sie sollten immer so schnell wie möglich auf die neueste Version aktualisiert werden. Das ist hilfreich für Nutzer, aber für Entwickler, die einen Fehlerbericht in einer älteren Chrome-Version reproduzieren müssen, umständlich.
Ein konkreteres Beispiel für dieses Problem ist, wenn Sie ChromeDriver für die Browserautomatisierung verwenden möchten. Sie müssen nicht nur ein Chrome-Binärprogramm herunterladen, sondern auch eine entsprechende versionierte ChromeDriver-Binärdatei, um sicherzustellen, dass die beiden Binärdateien kompatibel sind.
Da es für diese Probleme keine geeignete Lösung gibt, wissen wir, dass viele Entwickler stattdessen Chromium-Binärdateien (nicht Chrome) herunterladen. Diese Methode weist jedoch einige Fehler auf. Erstens sind diese Chromium-Binärdateien nicht zuverlässig auf allen Plattformen verfügbar. Zweitens werden sie unabhängig vom Chrome-Veröffentlichungsprozess erstellt und veröffentlicht, sodass es nicht möglich ist, die Versionen echten Chrome-Releases für Nutzer zuzuordnen. Drittens: Chromium unterscheidet sich von Chrome.
Die Lösung: Chrome for Testing
Chrome for Testing wurde entwickelt, um diese Probleme zu lösen. Chrome for Testing ist eine spezielle Variante von Chrome, die für den Testanwendungsfall ohne automatische Updates entwickelt wurde und in den Chrome-Release-Prozess eingebunden ist. Sie ist für alle Chrome-Versionen verfügbar. Eine versionierte Binärdatei, die der regulären Chrome-Version so ähnlich wie möglich ist, ohne den Testanwendungsfall zu beeinträchtigen.
Bei der Entwicklung von Chrome for Testing haben wir Änderungen an der Codebasis von Chromium und Chrome vorgenommen und eine Infrastruktur eingerichtet, um diese Binärdateien zu erstellen und in einen öffentlich verfügbaren Bucket hochzuladen. Diese werden im Zuge des Chrome-Release-Prozesses in allen Kanälen (Stabil, Beta, Entwickler und Canary) veröffentlicht.
Die Infrastruktur von Chrome for Testing eröffnet interessante Möglichkeiten, die über Chrome hinausgehen. Beispielsweise können die zuvor erwähnten Schwierigkeiten bei der Suche nach einem passenden Chrome- und ChromeDriver-Binärprogramm vollständig eliminiert werden, indem der ChromeDriver-Releaseprozess in die Chrome for Testing-Infrastruktur integriert wird. Dies löst nicht nur dieses Problem für die Nutzer, sondern stimmt auch die ChromeDriver-Versionen mit den Chrome-Versionen ab und entfällt den manuellen ChromeDriver-Veröffentlichungsprozess.
Wie erhalte ich Chrome for Testing-Binärdateien?
Am einfachsten können Sie Chrome for Testing-Binärdateien für Ihre Plattform mit unserem @puppeteer/browsers
-Befehlszeilentool herunterladen, das über npm
erhältlich ist. Beispiele:
# 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
Wenn Sie lieber eigene automatisierte Skripts zum Herunterladen dieser Binärdateien erstellen möchten, helfen wir Ihnen gerne weiter. Wir bieten JSON API-Endpunkte mit den jeweils neuesten verfügbaren Versionen pro Chrome-Release-Version (stabil, Beta, Entwickler, Canary). Einen schnellen Überblick über den aktuellen Status finden Sie im Dashboard für die Verfügbarkeit von Chrome for Testing.