Überblick zum begehrten Testautomatisierungs Tool Playwright - Open Source End-To-End Tests

🕒 Lesedauer: 4 Minuten

Im Bereich der Open-Source End-To-End Test-Frameworks gesellt sich seit Kurzem ein neuer Player hinzu, nämlich Playwright. Wer damit loslegen will, braucht lediglich das Node.js Paket zu installieren, das alle nötigen Erweiterungen beinhaltet. Es beinhaltet auch alle nötigen Browser-Treiber, sodass nicht wie in Selenium jeder einzelne Browser-Treiber von Hand installiert werden muss.

Da es sich bei Playwright um ein UI-basiertes Automatisierungstool für Webanwendungen handelt, lassen sich Aktionen wie beispielsweise das Anlicken von Schaltflächen oder Ausfüllen von Textfeldern ganz bequem automatisieren. Zu den unterstützten Programmiersprachen zählen Java, Python, .NET C#, TypeScript und JavaScript. Unter den Browsern werden Firefox, Chromium und Webkit unterstützt auf sowohl Windows, Linux und Mac OS.

Warum Testautomatisierung?

Testautomatisierung kann zur Simulierung des Benutzerverhaltens verwendet und eingesetzt werden. Dabei wird getestet, ob auch Applikationen das gewünschte Verhalten aufweisen. Testautomatisierung sorgt in allererster Linie für bessere Software-Qualität, da Tests wesentlich schneller und effizienter durchgeführt werden können. Fehler, die beim stetigen manuellen Testen durch den Faktor Mensch auftreten können, können dadurch enorm reduziert werden. Auch können Entwicklerkapazitäten für wichtigere Aufgaben eingesetzt werden statt sich auf das repetitive Testen zu konzentrieren.

Vereinbaren Sie einen kostenfreien 2-stündigen Workshop und wir prüfen mit Ihnen das Potenzial von Testautomatisierung in Ihrem Projekt. Jetzt anfragen.

Die wichtigen Aspekte der Testautomatisierung

  • Geschwindigkeit, Effizienz und Skalierbarkeit: Da in der Regel die Verarbeitungszeit vom Computer viel schneller als die vom Menschen ist, werden auch die Tests entsprechend innerhalb von Sekunden ausgeführt. Das spart zum einen Zeit und kann auch nach Belieben parallel skaliert werden.
  • Reduzieren von Fehlern: Da Menschen nicht stetig produktiv arbeiten können, können insbesondere beim manuellen Testen Fehler auftreten. Weil automatisierte Tests davon in der Regel nicht betroffen sind, lassen sich so viele Fehlerherde eindämmen, womit auch eine zusätzliche Konsistenz und Zuverlässigkeit einhergeht.
  • Schnelleres Auffinden von Bugs: Je früher mit der Testautomatisierung in einem Projekt begonnen wird, desto früher können unerwünschte Bugs gefunden und rechtzeitig behoben werden, was die Effizienz innerhalb des Teams steigert.
  • Schnellerer Entwicklungszyklus: Automatisierte Tests können personenunabhängig zu jeder Zeit wiederholt ausgeführt werden und somit den Entwicklungsprozess beschleunigen.
Image
Testautomatisierung mit Playwright

 

Geschichte von Playwright und Selenium

Selenium

Mit einem Alter von fast 20 Jahren ist Selenium im Gegensatz zu Playwright eindeutig das ältere Gegenstück. Dieses entwickelte Jason Huggins im Jahre 2004 im Rahmen eines internen Projekts in seiner Firma ThoughtWorks, das als primäres Ziel das Testen von Webseiten verfolgte. Im Laufe der Zeit schlossen sich immer mehr Mitarbeiter dem Projekt an, inklusive Paul Hammant, der auch als Initiator die Entwicklung von Selenium Remote Control vorantrieb.

Im Jahre 2007 wechselte Huggins dann zu Google und führte dort weitere Verbesserungen an Selenium fort, während zur selben Zeit Simon Stewart parallel in ThoughtWorks die Browsersteuerung Webdriver entwickelte. Beide erkannten aber schnell, dass zwei getrennte Projekte am selben Entwicklungsobjekt wenig Sinn machen würden, weshalb beide dann zum Selenium Webdriver – auch Selenium 2.0 genannt – vereint wurden. Der Sprung auf Selenium 3.0 erfolgte dann am 13. Oktober 2016, das bis heute verwendet wird.

Playwright

Wesentlich kürzer auf dem Markt ist Playwright, das am 31. Januar 2020 von Microsoft veröffentlicht wurde. Die Köpfe, die hinter dessen Entwicklung steckten, waren auch diejenigen, die an der Entwicklung von Googles Puppeteer mitwirkten. Wie auch Selenium verfolgt Playwright das Testen von Webseiten. Trotz seines jungen Alters erfreut sich das Testing-Tool stetiger Beliebtheit, was sich auch aus den Zahlen sowie aus dem darauffolgenden Diagramm ersehen lässt. Zu erwähnen wäre, dass es sich hier um die JavaScript-Versionen handelt.

 

[Webinar] Hohe Softwarequalität sicherstellen mit Playwright Reporting in CI/CD Pipelines

 

Download-Zahlen Trend von Selenium und Playwright (JavaScript-Version)

 

Image
Selenium und Playwright - Download

Bild: Die wöchentlichen Downloads von Selenium und Playwright - Stand: 29.11.2023 [Quelle: GitHub]

 

Vor- und Nachteile von Playwright zu Selenium

Playwright

  • Auto-Waits: Wartet automatisch, bis auch die Elemente verfügbar und für Interaktionen bereit sind
  • Vorhandensein eines Trace Viewers, der es erlaubt, verfolgen zu können, wo Playwright beim Test exakt ausgestiegen ist und welche Aktionen ausgeführt wurden. Zudem gibt es die Möglichkeit einer Videoaufnahme, sodass auch die durchgeführten Tests von überall her erneut abgespielt werden können
  • API-Anbindung: Playwright kann auch auf API-Schnittstellen zugreifen, was zu sehr viel schnelleren und stabileren Tests führt. Zudem können Requests abgefangen und nach Belieben manipuliert werden, um schwer zu erreichende Zustände im Frontend zuverlässig zu erzeugen.
  • Mit etwas Aufwand ist die Anbindung an Test-Management Tools möglich
  • Da Playwright noch relativ neu auf dem Markt ist, hat es entspechend eine kleinere Community als Selenium
     

Selenium

  • Keine Auto-Waits: Es muss manuell angegeben werden, wo man warten will, bis die Elemente verfügbar sind, was aufwändiger zu implementieren ist
  • Kein Trace Viewer und keine Videoaufnahme vorhanden
  • Keine API-Anbindung vorhanden
  • Mit etwas Aufwand ist die Anbindung an Test-Management Tools möglich
  • Da Selenium wesentlich länger im Geschäft ist, ist es auch entsprechend weiter verbreitet

 

 

CI-CD

Aufgrund der umfassenden Dokumentation von Playwright ist eine bequeme Integration dessen in Azure DevOps und Jenkins möglich, um effektiv seine Tests durch die vorhergesehenen Pipelines laufen zu lassen. Falls ein Test in der Pipeline fehlschlagen sollte, wird auch innerhalb dessen angezeigt, warum dieser fehlgeschlagen ist:

 Running 124 tests using 6 workers
 [24/124] [regression] › name-overview/name-list/names/testcase.spec.ts:12:34 › 123456 Verify name › Max Mustermann
 3) [regression] › name-overview/name-list/names/testcase.spec.ts:12:3 › 123456 Detect invalid names › Tim Mustermann 
 
 Error: expect(received).toBe(expected) // Object.is equality
 
 Expected: "the name does not exist"
 Received: null
 
 20 | await addName.clickNext(true);
 21 | const nameError = await addName.getNameError();
 > 22 | expect(nameError).toBe(nameError.Undefined);
 | ^
 23 | });
 

Wer hingegen einen weiteren Performance-Boost benötigt, für den bietet Playwright den kostenpflichtigen Microsoft Playwright Testing Service an, der es erlaubt, via Cloud die Parallelinstanzen auf das Mehrfache zu skalieren, womit der Durchlauf von Tests in der Pipeline um das Vielfache beschleunigt werden kann. Das nächste Bild zeigt einen Testdurchlauf von Playwright mit rund 3000 Tests verteilt auf 50 Parallelinstanzen, die innerhalb von nur 32 Sekunden abgearbeitet werden:


 

 

Image
Demo Testdurchlauf von Playwright

Bild: Demo Testdurchlauf von Playwright mit rund 3000 Tests und 50 Instanzen [Quelle: Playwright]

 

Trace Viewer

Wie schon vorher erwähnt, ist einer der größten Vorzüge von Playwright der Trace Viewer, der das Auffinden von Problemen ungemein erleichtert. Das folgende Bild gibt einen kurzen Einblick dazu:


 

Image
Der Trace Viewer von Playwright

Bild: Der Trace Viewer von Playwright [Quelle: Playwright]

 

[Webinar] Playwright Testautomatisierung - Tipps, Best Practices

Fazit zur Testautomatisierung mit Playwright

Als Newcomer im Bereich der Testautomatisierung bietet Playwright eine Bandbreite von Features, die Selenium leider missen lässt. Darunter sind insbesondere der Trace Viewer, die API-Anbindung sowie die Auto-Waits, die zum einen ein einfacheres Debugging ermöglichen, zum anderen für stabilere und performantere Tests sorgen.

Auch wenn Selenium auf dem Markt noch weit verbreitet ist, zeigen die wöchentlichen Downloads, dass sich langsam ein Abwärtstrend erkennen lässt, wohingegen Playwright immer mehr an Bedeutung gewinnt. Das hat auch unter anderem damit zu tun, dass es die Defizite von Selenium erkannt und entsprechend optimiert bzw. ausgebaut hat. Für zukunftsorientiertes Automatisieren ist daher Playwright zu empfehlen. Wer hingegen auf ein aktuell weit verbreitetes Testing-Tool mit etablierter Community setzt, der sollte einen Blick auf Selenium werfen.

Playwright - FAQ
 

Was ist Playwright und wie unterscheidet es sich von Selenium und Cypress?

Playwright ist ein modernes Framework zur Testautomatisierung von Webanwendungen, das von Microsoft entwickelt wurde. Es ermöglicht die Erstellung von End-To-End-Tests mit einer einheitlichen API. Im Vergleich zu Selenium ist Playwright oft schneller und bietet eine einfachere Handhabung von modernen Webtechnologien. Cypress hingegen ist speziell für das Testen in einem Browser gedacht und hat eine andere Architektur, die nicht die gleiche Flexibilität wie Playwright bietet.
 

Wie können automatisierte Tests mit Playwright in einem Projekt implementiert werden?

Um Testfälle mit Playwright zu implementieren, muss zunächst die Playwright-Bibliothek in das Projekt eingefügt werden. Dies kann durch die Installation über npm oder pip erfolgen, je nachdem, ob JavaScript oder Python verwendet wird. Nach der Installation können Testskripte geschrieben werden, die die Features von Playwright verwenden. Die Verwendung des Page Object Models kann dabei helfen, die Struktur und Wartbarkeit der Tests zu verbessern.
 

Welche Browser unterstützt Playwright?

Playwright unterstützt mehrere Browser: Chromium, Firefox und WebKit. Dies bedeutet, dass Tests auf den gängigsten Browsern durchgeführt werden können, einschließlich Google Chrome und Microsoft Edge. Die Unterstützung für verschiedene Browser ermöglicht es, Entwicklern sicherzustellen, dass ihre Webanwendungen plattformübergreifend konsistent funktionieren.
 

Link-Verzeichnis

 

Image
testautomatisierung-qualitaetssicherung-workshop.png

 

Veröffentlicht am 05.Dezember 2024

Aktualisiert am 09.Januar 2025

Valerius Schmidt

Junior Testautomation Engineer, Test Analyst

Ursprünglich als Sprachwissenschaftler für die antike sowie mittel und neuzeitliche Welt, war ich während und nach meiner aufbauenden Ausbildung zum Fachinformatiker für Anwendungsentwicklung in diversen Projekten in den Unternehmen wie der Trout GmbH und der fino digital GmbH involviert. Themenschwerpunkte waren dort zum einen die Softwareentwicklung, die Datenqualität sowie das Testen von Software und der Automatisierung. Seit August 2023 bin ich als Junior Testautomation Engineer und Test Analyst bei der Qytera GmbH tätig, wo mein Fokus aktuell auf dem Testen mit dem Automatisierungswerkzeug Playwright liegt.

Finden Sie weitere interessante Artikel zum Thema: