In diesem Beitrag zeige ich, wie man mit Cucumber/Gherkin und WebdriverIO automatisierte Tests schreibt. Als Beispiel habe ich die Website wetter.com genommen und dort eine kleine Wettersuche automatisiert. Das Projekt zeigt dir, wie man Szenarien in Gherkin beschreibt und diese mit Step Definitions in WebdriverIO umsetzt. Cucumber ist ein Test-Framework, das die Sprache Gherkin nutzt. Der Vorteil: Mit Gherkin beschreibt man Tests in natürlicher Sprache – z. B. „Given … When … Then …“. Du kannst Dir einen ausführlichen Beitrag zu Gherkin hier durchlesen. Ein typisches Projekt mit Cucumber und WebdriverIO ist so aufgebaut: Die Feature-Datei beschreibt die Testfälle in Gherkin. Hier ein Beispiel: Hier sieht man nun zwei Dinge: Die Step Definitions verbinden die Gherkin-Sätze mit echtem JavaScript-Code. Hier passiert Folgendes: Besonders interessant ist der Then-Schritt, da hier die eigentliche Überprüfung (Assertion) passiert. Ein Beispiel für die Überprüfung einer gültigen Suche: Hier passiert folgendes: Das Testskript wartet auf die Überschrift ( Der Text wird bereinigt (z. B. „Das Wetter heute in …“ entfernt). Mit Für eine ungültige Eingabe sieht der Then-Schritt so aus: Hier prüft der Test, ob die Seite die passende Fehlermeldung anzeigt, wenn der Benutzer einen nicht existierenden Ort eingibt. Um die Tests zu starten, reicht im Terminal: Die Tests öffnen den Browser, geben die Orte ein und prüfen die Ergebnisse. Wie wir sehen können, sind die Tests mit insgesamt 24 Schritten nach ca. 1.30 Minuten erfolgreich durchgelaufen. Mit Cucumber und WebdriverIO lassen sich Tests in verständlicher Sprache beschreiben und trotzdem technisch präzise umsetzen. Das Beispiel kann als Basis dienen, um eigene Tests zu entwickeln – egal ob für E-Commerce, Login-Prozesse oder Formularprüfungen. Warum Cucumber und Gherkin?
Projektstruktur
features/wettercheck.feature → enthält die Test-Szenarien in Gherkinfeatures/step-definitions/wettercheck.steps.js → enthält die technische Umsetzung
Feature-Datei: Wetter-Suche

Step Definitions: Technische Umsetzung

h1) mit dem aktuellen Wetter.expect(...).toBe(ort) wird überprüft, ob die Überschrift wirklich den gesuchten Ort enthält.Tests ausführen
npx wdio run wdio.conf.js
Fazit
Dieses kleine Projekt mit der Wettersuche zeigt:
Weiterführende Links