3.3+25.4
Jenkins/Hudson

Bei Jenkins/Hudson (http://jenkins-ci.org bzw. http://hudson-ci.org) handelt es sich um Continuous-Integration-Build-Tools. Sie sind somit dazu gedacht, die Ausführung des Build-Prozesses eines Software-Projektes zu steuern und zu überwachen sowie die Ergebnisse zu verwalten. Ein wichtiger Schritt in diesem Build-Prozess sind automatisierte Tests, u.a. auch GUI-Tests mit QF-Test.

Eine Verwendung von QF-Test in Kombination mit Jenkins/Hudson kann folgende Vorteile bringen:

  • Falls bereits ein Continuous-Integration-Prozess mit Jenkins/Hudson für die fortlaufende Erstellung der Software verwendet wird, kann das automatisierte Testen sehr einfach in den bestehenden Ablauf integriert werden.
  • Einfache Verwaltung von zeitgesteuerten Starts der Tests sowie Benachrichtigung über das Ergebnis über Email oder RSS.
  • Komfortable Übersicht und Kontrolle der ausgeführten Testläufe in einer webbasierten Oberfläche.
  • Mit dem HTML Publisher Plugin können QF-Test HTML Reports direkt in die Oberfläche von Jenkins/Jenkins integriert werden.
  • Resultate, wie Protokolle und Reports, die während des Testlaufs erstellt werden, können automatisch archiviert werden. Somit ist es nicht mehr nötig, eine eigene Verzeichnisstruktur zu pflegen.

Da Jenkins und Hudson eine gemeinsame Vergangenheit teilen, wird in den folgenden Kapiteln Jenkins als Repräsentant verwendet.

25.4.1
Jenkins installieren und starten

Hinweis Für GUI Tests darf Jenkins nicht als Service eingerichtet sein sondern muss innerhalb einer echten Benutzer-Sitzung laufen. Unter Windows konfiguriert der Jenkins .msi Installer leider ohne Rückfrage direkt den Betrieb als Service, weshalb wir von diesem abraten. Bitte stellen Sie sicher, dass Jenkins als echter Benutzerprozess startet, wie es unten beschrieben wird.

Die Installation von Jenkins beschränkt sich auf das Herunterladen des war Archivs von http://jenkins-ci.org/latest/jenkins.war und das Starten mittels java -jar jenkins.war.

Sobald Jenkins erfolgreich läuft, kann mittels eines Browsers über die URL http://localhost:8080 auf die Weboberfläche zugegriffen werden, welche sich wie folgt darstellt:

Jenkins Start Screen
Abbildung 25.4:  Jenkins nach dem Start.
25.4.2
Voraussetzungen für GUI-Tests

GUI-Tests benötigen einen ungesperrten, aktiven Desktop mit einer aktiven Benutzer-Session. So verhält sich das SUT genauso wie bei einem normalen Benutzer. Deshalb ist es nicht möglich, den Agenten als Windows-Service zu starten, sondern ein realer (Test-) Benutzer muss angemeldet sein (z.B. mittels Auto-Login) und Start des Agenten über Windows-Autostart. Bildschirmsperren müssen deaktiviert sein. Sie finden im Kapitel Aufsetzen von Testsystemen nützliche Tipps und Tricks für die Einrichtung des Jenkins/Hudson Prozesses.

Jenkins erlaubt die Ausführung von Aufgaben auf verteilten Rechnern. Dies ist natürlich auch für GUI-Tests relevant. Aufgrund Ihrer Natur werden GUI-Tests typischerweise nicht direkt auf dem zentralen Buildserver ausgeführt. Zusätzlich sollen häufig Tests für verschiedene Umgebungen, Betriebssysteme und Versionen des SUTs durchgeführt werden.

Auf einem dezentralen Rechner muss ein Jenkins Agent gestartet werden, um sich zum zentralen Jenkins Server zu verbinden und dann auf auszuführende Aufgaben zu warten. Wie in der Dokumentation von Jenkins beschrieben, gibt es verschiedene Möglichkeiten diesen Agenten zu starten, aber damit die GUI-Tests vollständig funktionieren können, müssen die Agenten via Java Web Start gestartet werden.

HinweisWeitere technische Hintergrundinformation gibt FAQ 14.

25.4.3
Installation des QF-Test Plugins

Das QF-Test Plugin ermöglicht die Ausführung von QF-Test-Suiten in Jenkins. Um das Plugin zu installieren, öffnen Sie das Jenkins Dashboard und gehen auf "Jenkins verwalten", gefolgt von "Plugins verwalten". Wählen Sie das QF-Test Plugin im "Verfügbar" Tab aus und klicken Sie auf den Installieren-Button. Das QF-Test Plugin wird auch das JUNIT und das HTML-Publisher Plugin herunterladen, falls diese noch nicht installiert sind. Schließlich muss Jenkins neugestartet werden um die Installation abzuschließen. Das QF-Test Plugin erscheint nun in dem "Installiert" Tab, wie in Abbildung 20.2 gesehen werden kann.

HinweisJenkins benutzt automatisch die zuletzt installierte Version von QF-Test. Falls eine andere Version genutzt werden soll, kann der Pfad in der QF-Test Sektion in den Jenkins Einstellungen angegeben werden (Jenkins verwalten -> System konfigurieren).

QF-Test Plugin installed
Abbildung 25.5:  QF-Test Plugin installiert.

Sobald das QF-Test Plugin erfolgreich installiert wurde kann man die Testausführung mit QF-Test in den Jenkins-Buildprozess integrieren. Eine detaillierte Handreichung dazu findet sich in der Dokumentation des QF-Test Plugins unter https://www.qfs.de/en/jenkins.