Automatisierung und Tests mit Chrome

Automatisierte Browsertests sind unerlässlich für die Entwicklung robuster, hochwertiger Webanwendungen. Ob Sie End-to-End-Testsuiten für die kontinuierliche Integration (Continuous Integration, CI) ausführen, Regressionstests für verschiedene Browserversionen durchführen oder Browserinteraktionen automatisieren – Chrome bietet eine spezielle Suite von Tools und Ausführungsmodi, die für Entwickler und Testautomatisierungsingenieure entwickelt wurden.

In dieser Übersicht werden die wichtigsten Produkte im Automatisierungs- und Testökosystem von Chrome vorgestellt: Chrome for Testing, ChromeDriver, Puppeteer und der monitorlose Modus von Chrome. Außerdem wird erläutert, wie Sie diese Produkte zusammen für zuverlässige, reproduzierbare Testworkflows verwenden können.


Chrome for Testing

Chrome for Testing ist eine spezielle Chrome-Variante für Web-App-Tests und Automatisierungsanwendungsfälle.

Wenn Sie End-to-End-Testsuiten oder CI-Pipelines (Continuous Integration) ausführen, benötigen Sie oft konsistente, reproduzierbare Ergebnisse bei wiederholten Testläufen. Anstatt sich auf Standardbrowserinstallationen zu verlassen, können Sie mit Chrome for Testing bestimmte Chrome-Versionen für Ihre Testumgebungen herunterladen und festlegen.

Wichtige Funktionen

  • Versionierte Downloads auf Anfrage:Greifen Sie auf bestimmte, versionierte Chrome-Binärdateien zu, damit Sie immer mit der von Ihnen ausgewählten Version testen.
  • Abgestimmte Binärdateien für alle Versionen:Für jede Chrome-Version in allen Versionen (Stabil, Beta, Entwickler und Canary) bietet Chrome for Testing passende Chrome-Binärdateien, die mit den entsprechenden ChromeDriver-Binärdateien kombiniert sind, sowie die alte Chrome-Headless-Shell (chrome-headless-shell) für Nutzer, die sie noch in automatisierten Tests verwenden.
  • Einfache Downloadautomatisierung:Binärdateien können einfach mit dem Befehlszeilenprogramm @puppeteer/browsers heruntergeladen oder über das Dashboard zur Verfügbarkeit abgefragt werden.

Weitere Informationen


ChromeDriver

ChromeDriver ist ein eigenständiger Open-Source-Server, der den W3C WebDriver-Standard und das bidirektionale WebDriver BiDi-Protokoll implementiert. Er fungiert als Brücke zwischen WebDriver-basierten Testframeworks (z. B. Selenium, WebDriverIO und Nightwatch) und dem Chrome-Browser.

Wichtige Funktionen

  • Unterstützung für W3C WebDriver und WebDriver BiDi:Unterstützt sowohl klassische WebDriver-Automatisierungsbefehle als auch die bidirektionale Echtzeitkommunikation über WebDriver BiDi für schnelles Event-Listening, Netzwerküberwachung und Protokollabfang.
  • Gemeinsame Veröffentlichung mit Chrome for Testing:ChromeDriver-Releases sind direkt in die Chrome for Testing-Infrastruktur integriert. Für jede Chrome for Testing-Version wird gleichzeitig eine passende ChromeDriver-Version veröffentlicht, sodass Probleme durch Versionsunterschiede vermieden werden.

Weitere Informationen


Puppeteer

Puppeteer ist eine von Google entwickelte JavaScript-Bibliothek, die eine API auf übergeordneter Ebene zur Steuerung von Chrome über das Chrome DevTools-Protokoll (CDP) oder WebDriver BiDi bietet.

Wichtige Funktionen

  • Automatisierung ohne Einrichtung:Puppeteer lädt standardmäßig automatisch eine kompatible Chrome for Testing-Binärdatei herunter, sodass Sie den Browser sofort automatisieren können.
  • Vollständige Kontrolle über Chrome:Sie können ganz einfach Screenshots aufnehmen, PDFs generieren, Formulare automatisch senden, Netzwerkanfragen abfangen und UI-Tests im Headful- oder Headless-Modus ausführen.

Weitere Informationen


Monitorloser Modus von Chrome

Im monitorlosen Modus von Chrome können Sie Chrome in einer unbeaufsichtigten Umgebung ohne sichtbare Benutzeroberfläche ausführen. Wenn Sie das Flag --headless in der Befehlszeile übergeben, wird Chrome sauber in Serverumgebungen, Containern und CI/CD-Pipelines ausgeführt.

Wichtige Funktionen

  • Einheitliche Browser-Engine:Der moderne monitorlose Modus (--headless) verwendet dieselbe Browserimplementierung wie Chrome mit Benutzeroberfläche.
  • Umfassende Automatisierungs- und Debuggingfunktionen:Unterstützt die Aufnahme von Screenshots, die PDF-Generierung, das Remote-Debugging und die Konfiguration virtueller Bildschirme.

Weitere Informationen


Beispiel: Kombinierte Verwendung dieser Produkte

In einem typischen automatisierten Test- oder CI-Workflow (Continuous Integration) arbeiten diese Produkte zusammen, um eine reproduzierbare, unbeaufsichtigte Testumgebung zu bieten:

  1. Browser-Binärdatei (Chrome for Testing) : Verwenden Sie eine bestimmte, versionierte Chrome for Testing -Binärdatei, damit Ihre Testergebnisse bei allen Ausführungen deterministisch sind.
  2. Ausführungsmodus (monitorloser Modus von Chrome) : Führen Sie diese Binärdatei im monitorlosen Modus (--headless) aus, damit Tests sauber auf Servern, in Containern oder in CI-Pipelines ohne grafische Anzeige ausgeführt werden.
  3. Automatisierungstreiber (Puppeteer oder ChromeDriver) : Steuern Sie den Browser mit einer Automatisierungsbibliothek wie Puppeteer oder einem anderen Testframework, das über WebDriver BiDi verbunden ist.

Puppeteer verbindet diese Komponenten automatisch. Nach der Installation wird standardmäßig eine kompatible Chrome for Testing -Binärdatei heruntergeladen und im monitorlosen Modus gestartet.

Wenn Sie W3C WebDriver-Frameworks (z. B. Selenium oder WebdriverIO) verwenden, können Sie automatisch ein passendes Paar von Chrome for Testing - und ChromeDriver -Binärdateien herunterladen und das Flag --headless übergeben, um ohne Benutzeroberfläche auszuführen.


Anleitung für Unternehmen und Releasekanäle