Blog

Holen Sie sich Ihre Webtests in FitNesse mit Xebium

Arjan Molenaar

Arjan Molenaar

Aktualisiert Oktober 22, 2025
3 Minuten

In der ersten Folge auf Xebium erklärte Cirilo die Ideen hinter dieser FitNesse-Leuchte:

Xebium bietet eine einfache Möglichkeit, Selenium IDE (geringe Lernkurve) und FitNesse (Wartungsfreundlichkeit) optimal zu nutzen, wenn es um die Pflege von Testsuiten für Webanwendungen geht.

Xebium verwendet die gleichen Schlüsselwörter wie Selenium IDE. Das hat den großen Vorteil, dass niemand eine andere DSL lernen muss. Da die Tests auf diese Weise angegeben werden, können sie ohne Probleme zwischen Selenium IDE und FitNesse kopiert werden (der FitNesse-Formatierer für Selenium IDE ist ziemlich trivial). Und um ehrlich zu sein: Solange XPath und reguläre Ausdrücke im Code vorhanden sind, macht es keinen Sinn, einen Ersatz für verifyText zu entwickeln.

Kopieren Sie die Testausgabe direkt in SeIDE

Jetzt ist es also möglich, unseren Selenium IDE-Testfall in eine FitNesse-Seite zu verschieben. Sehr schön. Es ist einfacher, Tests einzurichten, da FitNesse in dieser Hinsicht recht flexibel ist. Andererseits ist das Abspielen von aufgezeichneten Tests nicht gerade die flexibelste Art zu arbeiten. Das kann einen enormen Wartungsaufwand mit sich bringen. Es wäre schade, wenn Sie in diesem Fall nicht die volle Leistungsfähigkeit von FitNesse nutzen würden. Szenario-Tabellen können beispielsweise eine schöne Abstraktion darstellen, bei der einige gemeinsame Aktionen, wie die Anmeldung, nur an einer Stelle definiert (und gepflegt) werden müssen. Indem wir den Anmeldecode aus dem Test in ein Szenario verschieben, fügen wir eine weitere Ebene der Indirektion hinzu. Die Tests selbst werden lesbarer, da sie nur die Geschäftsanforderung angeben und die Details auf niedriger Ebene direkt vom Tester bearbeitet werden können. Dies ist viel flexibler als die Erstellung von Selenium Fixtures für jedes Szenario.

| Benutzer anmelden |  Benutzer  | mit Passwort |  Passwort  |
| öffnen | https://example.com/login |
| type | name-field |  @Benutzer  |
| Typ | Passwort-Feld |  @Passwort  |
| Klicken | Anmelden |

und erwähnen Sie in Ihren Tests, anstatt das oben Gesagte zu wiederholen, nur:

| Skript |
| Benutzer anmelden |  john  | mit Passwort |  Geheimnis  |
| ensure | do | verifyText | on | #userid | with | John |

Sicher, wir sind wieder dabei, unsere eigene DSL zu erstellen, aber wir tun es zu 100% in FitNesse. Selenium-Befehle können bei Bedarf hinzugefügt werden (z.B. Assertions). Kein Java-(Fixture-)Code, keine Entwickler, die eine Zeile ändern müssen, weil sich die Vorlagen geändert haben, und vor allem ein detailliertes Feedback. Aber FitNesse kann noch mehr helfen. Denken Sie an datengesteuerte Tests. Selenium hat (standardmäßig) keine Option dafür. Mit der gleichen Szenario-Tabellenvorrichtung ist es einfach, Logins für eine Reihe von Benutzern zu testen. Aber wir haben behauptet, dass Sie auch Dinge aus FitNesse in die Selenium IDE kopieren können, und das wird immer schwieriger, wenn Sie alles inro Szenarien verschieben. Um dieses Problem zu überwinden, kann der Formatierer in Selenium IDE auch tabulatorgetrennte Daten parsen. Nachdem ein Test gelaufen ist, kann die von FitNesse gelieferte Ausgabe also zurückkopiert werden. Dies ist eine nützliche Hilfe bei der Analyse fehlgeschlagener Tests.

Kopieren Sie Tests von SeIDE nach FitNesse

Ich neige dazu, meine Xebium-Befehle einfach verfügbar zu machen. Als erstes muss das Gerät importiert werden. Danach kann das Gerät als Bibliothek zugewiesen werden:

| Import |
| com.xebia.incubator.xebium |
| Bibliothek |
| selenium treiber fixture |

Ein Hinweis für Windows-Benutzer. Wenn Sie viele Tests durchführen, neigt Windows dazu, keine Sockets mehr zu haben. Es gibt eine Möglichkeit, Ihren Rechner so zu konfigurieren, dass er diese dummen Beschränkungen umgeht (auf eigene Gefahr!).

Verfasst von

Arjan Molenaar

Contact

Let’s discuss how we can support your journey.