Chrome for Testing

Chrome for Testing ist eine Chrome-Variante, die speziell auf Anwendungsfälle für Web-App-Tests und -Automatisierung ausgerichtet ist. In diesem Dokument wird erläutert, warum das Chrome-Team diese Variante für erforderlich hielt, und es werden konkrete Beispiele dafür genannt, wie Chrome for Testing Ihnen als Entwickler zugutekommen kann.

Hintergrund

Browser-Tests sind ein wichtiger Bestandteil der Entwicklung hochwertiger Webanwendungen, unabhängig davon, ob sie manuell oder automatisch durchgeführt werden. Gleichzeitig ist die Einrichtung einer geeigneten Browser-Testumgebung bekanntermaßen schwierig und wird daher immer wieder als eines der größten Probleme für Webentwickler genannt.

Automatische Updates: gut für Nutzer, schlecht für Entwickler

Eine der bemerkenswertesten Funktionen von Chrome ist die Möglichkeit, automatische Updates durchzuführen. Nutzer freuen sich, dass sie immer eine aktuelle und sichere Browserversion mit modernen Webplattformfunktionen, Browserfunktionen und Fehlerkorrekturen verwenden.

Als Entwickler , der eine Reihe von End-to-End-Tests durchführt, haben Sie jedoch möglicherweise eine ganz andere Perspektive:

  • Sie möchten konsistente, reproduzierbare Ergebnisse bei wiederholten Testläufen. Das ist jedoch möglicherweise nicht der Fall, wenn die ausführbare Datei oder das Binärprogramm des Browsers zwischen zwei Läufen aktualisiert wird.
  • Sie möchten eine bestimmte Browserversion festlegen und die Versionsnummer in Ihr Quellcode-Repository einchecken, damit Sie alte Commits und Branches auschecken und die Tests mit dem Browser-Binärprogramm von diesem Zeitpunkt an noch einmal ausführen können.

All das ist mit einem automatisch aktualisierten Browser-Binärprogramm nicht möglich. Daher sollten Sie Ihre reguläre Chrome-Installation möglicherweise nicht für automatisierte Tests verwenden. Das ist der grundlegende Unterschied zwischen dem, was für normale Browsernutzer gut ist, und dem, was für Entwickler gut ist, die automatisierte Tests durchführen.

Versionierte Browser-Binärprogramme

Abgesehen von automatischen Updates haben Sie möglicherweise auch Schwierigkeiten, ein Chrome-Binärprogramm mit einer bestimmten Version zu finden. Google stellt absichtlich keine versionierten Chrome-Downloads zur Verfügung, da sich Nutzer nicht um Versionsnummern kümmern müssen. Sie sollten immer so schnell wie möglich auf die neueste Version aktualisiert werden. Das ist gut für Nutzer, aber schlecht für Entwickler, 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 irgendwie 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, laden viele Entwickler stattdessen Chromium-Binärprogramme (nicht Chrome) herunter. Dieser Ansatz hat jedoch einige Nachteile. Erstens sind diese Chromium-Binärprogramme nicht zuverlässig auf allen Plattformen verfügbar. Zweitens werden sie unabhängig vom Chrome-Releaseprozess erstellt und veröffentlicht, sodass ihre Versionen nicht den Chrome-Releases für Nutzer zugeordnet werden können. Drittens unterscheidet sich Chromium von Chrome.

Die Lösung: Chrome for Testing

Chrome for Testing wurde entwickelt, um diese Probleme zu lösen. Es ist eine spezielle Chrome-Variante für den Testanwendungsfall, ohne automatische Updates, in den Chrome-Releaseprozess integriert und für jedes Chrome-Release verfügbar. Ein versioniertes Binärprogramm, das so nah wie möglich an Chrome ist, ohne den Testanwendungsfall negativ zu beeinflussen.

Das Chrome for Testing-Logo, das das normale Chrome-Logo mit dem Wort „Test“ in einem schwarzen Rechteck ist.

Um Chrome for Testing zu erstellen, haben wir Änderungen an den Chromium- und Chrome-Codebasen vorgenommen und eine Infrastruktur eingerichtet, um diese Binärprogramme parallel zum Chrome-Releaseprozess in allen Channels (Stabil, Beta, Entwickler und Canary) zu erstellen und in einen öffentlich verfügbaren Bucket hochzuladen.

Die Infrastruktur rund um Chrome for Testing bietet interessante Möglichkeiten, die über Chrome hinausgehen. So können beispielsweise die zuvor erwähnten Schwierigkeiten beim Finden eines passenden Chrome- und ChromeDriver-Binärprogramms vollständig beseitigt werden, indem der ChromeDriver-Releaseprozess in die Chrome for Testing-Infrastruktur integriert wird. Dadurch wird nicht nur dieses Problem für Nutzer gelöst, sondern auch die ChromeDriver-Releases an Chrome angepasst und der manuelle ChromeDriver-Releaseprozess überflüssig.