Einmal im Monat findet bei codecentric für alle Mitarbeiter ein Freitagsmeeting statt. Getreu nach dem Motto „Von Kollegen für Kollegen“ präsentieren wir uns gegenseitig interessante Themen aus unseren jeweiligen Fachgebieten und stellen neue Technologien vor. Ein Themenblock in unserem nächsten Meeting wird eine „Agile Testing Session“ sein. Für die Vorbereitung meines Beitrags habe ich mich nach einiger Zeit wieder einmal mit Selenium beschäftigt und bin dabei auf ein kleines nützliches Framework namens „Simplium – simple test framework for Selenium” gestoßen, welches ich im Folgenden kurz vorstellen möchte.
Wer bereits mit Selenium gearbeitet hat, kennt sicherlich seine Vorzüge. Man kann Testfälle mit den Firefox-Plugin Selenium IDE aufzeichnen und direkt in einen JUnit-Testcase exportieren. Über Selenium Remote Control kann man diese JUnit-Testcases dann z.B. aus der IDE oder aus einem Continous-Integration-Prozess ausführen.
Leider sind die Syntax der mitgelieferten Basisklasse für Testfälle sowie der Output aus Selenium IDE eher im JUnit 3-Format. Möchte man also JUnit 4 mit Annotations nutzen, muss der Entwickler selbst Hand anlegen. Zusätzlich möchte man vielleicht seine Testfälle gegen mehrere Testumgebungen oder unterschiedliche Browser laufen lassen, ohne alle Testfälle anpassen zu müssen. Aus diesen Gründen beginnen wahrscheinlich viele Entwickler zunächst mit der Erstellung eigener Basisklassen für ihre Selenium-Tests.
Die meisten der beschriebenen Probleme werden jedoch von dem schlanken Framework Simplium gelöst. Simplium bietet folgende Features
- Konfiguration verschiedener Umgebungen: Selenium-Server-URL und Port sowie URL der zu testenden Anwendung lassen sich zu symbolischen Namen (development, test, production) definieren. Die gewünschte Umgebung wird beim Ausführen der Tests über eine System-Property ausgewählt.
- Konfiguration der verwendeten Browser: Je nach gewählter Umgebung können die verwendeten Browser konfiguriert werden, z.B. nur Firefox bei development, Firefox und IE in der Test-Umgebung
- JUnit 4 Unterstützung mit Annotations: Durch einen eigenen JUnit 4 TestRunner können Annotations genutzt werden. Gleichzeitig wird über den Testrunner auch die sehr nützliche Funktionalität der Screenshot-Erstellung bei Testfehlern für JUnit 4 bereitgestellt.
- Hilfreiche zusätzliche Annotations: Über die @Delay-Annotation lässt sich z.B. eine Verzögerung zwischen jedem Selenium-Command konfigurieren. Dies kann beim Debuggen sehr nützlich sein. Über @RunOnlyIn* kann man einige Testfälle auf bestimmte Umgebungen einschränken. Über @Timeout lässt sich generell der Timeout für Open- und WaitFor-Commands festlegen.
- Startet man Selenium-Testfälle aus der IDE muss vorher ein Selenium-Server gestartet werden. Dies wird auch von Simplium übernommen.
Alles in Allem ist Simplium für mich ein sehr nützliches, kleines Addon für Selenium. Vielleicht übernimmt OpenQA ja einige Ansätze in die anstehende Version 2.0 von Selenium.
Weitere Beiträge
von Daniel Reuter
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Daniel Reuter
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.