Überblick zum begehrten Testautomatisierungs Tool Playwright - Open Source End-To-End TestsLesedauer: 4 Minuten
Im Bereich der Open-Source End-To-End Test-Frameworks gesellt sich seit Kurzem ein neuer Player hinzu, nämlich Playwright. Wer mit Playwright 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.
Inhaltsverzeichnis:
- Warum Testautomatisierung?
- Die wichtigen Aspekte der Testautomatisierung
- Geschichte von Playwright und Selenium
- Vor- und Nachteile von Playwright zu Selenium
- CI-CD
- Trace Viewer
- Fazit
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.
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.
Geschichte von Playwright und SeleniumSelenium
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.
Download-Zahlen Trend von Selenium und Playwright (JavaScript-Version) Bild: Die wöchentlichen Downloads von Selenium und Playwright - Stand: 29.11.2023 [Quelle: GitHub] × Vor- und Nachteile von Playwright zu SeleniumPlaywright
- 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:
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:
Bild: Der Trace Viewer von Playwright [Quelle: Playwright] × Fazit
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 Playwright 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.
Link-Verzeichnis
20. Dezember 202320. Dezember 2023Finden Sie weitere interessante Artikel zum Thema:
Artikel weiterempfehlen: