Chrome for Testing: zuverlässige Downloads für die Browserautomatisierung

Wir freuen uns, heute Chrome for Testing vorzustellen, eine neue Chrome-Variante, die speziell auf Anwendungsfälle für das Testen von Webanwendungen und die Automatisierung ausgerichtet ist. In diesem Artikel wird erläutert, warum das Chrome-Team das für nötig hielt, und es werden konkrete Beispiele dafür aufgeführt, in welchen Fällen Chrome for Testing für Sie als Entwickler nützlich sein könnte.

Hintergrund

Browsertests sind eine wichtige Komponente zur Gewährleistung einer hohen Qualität im Web, unabhängig davon, ob sie manuell oder automatisch erfolgt. Gleichzeitig ist das Einrichten einer angemessenen Browsertestumgebung bekanntlich schwierig, sodass dies einheitlich als ein Hauptproblem gemeldet wird. Heute geben wir eine Änderung bekannt, die hoffentlich einige dieser Probleme lindern kann.

Automatische Updates: hervorragend für Nutzer, lästig für Entwickler

Eine der wichtigsten Funktionen von Chrome sind automatische Updates. Die Nutzer freuen sich, dass sie eine aktuelle und sichere Browserversion mit modernen Webplattform-Funktionen, Browserfunktionen und Fehlerkorrekturen verwenden.

Als Entwickler, der eine Reihe von End-to-End-Tests durchführt, könnten Sie jedoch eine ganz andere Perspektive betrachten:

  • Sie möchten bei wiederholten Testläufen konsistente und reproduzierbare Ergebnisse erhalten. Dies ist jedoch nicht möglich, wenn die ausführbare Datei oder das Binärprogramm des Browsers zwischen zwei Testläufen automatisch aktualisiert wird.
  • Sie möchten eine bestimmte Browserversion anpinnen und diese Versionsnummer in Ihrem Quellcode-Repository prüfen, damit Sie alte Commits und Zweige abrufen und die Tests von diesem Zeitpunkt an mit der Browser-Binärdatei noch einmal ausführen können.

Dies ist mit einem Browser-Binärprogramm nicht möglich, das automatisch aktualisiert wird. Daher sollten Sie Ihre reguläre Chrome-Installation nicht für automatische Tests verwenden. Dies ist die grundlegende Diskrepanz zwischen dem, was für normale Browsernutzer gut ist, und dem, was für die Entwickler automatisierter Tests nützlich ist.

Versionierte Browser-Binärdateien

Abgesehen von den automatischen Updates ist es Ihnen vielleicht auch schwer fiel, ein Chrome-Binärprogramm mit einer bestimmten Version zu finden. Google stellt absichtlich keine versionierten Chrome-Downloads zur Verfügung, da die Nutzer sich keine Gedanken über Versionsnummern machen müssen – sie sollten immer so schnell wie möglich auf die neueste Version aktualisiert werden. Das ist großartig für Nutzer, ist aber für Entwickler ärgerlich, die einen Fehlerbericht in einer älteren Chrome-Version reproduzieren müssen.

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 ein entsprechend versioniertes ChromeDriver-Binärprogramm, um sicherzustellen, dass die beiden Binärprogramme kompatibel sind.

Da es keine gute Möglichkeit gibt, diese Probleme zu lösen, wissen wir, dass viele Entwickler stattdessen Chromium-Binärprogramme (nicht Chrome) herunterladen, auch wenn dieser Ansatz einige Fehler aufweist. Erstens: Diese Chromium-Binärprogramme sind nicht zuverlässig auf allen Plattformen verfügbar. Zweitens werden sie unabhängig vom Chrome-Release-Prozess erstellt und veröffentlicht, sodass es unmöglich ist, ihre Versionen den echten, an die Nutzer gerichteten Chrome-Versionen zuzuordnen. Drittens unterscheidet sich Chromium 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 Chrome-Variante, die auf den Testanwendungsfall ausgerichtet ist – ohne automatische Updates. Sie ist in den Chrome-Release-Prozess eingebunden und für jede Chrome-Version verfügbar. Ein versioniertes Binärprogramm, das der regulären Chrome-Version möglichst nahe kommt, ohne den Testanwendungsfall negativ zu beeinträchtigen.

Für die Entwicklung von Chrome for Testing haben wir Änderungen an der Chromium- und Chrome-Codebasis vorgenommen und die Infrastruktur eingerichtet, mit der diese Binärprogramme erstellt und in einen öffentlich verfügbaren Bucket hochgeladen werden. Dabei muss der Veröffentlichungsprozess von Chrome auf allen Kanälen (stabile, Beta, Entwickler und Canary) übereinstimmen.

Die Infrastruktur rund um Chrome for Testing eröffnet Ihnen interessante Möglichkeiten, die über Chrome selbst hinausgehen. Die bereits erwähnten Schwierigkeiten bei der Suche nach einem passenden Binärprogramm für Chrome und ChromeDriver können beispielsweise vollständig beseitigt werden, wenn Sie den ChromeDriver-Veröffentlichungsprozess in die Chrome for Testing-Infrastruktur integrieren. Damit wird nicht nur dieses nutzerseitige Problem gelöst, sondern es wird auch die Version von ChromeDriver an die von Chrome angeglichen und der manuelle ChromeDriver-Veröffentlichungsprozess entfällt.

Wie erhalte ich Chrome for Testing-Binärprogramme?

Am einfachsten kannst du die Binärprogramme von Chrome for Testing für deine Plattform mit unserem @puppeteer/browsers-Befehlszeilendienstprogramm herunterladen, das über npm verfügbar ist. Hier einige 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 es vorziehen, Ihre eigenen automatisierten Skripts zum Herunterladen dieser Binärprogramme zu erstellen, haben wir die richtige Lösung für Sie. Wir bieten JSON API-Endpunkte mit den neuesten verfügbaren Versionen der einzelnen Chrome-Release-Versionen (stabile, Beta, Entwickler, Canary) an. Einen kurzen Überblick über den aktuellen Status erhalten Sie im Chrome for Testing-Verfügbarkeits-Dashboard.