maven für test

Maven und Jenkins mit Selenium

Selenium ist geeignet für den automatischen Test über den Browser, doch für den Build Prozess unterstützt Maven Selenium. Apache Maven unterstützt den kompletten Lebenszyklus eines Testprojekts zu verwalten.

Maven wird verwendet um eine Projektstruktur, dependencies, Build und Test Management zu definieren. Aus dem Grund wird sie als ein Software Projekt Management Werkzeug gesehen.

Mit Hilfe von der pom.xml (project object model) Datei können Ressourcen, die für den Code benötigt werden, konfiguriert werden. Maven lädt die im dependency erwähnten Plugins automatisch herunter. Maven verwaltet

  • Build Prozess
  • Dokumentation
  • Berichte
  • Dependencies
  • Release
  • Emaillisten

Drei Punkte beim Lebenszyklus von Maven lauten:

  • Clean: bereinigt existierende Artefakten
  • Default build: Erstellt die Anwendung
  • Site: Dokumentation wird ist erstellt

 

Bei Maven liegen folgenden Build-Phasen vor:

  • Validate
    Compile
    Test
    Package
    Install
    Deploy

Ein Maven Artefakt ist eine JAR Datei, welchen in dem Maven-Repo vorliegt. Jede Artefeact besitzt eine group und artifact ID.

Um eine Testklasse in Maven zu starten, braucht man das Plugin surefire. Darüber hinaus müssen die XML Dateien pom und setting ebenfalls konfiguriert werden.

Wie integriert man einen Test in eclipse mit maven?

Die Test Klassen werden in dem  Testordner in dem entsprechenden Paket eingefügt!

In MVN-Repo kann für die  gewünschten Plugins der entsprechende XML Code herausgefunden werden. Maven lädt die notwendigen Dateien aus dem Repositroy herunter anhand der Information in der pom.xml Datei. Diese müssen in die pom.xml eingefügt werden.

 

 

maven für test

Auf der folgenden Seite:

http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html

wird die Integration von TestNG in Maven näher erläutert

In Pom.xml muss der Hinweis auf Testng.xml vorliegen, damit diese Testklasse ausgeführt werden kann.

Auch TestNG Berichte wird in dem Zielordner unter Source generiert. Ein Bericht fasst die Testergebnisse übersichtlich und transparent zusammen.

Jenkins

Jenkins ist eine führende open soure Software für „continous integration“, welche Browser und Betriebssystem unabhängig verwendet wird. Jenkins überwacht SVN checkout einer Applikation.  Darüber hinaus unterstützt sie bei Versionen zu kontrollieren und den Build Prozess zu überwachen.

Jenkins kann einfach auf Windows per exe installiert werden. Mehrere VM können konfiguriert werden um den Build-Prozess auf verschiedene Maschinen durchzuführen

Warum Jenkins und Selenium?

  • Wenn Selenium Test auf Jenkins durchgeführt werden, dann kann nach jeder Softwareänderung ein automatischer Test ausgelöst werden
  • Ein Test kann zu einer bestimmten Zeit wie ein Wecker voreingestellt werden
  • Die Testberichte und Ausführungshistorie werden gespeichert
  • Jenkins unterstützt Maven beim Build Prozess und einem „continous integration“ Test
  • Fehler können schnell in der Test- oder Staging-Umgebung bereits überprüft werden bevor diese in die Produktion gelangen

Jenkins erzeugt eine Übersicht aller Änderungen in Repositories wie SVN. Um Jenkins erfolgreich zu verwenden bestätigt man ein zugängliches Repository (wie SVN oder GIT) für den Quellcode und ein build-Skript wie z.B. Apache Maven Skript.

Maven Projekt WebDriver Test

Continous integration

Sie sind fertig mit dem Programmieren einer neuen Funktion. Nun muss sichergestellt werden, dass diese neuen Funktionen keine negativen Einflüsse auf die anderen bereit existierenden Funktionen haben. Besonders bei mehreren Entwicklern, ist eine stetige Überprüfung des Entwicklungsstandes notwendig. Mit Hilfe von in LDAP hinterlegten Informationen wird der Entwickler sofort über das Testergebnis informiert.

Wie macht man dies effizient?

In der aktuellen Zeit wo es zahlreiche agile Projekte gibt, findet Jenkins immer häufiger seine Anwendung.

Mit Maven wird Jenkins angewendet. Jenkins ist ein continous integration werkzeug, womit nach jeder Entwicklung mit dem automatischen Test ein Feedback zu der Entwicklung  gegeben werden kann.

Jenkins muss wissen wo maven und java vorliegt. Diese Einstellung erfolgt unter dem „Jenkins verwalten“ und dann unter „System konfigurieren“. Voraussetzung ist dass die Plugins für JDK und Maven bereits vorliegen. Nach diesen Einstellungen kann ein Maven Projekt angelegt werden. Unter „Konfigurieren“ des Projekts können die Einstellungen zum „Build“ durchgeführt werden. Ein Build kann auch zeitgesteuert starten. Hierfür muss man den Abschnitt „Build-Auslöser“ und den Abschnitt „Zeitplan“ nutzen.

Auch das Verzeichnis der pom XML Datei muss hinterlegt werden, damit mit den Informationen aus der pom-Datei beim Ausführen des Projekts berücksichtig werden kann. Nach dem Speichern kann man unter „Jetzt bauen“ das Projekt bauen und das Maven Projekt wird ausgeführt.  Unter der Konsolenansicht auf Jetkins kann man die einzelnen Schritte verflogenen.

Anbei ein Beispiel für die pom.xml Datei. Hierbei werden die Plugins surefire und compiler als dependency eingefügt. Als Testsuite wird testng.xml beschrieben.

Was sagen die anderen zu der Idee?