Handbuch

3.3+23.4
Jenkins/Hudson

Hinweis Es gibt ein Video das die Integration von QF-Test mit Jenkins zeigt. Dieses Video finden Sie auf unsere Videoseite https://www.qfs.de/los-gehts-mit-qf-test/videos.html.

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.

23.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 23.4:  Jenkins nach dem Start.
23.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.

23.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.

HinweisUm einen tieferen Einblick in das Plugin und seine Features zu erhalten, können Sie auch unser Youtube Video zur Installation und Konfiguration des Plugins ansehen.

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 23.5:  QF-Test Plugin installiert.
23.4.4
Konfiguration eines Jobs für QF-Test

Um einen neuen Job anzulegen rufen Sie das Jenkins Dashboard auf und wählen "Element anlegen". Der Standard Typ des Jobs ist das "Free Style Projekt". Sobald das Element erstellt ist, müssen einige Einstellungen vorgenommen werden. Wählen Sie hierfür "Konfigurieren" auf der Seite des Jobs aus.

Zuerst muss das Arbeitsverzeichnis angepasst werden. Gehen Sie hierzu in die "Erweiterte Projekteinstellungen" auf "Erweitert..." und selektieren "Verzeichnis des Arbeitsbereichs anpassen". Dort muss der Pfad eingetragen werden, in dem sich die Testsuiten befinden.
Unter dem Feld "Anzeigename" kann der Name des Projekts geändert werden, was aber meist leer gelassen wird.

Custom Workspace
Abbildung 23.6:  Verzeichnis des Arbeitsbereichs anpassen.

Nun muss in dem Bereich "Buildverfahren" der "Run QF-Test" Build-Schritt hinzugefügt werden. In dem linken Feld kann der Name einer Testsuite oder ein Ordner, welcher Testsuiten enthält, angegeben werden (z.B. wenn das Arbeitsverzeichnis "C:\MySuites\" lautet und der Pfad der Testsuite "C:\MySuites\qftest\mysuite.qft", kann einfach qftest/mysuite.qft in dem ersten Feld eingetragen werden). Für den Fall, dass ein Verzeichnis angegeben wird, werden alle Testsuiten in diesem Verzeichnis ausgeführt. In dem rechten Feld können bestimmte Kommandozeilenargumente mitgegeben werden (falls ein Verzeichnis angegeben wurde, gelten die Kommandozeilenargumente für alle Testsuiten in diesem Verzeichnis).

Build Step
Abbildung 23.7:  Build-Schritt hinzufügen.

Die erweiterten Optionen des "Run QF-Test" Build-Schritts sind optional, werden im Folgenden aber kurz erläutert.
Mit der ersten Option kann eine bestimmte QF-Test Version ausgewählt werden. Jenkins wird ansonsten die zuletzt installierte oder die in den globalen Einstellungen angegebene Version zu benutzen. Die nächste Option ermöglicht das Verzeichnis für die temporären Testergebnisse zu ändern. Das QF-Test Plugin erstellt einen Ordner namens "qftestJenkinsReports" in dem ausgewählten Arbeitsbereich und speichert dort die Testergebnisse für die Post-Build-Aktionen.
Des Weiteren gibt es eine Option um Testsuiten auf einem Daemon auszuführen. Hierfür muss der Daemonhost und Port angegeben werden. Mehr über den Daemonmodus erfahren Sim im Abschnitt 19.2 des Handbuchs.

Advanced Options
Abbildung 23.8:  Erweitere Optionen für den Build-Schritt.

Zuletzt müssen die Post-Build-Aktionen eingestellt werden, um die Runlogs und Testergebnisse zu speichern.
Wählen Sie nun "Artefakte archivieren" als Post-Build-Schritt aus, um die Runlogs zu speichern. Bei dem Feld "Dateien, die archiviert werden sollen" geben Sie folgenden Pfad ein: qftestJenkinsReports/$JOB_NAME/$BUILD_NUMBER/logs/*.q*

Wenn Sie den HTML Report anzeigen möchten, fügen Sie "Publish HTML reports" bei dem Post-Build-Schritt hinzu. In dem "HTML directory to archive" geben Sie diesen Pfad an: qftestJenkinsReports/$JOB_NAME/$BUILD_NUMBER/html/ . Außerdem muss die "Index page" von index.html zu report.html geändert werden.

Zuletzt sollen im Normalfall noch die JUnit-Testergebnisse veröffentlicht werden. Dazu muss der "Veröffentliche JUnit-Testergebnisse" Post-Build-Schritt hinzugefügt werden. Unter "Testberichte in XML-Format" wird folgender Pfad benötigt: qftestJenkinsReports/$JOB_NAME/$BUILD_NUMBER/junit/report_junit.xml

HinweisEs werden Warnungen angezeigt, dass die Pfade in den Post-Build-Aktionen nicht korrekt sind, da Umgebungsvariablen benutzt werden. Diese Warnungen können ignoriert werden.

Post Build Actions
Abbildung 23.9:  Post-Build-Aktionen konfigurieren.

HinweisDas QF-Test Plugin unterstützt die Ausführung von parallelen Builds, solange die Lizenz ausreichend QF-Test Instanzen erlaubt.

HinweisFalls es Probleme bei dem Job gibt, ist es immer nützlich einen Blick auf den Konsolen-Output zu werfen.