owned this note
owned this note
Published
Linked with GitHub
Playwright ist ein Open-Source-Test-Framework, das von Microsoft entwickelt wurde. Es ist hauptsächlich für die Automatisierung von End-to-End-Tests von Webanwendungen in verschiedenen Browsern konzipiert. Einige Eckpunkte zum Framework sind:
1. Browserkompatibilität:
Playwright unterstützt mehrere Browser, darunter Chromium, Firefox und WebKit, was es vielseitig für Cross-Browser-Tests macht.
2. Unterstützte Programmiersprachen:
Playwright bietet Bindings für verschiedene Programmiersprachen wie JavaScript, TypeScript, Python und C#
3. Cross-Platform-Kompatibilität:
Playwright unterstützt verschiedene Plattformen, einschließlich Windows, macOS und Linux, was Cross-Platform-Tests ermöglicht.
4. Community und Dokumentation:
Playwright verfügt über eine wachsende und aktive Community und wird von Microsoft unterstützt, was langfristige Unterstützung und Entwicklung gewährleistet. Es bietet auch eine ausführliche Dokumentation und eine Vielzahl von Ressourcen. Allerdings ist das Framework im Vergleich zu einigen anderen Testwerkzeugen relativ neu, sodass die Community und die Ressourcen möglicherweise nicht so umfangreich sind.
5. Headless- und Headful-Modi:
Playwright ermöglicht Tests sowohl im Headless- als auch im Headful-Modus und bietet die Möglichkeit, Tests still oder mit einer sichtbaren Browser-Benutzeroberfläche auszuführen.
6. Geräteemulation:
Playwright unterstützt auch die Emulation von mobilen Geräten, sodass auch die Unterstützung von mobilen Browsern getestet werden kann.
7. Testberichterstellung und Debugging:
Playwright bietet eine integrierte Unterstützung für Testberichte, Screenshots und Videos, was die Fehlersuche und die Analyse von Testergebnissen erleichtert.
8. Integration mit CI/CD:
Playwright kann in gängige CI/CD-Plattformen integriert werden.
### Nützliche Features
1. Point and Pick
Playwright bietet die Möglichkeit aus Nutzerinteraktionen Code zu generieren. Obwohl die generierten Selektoren sehr allgemein sind, erleichtert und beschleunigt dies das Schreiben der Tests deutlich und bietet daher einen guten Anfangspunkt.
2. Auto-Wait
Playwright wartet automatisch bis ein gesuchtes Element verfügbar ist. Ist ein Element allerdings schon vorhanden, muss manuel gewartet werden, bis man das veränderte Objekt auswählen kann und nicht noch den vorherigen State erhält.
4. Manipulation von Requests und Routes
Da das Framework es erlaubt Requests zu verändern und zu blockieren können auch Features getestet werden ohne das dadurch beispielsweise veränderungen an den Daten im Backend vorgenommen werden, da diese Requests beispielsweise vorzeitig abgebrochen werden.
3. Har-Dateien als Testdaten
Requestresponses können aus Har-Dateien gelesen werden, wodurch kann das Backend gemockt werden können, und die Tests sind nicht vom momentanen Zustand der Testdaten abhängig
4. VSCode Extension
Zu Playwright gibt es eine sehr nützliche VSCode Extension (https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright). Die einem das Ausführen einzelner Tests, interactives Debugging und einige weitere nützliche Features bietet, die den Umgang nochmal deutlich intuitiver gestalten als die ebenfalls durchaus gelungene UI.
### Die kleinen Lästigkeiten
1. Selektor Generator
Da die automatisch Generierten Selectoren oft sehr allgemein sind, muss meistens nochmal von Hand nachgearbeitet werden, um die Tests robuster gegen zukünftige Veränderungen zu machen. Der generierte Code bietet allerdings dennoch eine sehr gute Grundlage.
2. Syntax um auf Elemente zu warten
Teilweise muss auf den gleichen Syntax wie für Assertions zurückgegriffen werden, um beispielsweise auf das Ende von Animationen zu warten.
### Überlegungswürdige Dinge
1. Projektübergreifend Einheitlichen Pfad für die Directory mit den Tests
### Gesamtberwertung
Das Playwright-Test-Framework biete vielseitige Lösung für die Automatisierung von End-to-End-Tests. Mit seiner Cross-Browser-Unterstützung, den umfangreichen Features und der schnellen Eingewöhnung stellt Playwright sicher eine attraktive Wahl dar.