Tutorial

Video Icon

Hier entsteht im Laufe der Zeit für jedes Kapitel des Tutorial ein Video, in dem wir Sie Schritt für Schritt durch QF-Test führen.

7.2
Ausgewählte Packages und Prozeduren

Wir werfen nun einen genaueren Blick auf ein paar ausgewählte Packages und Prozeduren der Standardbibliothek.

Wir werden mit Packages beginnen, die den Zugriff auf Komponenten abhängig von der verwendeten GUI Technologie ermöglichen, als JavaFX, Java Swing, Eclipse/SWT und Web Komponenten.

7.2.1
Das Checkbox Package

Wir beginnen nun mit der genaueren Betrachtung der Packages qfs.fx.checkbox qfs.swing.checkbox, qfs.swt.checkbox oder qfs.web.checkbox.

Hier sind einige Prozeduren aus diesen Packages:

  • select Selektiert ein Kontrollkästchen. Wenn sich das Kontrollkästchen bereits im ausgewählten Zustand befindet, wird keine Aktion ausgeführt.
  • deselect Deselektiert ein Kontrollkästchen. Wenn sich das Kontrollkästchen bereits im nicht-ausgewählten Zustand befindet, wird keine Aktion ausgeführt.
  • set Setzt ein Kontrollkästchen auf den angegebenen Zustand (true oder false).

Für jede dieser Prozeduren wird die QF-Test ID der Kontrollkästchenkomponente als variables Argument übergeben. Die Bibliothek kümmert sich um die Überprüfung, dass der Zustand des Kontrollkästchens wie erwartet gesetzt wurde.

Die anderen Prozeduren in diesem Package folgen demselben Muster.

7.2.2
Das Combobox bzw. Combo Package

Die Packages qfs.fx.combobox, qfs.swing.combobox, qfs.swt.combo und qfs.web.select enthalten Prozeduren, um Werte in einer Combobox zu selektieren.

Die wichtigsten Prozeduren sind:

  • setValue Selektiert einen Wert in der Liste der Combobox.
  • getItemCount Liefert die Anzahl der Einträge zurück.

7.2.3
Das General Package

Die Packages qfs.fx.general, qfs.swing.general, qfs.swt.general und qfs.web.general enthalten allgemeine Prozeduren für GUI-Elemente.

Die wichtigsten Prozeduren sind:

  • setLocation Setzt die Position der Komponente mittels angegebenen Koordinaten.
  • setSize Setzt die Größe der Komponente.

7.2.4
Das List Package

Die Packages qfs.fx.list, qfs.swing.list, qfs.swt.list und qfs.web.list enthalten allgemeine Prozeduren für Listen.

Die wichtigsten Prozeduren sind:

  • getItemCount Zählt die Einträge einer Liste.

7.2.5
Das Menu Package

Die Packages qfs.fx.menu, qfs.swing.menu und qfs.swt.menu erlauben es Ihnen, in einfacher Weise Einträge und auch Kontrollkästchen in Menüs oder Untermenüs auszuwählen bzw. zu setzen. Die wichtigsten Prozeduren sind:

  • selectItem Wählt einen Eintrag in einem Menü aus.
  • selectSubItem Wählt einen Eintrag in einem Untermenü aus.

An alle diese Prozeduren muss die QF-Test ID der Menükomponente wie auch des Eintrags bzw. Kontrollkästchens übergeben werden. Die Benutzung variiert leicht, abhängig von der jeweiligen Art der Prozedur.

7.2.6
Das Table Package

Die Packages qfs.fx.table, qfs.swing.table, qfs.swt.table und qfs.web.table enthalten Hilfsprozeduren für Tabellen.

  • getRowCount Liefert die aktuelle Zeilenanzahl einer Tabelle zurück. Diese Prozedur verwendet technologiespezifische Methoden um an die Anzahl zu kommen.
  • getColumnCount Liefert die aktuelle Spaltenanzahl einer Tabelle zurück. Diese Prozedur verwendet technologiespezifische Methoden um an die Anzahl zu kommen.
  • selectCell Selektiert eine angegebene Tabellenzelle.
7.2.7
Das Tree Package

Die Bibliothek stellt in den Packages qfs.fx.tree, qfs.swing.tree, qfs.swt.tree und qfs.web.tree einige einfache Prozeduren zur Manipulation von Bäumen zur Verfügung. Das sind:

  • collapseNode Klappt einen Baumknoten ein. Ist der Knoten bereits eingeklappt, wird keine Aktion ausgeführt. Diese Prozedur besitzt drei einzelne Parameter für Baum und Knoten
  • expandNode Klappt einen Baumknoten aus. Ist der Knoten bereits expandiert, wird keine weitere Aktion ausgeführt. Diese Prozedur besitzt drei einzelne Parameter für Baum und Knoten.
  • selectNode Selektiert einen angegebenen Baumknoten.

Jede der Prozeduren benötigt die QF-Test ID des Baumknotens als Argument.

7.2.8
Das Cleanup Package

Die Packages qfs.fx.cleanup, qfs.swing.cleanup und qfs.swt.cleanup bieten eine gute Unterstützung für das Aufräumen der SUT Umgebung, wenn unerwartet eine Exception auftritt. Stellen Sie sich zum Beispiel vor, dass eine Exception geworfen wird, während auf ein Menü des SUTs zugegriffen wird. Die Exception bewirkt, dass der Ausführungspfad innerhalb Ihrer Testsuite zu einem Exception Handler umgeleitet wird - oder zu einem "impliziten" Exception Handler. Das bedeutet, dass der normale Ausführungspfad, der das geöffnete Menü in der Regel wieder ordnungsgemäß geschlossen hätte, unterbrochen wurde. Ohne eine entsprechende Aktion kann dieses Menü geöffnet bleiben und somit andere Ereignisse an das SUT blockieren.

Hier sehen Sie die wichtigsten Prozeduren innerhalb des Packages:

  • closeAllModalDialogs bewirkt, dass modale Dialoge des SUTs geschlossen werden. Nur für Swing und FX verfügbar!
  • closeAllDialogsAndModalShells bewirkt, dass alle Dialoge und modalen Shells geschlossen werden. Nur für Eclipse/SWT verfügbar!
  • closeAllMenus Schließt alle offenen Menüs des SUT.

Das Konzept zur Behandlung von impliziten Exceptions ist von großer Bedeutung, denn eine Exception in einem einzigen Testfall soll nicht zum Beenden des gesamten Testlaufs führen. Lediglich der aktuelle Testfall soll abgebrochen werden, dann sollte es mit dem nächsten Testfall weitergehen.

Aus diesem Grund wird eine Exception innerhalb eines Testfalls auf dieser Ebene gefangen und nicht nach oben propagiert. Dies verhindert den Abbruch des gesamten Testlaufs. Der Fehlerstatus wird jedoch stets korrekt im Protokoll und Report festgehalten.

Benutzt der Testfall eine Abhängigkeit, wird die Exception an den Catch Knoten derselben übergeben, falls ein solcher vorhanden ist. Diese Art der Behandlung von Exceptions (und Fehlern) wird im Kapitel Abhängigkeiten des Handbuchs erklärt.

7.2.9
Das Run-log Package

Das Package qfs.run-log enthält Prozeduren, um Meldungen in das Protokoll zu schreiben.

Hier sehen Sie die Liste von verfügbaren Prozeduren innerhalb des Packages:

  • logError Schreibt eine Fehlermeldung ins Protokoll.
  • logWarning Schreibt eine Warnung ins Protokoll.
  • logMessage Schreibt eine Meldung ins Protokoll.
7.2.10
Das Run-log.Screenshots Package

Das qfs.run-log.screenshots Package enthält Prozeduren, die Bildschirmabbilder ins Protokoll schreiben und einige Hilfsprozeduren.

Hier sehen Sie die Liste von verfügbaren Prozeduren innerhalb des Packages:

  • getMonitorCount Liefert die Anzahl der an den Computer angeschlossenen Monitore.
  • logScreenshot Schreibt ein Bildschirmabbild des aktuellen Monitors ins Protokoll.
  • logImageOfComponent Schreibt ein Bildschirmabbild einer Komponente ins Protokoll.
  • logScreenshotOfMonitor Schreibt ein Bildschirmabbild eines angegebenen Monitors ins Protokoll.
7.2.11
Das Shellutils Package

Das qfs.shellutils Package beinhaltet Prozeduren für die wichtigsten Shell-Kommandos.

Hier sehen Sie die Liste von verfügbaren Prozeduren innerhalb des Packages:

  • copy Kopiert eine angegebene Datei oder ein Verzeichnis an eine neue Stelle.
  • deleteFile Löscht eine angegebene Datei.
  • exists Prüft, ob eine angegebene Datei oder ein Verzeichnis existiert.
  • getBasename Gibt den Dateinamen einer Datei zurück.
  • getParentDirectory Gibt die Verzeichnisstruktur einer Datei zurück.
  • mkdir Erzeugt ein Verzeichnis. Noch nicht existierende Verzeichnisse werden angelegt.
  • move Verschiebt eine angegebene Datei oder ein Verzeichnis.
  • touch Erzeugt eine Datei.
  • removeDirectory Löscht ein angegebenes Verzeichnis.
7.2.12
Das Utils Package

Das Package qfs.utils enthält nützliche Prozeduren für häufig auftretende Anforderungen der Testentwicklung.

Hier sehen Sie einige Prozeduren des Packages:

  • getDate Gibt einen String zurück, der ein Datum enthält. Standardmäßig wird das aktuelle Datum zurückgegeben. (Andere Daten sind konfigurierbar.)
  • getTime Gibt einen String zurück, der eine Zeit enthält. Standardmäßig wird die aktuelle Zeit zurückgegeben. (Andere Zeiten sind konfigurierbar.)
  • logMemory Schreibt den aktuellen Speicherverbrauch ins Protokoll.
  • printVariable Gibt den Inhalt einer spezifizierten Variable auf der Konsole aus.
  • printMessage Gibt den Inhalt einer angegebenen Nachricht auf der Konsole aus.
  • writeMessageIntoFile Schreibt einen angegebenen String in eine angegebene Datei.
7.2.13
Das Database Package

Das Package qfs.database enthält nützliche Prozeduren, um mit Datenbanken zu interagieren.

Bitte beachten Sie, dass ein entsprechender Datenbanktreiber für die Datenbankverbindung entweder im Plugin Verzeichnis von QF-Test oder über die Umgebungsvariable CLASSPATH vor dem Start von QF-Test vorhanden sein muss.

Für weitere Informationen über den Aufbau einer Datenbankverbindung kontaktieren Sie bitte einen Entwickler oder werfen Sie einen Blick auf www.connectionstrings.com.

Die wichtigsten Prozeduren sind:

  • executeSelectStatement Führt einen angegebenen SQL-Select-Befehl aus. Das Ergebnis wird zum einen in die globale Variable "resultRows" des Jython Variablenstacks geschrieben und ist somit in jedem Jython Skript verfügbar. Zum anderen wird das Ergebnis auch in eine Gruppenvariable mit dem Standardnamen "resultGroup" geschrieben und ist somit direkt von QF-Test Knoten aus ansprechbar.
  • executeStatement Führt einen angegebenen SQL Befehl aus. Hier kann jedes beliebige SQL Kommando ausgeführt werden.
7.2.14
Das Check Package

Das qfs.check Package enthält Prozeduren, die Checks ausführen.

Die wichtigsten Prozeduren sind:

  • checkEnabledStatus Überprüft, ob eine Komponente en- bzw. disabled ist. Im Fehlerfall wird von der Prozedur ein entsprechender Fehler ins Protokoll geloggt.
  • checkSelectedStatus Überprüft, ob eine Komponente selektiert bzw. nicht selektiert ist. Im Fehlerfall wird von der Prozedur ein entsprechender Fehler ins Protokoll geloggt.
  • checkText Überprüft den Text einer Komponente. Im Fehlerfall wird von der Prozedur ein entsprechender Fehler ins Protokoll geloggt.
7.2.15
Das Databinder Package

Das Package qfs.databinder enthält Prozeduren zur Ausführung innerhalb eines Datentreiber Knotens, um Daten für datengetriebenes Testen zu binden.

Die wichtigsten Prozeduren sind:

  • bindList Bindet eine Liste von Werten an eine Variable. Die Werte sind durch Leerzeichen oder das als Parameter übergebene Trennzeichen getrennt.
  • bindSets Bindet Sätze von Werten an einen Satz von Variablen. Die Sätze von Werten sind durch Zeilenumbrüche getrennt, die Werte innerhalb eines Satzes durch Leerzeichen oder das als Parameter übergebene Trennzeichen.