22. Februar 2019
Wie erstellt man Prozeduraufrufe?
Prozeduren, die auch Funktion, Routine oder Subroutine genannt werden, werden genutzt, um immer wieder auftretende Aufgaben zu lösen. Genauso können wir auch spezifizieren, dass gewisse aufeinander folgende Aktionen gebraucht werden um eine Aufgabe zu lösen (=Programmierung einer Prozedur). Wenn wir dann dieser Aufgabe begegnen, können wir einfach diese Prozedur aufrufen (und die Prozedur diese Aufgabe für uns erledigen lassen).
Wie fügt man einen Prozeduraufruf in QF-Test ein?
- Gehen Sie zu dem Punkt in Ihrer Testsuite, wo Sie eine bestimmte Prozedur aufrufen wollen.
- Fügen Sie einen Prozeduraufrun ein. Um das zu tun, können Sie den Shortcut Strg+A oder das Menu Einfügen → Prozedurknoten → Prozeduraufruf.
- Ein Dialog wird erscheinen:
3.1 Klicken Sie den Button neben dem Label “Prozedur Name”.
3.2 Ein weiterer Dialog wird erscheinen. Wählen Sie in diesem Dialog die Suite, in welchem Ihre Prozedur liegt, und wählen Sie anschließend die gewünschte Prozedur im Baum.
3.3 Nachdem Sie den OK Button geklickt haben, wird die gewünschte Prozedur spezifiert in dem „Prozedur Name“ Textfeld des (ersten) Pop-ups. Wenn die Prozedur einige Parameter hat, werden diese Parameter in der „Variablen Definitions“-Tabelle des Prozeduraufrufs definiert. - Abhängig von der genauen Aufgabe, kann es notwendig sein die vordefinierte Parameter in der “Variablen Definitionen”-Tabelle zu ändern oder einen Text im „Variable für Rückgabewert“-Textfeld zu spezifizieren.
Beispielsweise wollen wir zu einem bestimmten Punkt in unserer Testsuite das aktuelle Datum im Format “Jahr-Monat-Tag”. Um diese Aufgabe zu lösen, können wir die Prozedur namens qfs.utils.getDate nutzen, welche schon in der Standardbibliothek vordefiniert ist (suite:qfs.qft).
Somit:
- Schritt 3.2: Wir brauchen die Prozedur qfs.utils.getDate aus der qfs.qft. Somit wählen wir den Tab qfs.qft und dann die Prozedur qfs.utils.getDate im Baum aus.
- Schritt 4: Standardmäßig gibt diese Prozedur das aktuelle Datum im Format „Tag.Monat.Jahr“ aus, aber weil wir das aktuelle Datum im Format „Jahr-Monat-Tag“ wollen, ersetzen wir den Text „dd.MM.yyyy“in der „Variablen-Definitions“-Tabelle durch „yyy-MM-dd“ (siehe Zeile „format“).
- Schritt 4: Wir müssen den Namen der Variable spezifizieren (z.B. currentDate), in welchem das aktuelle Datum gespeichert werden soll. Deshalb spezifizieren wir einfach currentDate im Textfeld „Variable für Rückgabewert“.
Nachdem wir diesen Prozeduraufruf ausgeführt haben, können wir auf den Inhalt dieser Variable (und damit auch den String, der das aktuelle Datum beschreibt) zugreifen. Das kann über die Syntax $(Name_der_Variablen) (z.B. $(currentDate)) in den Attributen der verschiedenen Knoten oder über rc.lookup in den Skripten realisiert werden.
Der komplette Prozeduraufuf sieht dann so aus:
Anmerkungen
- Die qfs.qft ist öffentlich. Das bedeutet, dass jeder die verschiedenen Prozeduren in dieser Suite sehen, analysieren und von ihnen lernen darf. (Sie können diese Suite über QF-Test direkt öffnen. Sie liegt im Ordner <Pfad zur QF-Test Installation>/qftest-$(version)/include/)
- Es könnte weiterhin eine gute Idee sein die Test-Suites mit Prozeduren, die sie für mehrere Testprojekte benötigen, in einem eigenen, unabhängigen Verzeichnis zu speichern. Sie können von QF-Test aus auf dieses Verzeichnis über den –libpath Kommandozeilenparameter zugreifen.