Handbuch
Version 8.0.1 |
Grundlage für die Ausführung von Tests über die Kommandozeile bildet eine Vielzahl von Argumenten, mit denen QF-Test im Batchmodus gestartet werden kann. Anschließend werden exemplarisch einige davon behandelt; eine Übersicht über alle Optionen findet man in Kapitel 43.
Die nachfolgenden Beispiele sind für Windows geschrieben, lassen sich aber leicht auf
Linux übertragen. Neben den Pfadangaben unterscheidet sich die Syntax nur noch in Bezug
auf die Platzhalter (Abschnitt 43.2.4): Unter Linux kann neben der Form
+X auch %X verwendet werden. Unter Windows gibt es außerdem neben der GUI-Anwendung
qftest.exe
auch eine Konsolen-Variante qftestc.exe
. Diese
wartet, bis die Ausführung von QF-Test beendet ist und gibt u. a. auch print-Ausgaben von
einem 'Server-Skript' aus.
Der einfachste Aufruf von QF-Test, um einen Test auszuführen, sieht so aus:
| ||||
Beispiel 24.1: Testausführung von der Kommandozeile |
Das Argument -batch
sorgt dafür, dass QF-Test ohne graphische
Benutzeroberfläche gestartet wird. Das zweite Argument, -run
, sagt QF-Test,
dass ein Test ausgeführt werden soll. Den Abschluss der Kommandozeile bildet die
auszuführende Testsuite.
Hinweis Das Argument -run
ist optional, d. h. die
Testausführung ist als Standard für den Batchmodus definiert.
Führt man die obige Anweisung aus, werden alle 'Testfall' und
'Testfallsatz' Knoten nacheinander ausgeführt, die in der Testsuite
suiteA.qft
auf der obersten Ebene (d. h. direkt unterhalb des
'Testsuite' Knotens) definiert sind. Nach Beendigung des Testlaufs findet man im
aktuellen Verzeichnis, unter dem gleichen Namen wie die Testsuite, eine
Protokolldatei, der man das Testergebnis entnehmen kann.
Durch Angabe von -nolog
kann die Erstellung der Protokolldatei auch
unterdrückt werden. Das macht aber wahrscheinlich nur dann Sinn, wenn man seinen Test
um eigene Protokollausgaben bereichert hat, die etwas in eine Datei geschrieben werden.
Ansonsten lieferte nur noch der Rückgabewert von QF-Test einen Hinweis auf den Ausgang
des Testlaufs: 0 bedeutet, dass der Test erfolgreich absolviert wurde, ein positiver
Wert hingegen ist die Folge von Warnungen, Fehlern oder gar Exceptions (siehe Abschnitt 43.3).
In der Regel möchte man also wohl ein Protokoll des Testlaufs erstellen und dieses an
einer bestimmten Stelle im Dateisystem ablegen. Das geht über den Parameter
-runlog
:
| ||||
Beispiel 24.2: Testausführung mit Protokolldatei |
Nun wird eine Protokolldatei suiteA.qrz
im angegebenen Verzeichnis
c:\mylogs
erstellt. Der Platzhalter +b
sorgt dafür, dass sie
den Namen von der Testsuite übernimmt. Durch die Angabe von -compact
wird
erreicht, dass nur die wichtigsten Knoten in die Protokolldatei übernommen werden,
also nur solche, die für den Report und gegebenenfalls die Fehleranalyse benötigt
werden. Bei sehr umfangreichen Tests kann dieser Parameter helfen, den
Anspruch an Arbeitsspeicher in Grenzen zu halten, wobei die neuere Möglichkeit,
Protokolldateien zu splitten, sogar noch mächtiger ist. Nähere Informationen dazu finden Sie in
Abschnitt 7.1.
Hinweis Ob die Datei hier tatsächlich als komprimiertes Protokoll
(das ist vom obigen "compact" zu unterscheiden) mit der Endung .qrz
erstellt wird, hängt von den Einstellungen ab. Um ein bestimmtes Format zu erzwingen,
kann die Endung explizit angegeben werden, also z. B. -runlog
c:\mylogs\+b.qrl
, wenn unkomprimiertes XML gewünscht wird.
Manchmal möchte man vielleicht nicht die komplette Testsuite, sondern nur bestimmte
Testfälle ausführen. Über den Parameter -test
lässt sich ein ganz
bestimmter Knoten zur Ausführung festlegen:
| ||||
Beispiel 24.3: Ausführung eines bestimmten Knotens |
Die Angabe "Mein Test"
bezieht sich dabei auf das Attribut 'QF-Test ID' des
auszuführenden Knotens; bei 'Testfall' oder 'Testfallsatz' Knoten kann auch deren
qualifizierter Name angegeben werden. Sollen mehrere Knoten ausgeführt werden, kann
das Argument -test <ID>
auch mehrfach angegeben werden. Neben der
QF-Test ID eines Knotens versteht -test
auch die Angabe eines numerischen Index. So
würde etwa -test 0
den ersten Knoten unterhalb von 'Testsuite'
ausführen.
Das Protokoll liefert eine eher technische Sicht auf den Ablauf eines Tests; es ist
vor allem nützlich, um während eines Testlaufs aufgetretene Fehler zu analysieren
(vgl. Abschnitt 7.1). Eine übersichtliche Darstellung über die
ausgeführten Testfälle und eventuell aufgetretene Fehler bietet hingegen der Report.
Er wird aus der Protokolldatei erstellt und liegt anschließend im XML- und/oder
HTML-Format vor. Der Report kann also auch nachträglich aus einer (oder mehreren)
Protokolldateien erstellt werden (vgl. Kapitel 23). Um gleich bei
der Testausführung dafür zu sorgen, verwendet man -report
:
| ||||
Beispiel 24.4: Testausführung mit Reportgenerierung |
Hier werden die XML- und HTML-Reportdateien in einem Verzeichnis erstellt, dessen Name
sowohl die Testsuite wie auch Datum und Uhrzeit enthält, etwa:
c:\mylogs\rep_suiteA_0806042152
. Ersetzt man das Argument
-report
durch -report.xml
bzw. -report.html
, so
wird nur der XML- bzw. nur der HTML-Report erstellt.
Testfälle sind oft parametrisiert, das heißt, sie verwenden Variablen, deren Werte den
Testablauf bestimmen. Ist beispielsweise im 'Testsuite' Knoten eine Variable
myvar
definiert, kann deren Vorgabewert zur Testausführung überschrieben
werden:
| ||||
Beispiel 24.5: Testausführung mit Variablen |
Sollen mehrere Variablen gesetzt werden, kann -variable
<name>=<wert>
auch mehrfach angegeben werden.
Die Möglichkeit, Tests über die Kommandozeile ausführen zu können, bildet die
Grundlage zur einfachen Integration von QF-Test in bestehende Testmanagement-Systeme
(siehe Anbindung an Testmanagementtools). Wer hingegen kein Testmanagement-System
betreibt, mag es vielleicht praktisch finden, das Kommando zur Testausführung in ein
Skript einzubetten. Ein einfaches Windows Befehlsskript (qfbatch.bat
)
könnte zum Beispiel wie folgt aussehen:
| ||||
Beispiel 24.6: Befehlsskript qfbatch.bat zur Ausführung einer Testsuite |
Nun braucht man nur noch das Skript auszuführen, mit dem Dateinamen der auszuführenden
Testsuite als Parameter. Der Rest geht von alleine: Die Testsuite wird ausgeführt, die
Protokolldatei im Verzeichnis logdir
abgelegt und abschließend gibt das
Skript in Abhängigkeit vom QF-Test Rückgabewert eine Statusmeldung aus.
Seit Version 3 ist die Sprache Groovy Bestandteil von QF-Test (siehe Kapitel 11). Hauptsächlich gedacht ist sie zum Schreiben von Server- und
SUT-Skripten, aber Groovy kann ebenso wie Jython auch außerhalb von QF-Test verwendet werden.
Diese Sprache ist sicher gut geeignet, um sich selbst ein kleines Management-System
zur Testautomatisierung zu erstellen. Mit Groovy lässt sich übrigens auch der Einsatz
von Ant vereinfachen, denn statt mit klobigen XML-Dateien, über die sich zudem etwa
Bedingungen nur schwer umsetzen lassen, kann man dank AntBuilder
mit
übersichtlichem Groovy-Code arbeiten. Das folgende Beispiel kommt allerdings ohne Ant
aus:
| ||||
Beispiel 24.7: Groovy Skript QfExec.groovy zur Ausführung einer Testsuite |
Sollte Groovy unabhängig von QF-Test auf Ihrem Rechner installiert sein, kann die
Beispiel-Testsuite einfach mit groovy QfExec c:\mysuites\suiteA.qft
ausgeführt werden. Andernfalls kann auch die Groovy jar-Datei aus der QF-Test
Installation verwendet werden. Am besten nutzt man in diesem Fall zur Ausführung von
Groovy wieder ein Befehlsskript:
| ||||
Beispiel 24.8: Befehlsskript qfexec.bat zur Ausführung von Groovy (hier
QfExec.groovy ) |
Die Testsuite kann nun mit qfexec c:\mysuites\suiteA.qft
ausgeführt
werden.
Letzte Änderung: 10.9.2024 Copyright © 1999-2024 Quality First Software GmbH |