50.2 Das rc-Modul: Die API des Runcontexts

Das Runcontext-Objekt rc ist die Schnittstelle zum Ausführungszustand des laufenden Tests in QF-Test. Die Verwendung einer zusätzlichen Schicht erlaubt Änderungen an der Implementierung von QF-Test, ohne die Schnittstelle für Skripte zu gefährden.

Es folgt eine alphabetische Aufstellung aller Methoden des Runcontext-Objekts rc. Die verwendete Syntax ist ein Gemisch aus Java und Python. Python unterstützt zwar selbst keine statische Typisierung, die Parameter werden jedoch an Java weitergereicht, so dass falsche Typen Exceptions auslösen können. Folgt einem Parameter ein '='-Zeichen und ein Wert, ist dies der Defaultwert des Parameters und eine Angabe beim Aufruf ist optional.

Hinweis Die Groovy-Syntax für Keyword-Parameter unterscheidet sich von Jython. Groovy verwendet ':' statt '='. Dies ist besonders tückisch, weil z.B. rc.logMessage("bla", report=true) durchaus legaler Groovy-Code ist, der allerdings nicht den gewünschten Effekt hat. Das '=' ist hierbei eine Zuweisung mit dem Wert true, der dann ganz einfach als zweiter Parameter übergeben wird, so dass der Aufruf äquivalent ist zu rc.logMessage("bla", true). Hierbei wird true aber für dontcompactify statt report verwendet. Die korrekte Version für Groovy lautet rc.logMessage("bla", report:true).

 
 
void addDaemonLog(byte[] data, String name=None, String comment=None, String externalizename=None)
Fügt ein von einem DaemonRunContext abgeholtes Protokoll in das aktuelle Protokoll ein.
Parameter
data Das Bytearray, das mittels DaemonRunContext.getRunLog() abgeholt wurde.
name Ein optionaler Name für den Knoten des Daemon-Protokolls. Falls nicht angegeben wird die ID des Daemon verwendet.
comment Ein optionaler Kommentar für den Knoten des Daemon-Protokolls.
externalizename Ein optionaler Name zum extrahieren des Daemon-Protokolls, um es als Teil eines geteilten Protokolls zu speichern.
 
void addResetListener(ResetListener listener)
Nur Server. Registriert einen ResetListener beim aktuellen Runcontext.
Parameter
listener Den Listener der registriert werden soll. Der Listener sollte das Interface de.qfs.apps.qftest.extensions.qftest.ResetListener implementieren.
 
void addTestRunListener(TestRunListener listener)
Registriert einen TestRunListener beim aktuellen Runcontext. Im interaktiven Modus und im Batchmodus gibt es nur einen gemeinsamen Runcontext, so dass der Listener so lange aktiv bleibt, bis er via removeTestRunListener oder clearTestRunListeners entfernt wird. Im Daemonmodus hat jeder DaemonRunContext seinen eigenen Satz von TestRunListenern. Details zum TestRunListener API finden Sie in "Listener für den aktuellen Testlauf".
Parameter
listener Der zu registrierende Listener.
 
String callProcedure(String name, Map parameters=None)

Ruft eine Prozedur in einer Testsuite auf.

Hinweis Diese Methode kann auch aus einem SUT-Skript aufgerufen werden. Dabei können allerdings seltsame Seiteneffekte auftreten, da das Skript im AWT Event Dispatch Thread ausgeführt wird. Obwohl QF-Test diese Effekte sauber abfängt, sollten Sie, wann immer möglich, Prozeduren aus einem Server-Skript heraus aufrufen.

Parameter
name Der vollständige Name der Prozedur.
parameters Die Parameter für die Prozedur, ein Dictionary. Die Schlüssel und Werte können beliebige Objekte sein. Diese werden beim Aufruf in Zeichenketten umgewandelt.
RückgabewertDer von der Prozedur mittels eines optionalen Return Knotens zurückgegebene Wert.
 
int callTest(String name, Map parameters=None)

Nur Server. Ruft einen Testfall oder Testfallsatz aus einer Testsuite oder eine ganze Testsuite auf.

Parameter
name Der vollständige Name des Testfall oder Testfallsatz.
parameters Die Parameter für den aufzurufenden Knoten, ein Dictionary. Die Schlüssel und Werte können beliebige Objekte sein. Diese werden beim Aufruf in Zeichenketten umgewandelt.
RückgabewertDer Status der Testausführung. Entweder rc.OK, rc.WARNING, rc.ERROR, rc.EXCEPTION, rc.SKIPPED oder rc.NOT_IMPLEMENTED.
 
int callTestAsProcedure(String name, Map parameters=None)

Nur Server. Ruft einen Testfall, Testfallsatz aus einer Testsuite oder eine ganze Testsuite auf, allerdings analog zu einen Prozeduraufruf, so dass eine unbehandelte Exception den gesamten Aufruf beendet und nicht nur den gerade ausgeführten Testfall.

Parameter
name Der vollständige Name des Testfall oder Testfallsatz.
parameters Die Parameter für den aufzurufenden Knoten, ein Dictionary. Die Schlüssel und Werte können beliebige Objekte sein. Diese werden beim Aufruf in Zeichenketten umgewandelt.
RückgabewertDer Status der Testausführung. Entweder rc.OK, rc.WARNING, rc.ERROR, rc.EXCEPTION, rc.SKIPPED oder rc.NOT_IMPLEMENTED.
 
Boolean check(boolean condition, String message, int level=rc.ERROR, boolean report=true, boolean nowrap=false)

Prüft, ob eine Bedingung zutrifft und gibt eine entsprechende Meldung aus.

Parameter
condition Die zu überprüfende Bedingung.
message Die Meldung, die ausgegeben werden soll. Abhängig vom Ergebnis wird "Check OK: " oder "Check fehlgeschlagen: " vorangestellt. Für den alten XML- oder HTML-Report wird die Meldung wie ein Check-Knoten behandelt, wenn sie mit einem '!' beginnt.
level

Die Gewichtung des Fehlers, falls der Check fehlschlägt. Die folgenden Konstanten sind hierfür im Runcontext definiert:

  • rc.OK
  • rc.WARNING
  • rc.ERROR
  • rc.EXCEPTION

Für die Stufe rc.EXCEPTION wird im Fehlerfall eine UserException geworfen.

report Fall true wird der Check im Report aufgeführt. Nur anwendbar wenn level <= rc.WARNING.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
RückgabewertDas Ergebnis des Checks.
 
Boolean checkEqual(Object actual, Object expected, String message, int level=rc.ERROR, boolean report=true, boolean nowrap=false)

Prüft, ob ein Objekt einen vorgegebenen Wert hat und gibt eine entsprechende Meldung aus.

Parameter
actual Der tatsächliche Wert.
expected Der erwartete Wert.
message Die Meldung, die ausgegeben werden soll. Abhängig vom Ergebnis wird "Check OK: " oder "Check fehlgeschlagen: " vorangestellt. Im Fehlerfall werden auch der erwartete und der tatsächliche Wert ausgegeben.
level

Die Gewichtung des Fehlers, falls der Check fehlschlägt. Die folgenden Konstanten sind hierfür im Runcontext definiert:

  • rc.OK
  • rc.WARNING
  • rc.ERROR
  • rc.EXCEPTION

Für die Stufe rc.EXCEPTION wird im Fehlerfall eine UserException geworfen.

report Fall true wird der Check im Report aufgeführt. Nur anwendbar wenn level <= rc.WARNING.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
RückgabewertDas Ergebnis des Checks.
 
Boolean checkImage(ImageRep actual, ImageRep expected, String message, int level=rc.ERROR, boolean report=true, boolean nowrap=false)

Prüft, ob zwei ImageRep (siehe "Die ImageRep Klasse") Objekte gleich sind und gibt eine entsprechende Meldung aus. Der Vergleich wird mittels der equals Methode des ImageComparator (siehe "Das ImageComparator Interface") Objektes des erwarteten ImageRep Objektes durchgeführt.

Parameter
actual Das aktuelle ImageRep Objekt.
expected Das erwartete ImageRep Objekt.
message Die Meldung, die ausgegeben werden soll. Abhängig vom Ergebnis wird "Check OK: " oder "Check fehlgeschlagen: " vorangestellt. Im Fehlerfall werden auch der erwartete und der tatsächliche Wert ausgegeben. Für den alten XML- oder HTML-Report wird die Meldung wie ein Check-Knoten behandelt, wenn sie mit einem '!' beginnt.
level

Die Gewichtung des Fehlers, falls der Check fehlschlägt. Die folgenden Konstanten sind hierfür im Runcontext definiert:

  • rc.OK
  • rc.WARNING
  • rc.ERROR
  • rc.EXCEPTION

Für die Stufe rc.EXCEPTION wird im Fehlerfall eine UserException geworfen.

report Fall true wird der Check im Report aufgeführt. Nur anwendbar wenn level <= rc.WARNING.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
RückgabewertDas Ergebnis des Checks.
 
Object[] checkImageAdvanced(ImageRep actual, ImageRep expected, String message, String algorithm, int level=rc.ERROR, boolean report=true, boolean nowrap=false)

Prüft, ob zwei ImageRep (siehe "Die ImageRep Klasse") Objekte gleich sind und gibt eine entsprechende Meldung aus. Der Vergleich wird mittels des angegebenen Algorithmus durchgeführt.

Parameter
actual Das aktuelle ImageRep Objekt.
expected Das erwartete ImageRep Objekt.
message Die Meldung, die ausgegeben werden soll. Abhängig vom Ergebnis wird "Check OK: " oder "Check fehlgeschlagen: " vorangestellt. Im Fehlerfall werden auch der erwartete und der tatsächliche Wert ausgegeben. Für den alten XML- oder HTML-Report wird die Meldung wie ein Check-Knoten behandelt, wenn sie mit einem '!' beginnt.
algorithm Spezifiziert den für den Vergleich zu nutzenden Algorithmus wie in "Details des Algorithmus zum Bildvergleich" beschrieben.
level

Die Gewichtung des Fehlers, falls der Check fehlschlägt. Die folgenden Konstanten sind hierfür im Runcontext definiert:

  • rc.OK
  • rc.WARNING
  • rc.ERROR
  • rc.EXCEPTION

Für die Stufe rc.EXCEPTION wird im Fehlerfall eine UserException geworfen.

report Fall true wird der Check im Report aufgeführt. Nur anwendbar wenn level <= rc.WARNING.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
RückgabewertEin Array mit dem Inhalt:
Das Ergebnis des Checks als Boolean.
Das Ergebnis des Checks als Wahrscheinlichkeit der Übereinstimmung.
Abhängig vom Algorithmus das transformierte Bild des erwarteten Abbildes als ImageRep.
Abhängig vom Algorithmus das transformierte Bild des erhaltenen Abbildes als ImageRep.
Gegebenenfalls weitere Informationen.
 
void clearGlobals()

Nur Server. Löscht alle globalen Variablen.

 
void clearProperties(String group)

Nur Server. Löscht einen Satz von geladenen Properties oder Ressourcen.

Parameter
groupDer Name der Gruppe von Properties oder Ressourcen.
 
void clearTestRunListeners()
Entfernt alle TestRunListener aus dem aktuellen Runcontext.
 
String expand(String text)

Expandiert eine Zeichenkette unter Verwendung der üblichen QF-Test Variablensyntax für $(...) oder ${...:...}.

Hinweis Denken Sie daran, die '$'-Zeichen zu verdoppeln, damit die Expansion nicht bereits vor dem Aufruf des Skripts geschieht (vgl. "Schützen von Sonderzeichen (quoting)").

Parameter
text Der zu expandierende Text.
RückgabewertDer expandierte Text.
 
Object fromServer(String name)

Nur SUT. Ermittelt den Wert einer globalen Variablen im Jython- oder Groovy-Interpreter von QF-Test. Von einem Groovy-SUT-Skript können Sie somit zum Beispiel den Wert einer globale Variable des Groovy-Interpreters von QF-Test auslesen. Wenn die Variable nicht definiert ist, wird ein KeyError geworfen.

Parameter
name Der Name der Variablen.
RückgabewertDer Wert der Variablen.
 
Object fromSUT(String client, String name)

Nur Server. Ermittelt den Wert einer globalen Variablen im Jython- oder GroovyInterpreter des SUT. Von einem Groovy-Server-Skript können Sie somit zum Beispiel den Wert einer globale Variable des SUT Groovy-Interpreters auslesen. Wenn die Variable nicht definiert ist, wird ein KeyError geworfen.

Parameter
client Der Name des SUT Clients.
name Der Name der Variablen.
RückgabewertDer Wert der Variablen.
 
Boolean getBool(String varname)
Ermittelt den Wert einer QF-Test Variable, vergleichbar mit $(varname), und interpretiert ihn als Boolean.
Parameter
varnameDer Name der Variable.
RückgabewertDer Wert der Variable.
 
Boolean getBool(String group, String name)
Ermittelt den Wert einer QF-Test Ressource oder Property, vergleichbar mit ${group:name}, und interpretiert ihn als Boolean.
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
RückgabewertDer Wert der Ressource oder Property.
 
Exception getCaughtException()

Nur Server. Wird das Skript unterhalb eines Catch Knotens ausgeführt, liefert diese Methode die darin gefangene Exception. In allen anderen Fällen ist der Rückgabewert None.

RückgabewertDie gefangene Exception.
 
Component getComponent(String id, int timeout=0, boolean hidden=false)
Nur SUT. Ermittelt eine Komponente oder ein Unterelement mit Hilfe von QF-Tests Algorithmus zur Wiedererkennung.
Parameter
id Die QF-Test ID des Komponente Knotens, der die Komponente in der Testsuite repräsentiert.
timeout Dieser Parameter wird ignoriert und ist immer 0 für SUT-Skripte, die auf dem Event Dispatch Thread der jeweiligen GUI-Engine ausgeführt werden, da dieser Thread nicht auf sichere weise freigegeben werden kann, um auf die Komponente zu warten.
hidden Legt fest, ob auch nach unsichtbaren Komponenten gesucht wird, was z.B. für Menüeinträge sinnvoll ist.
RückgabewertDie tatsächliche Java-Komponente. Für Unterelemente wird ein Paar der Form (component, index) zurückgeliefert, wobei der Typ von index von der Art des Unterelements abhängt. Für Baumknoten ist index ein javax.swing.tree.TreePath Objekt, für Zellen von Tabellen ein Paar der Form (row, column) und ansonsten ein Integer Wert. Hinweis Spaltenindizes werden immer im Bezugssystem der Tabelle zurückgeliefert, nicht im Bezugssystem des Modells.
 
List getConnectedClients()
Liefert die Namen der aktuell verbundenen SUT-Clients.
Rückgabewert Eine Liste mit den Namen der aktuell verbundenen SUT-Clients, eine leere Liste, falls es keine gibt.
 
Map getGlobalObjects()

Liefert die globalen Variablen des aktuellen Runcontexts.

Bei der Verarbeitung der gelieferten Objekte ist zu beachten, dass die Eigenschaften und Methoden der Objekte auch davon abhängig sind, mit welchem Skriptinterpreter die Objekte erstellt wurden.

RückgabewertDie globalen Variablen des aktuellen Runcontexts.
 
Properties getGlobals()

Liefert die globalen Variablen des aktuellen Runcontexts mit ihren Werten als Strings.

RückgabewertDie globalen Variablen des aktuellen Runcontexts mit ihren Werten als Strings.
 
Map getGroupObjects(String group)

9.0+ Liefert einen Satz von geladenen Properties oder Ressourcen.

Bei der Verarbeitung der gelieferten Objekte ist zu beachten, dass die Eigenschaften und Methoden der Objekte auch davon abhängig sind, mit welchem Skriptinterpreter die Objekte erstellt wurden.

Parameter
groupDer Name der Gruppe von Properties oder Ressourcen.
Rückgabewert Die für die angegebene Gruppe gebundenen Variablen oder None falls keine solche Gruppe existiert.
 
Integer getInt(String varname)
Ermittelt den Wert einer QF-Test Variable, vergleichbar mit $(varname), und interpretiert ihn als Integer.
Parameter
varnameDer Name der Variable.
RückgabewertDer Wert der Variable.
 
Integer getInt(String group, String name)
Ermittelt den Wert einer QF-Test Ressource oder Property, vergleichbar mit ${group:name}, und interpretiert ihn als Integer.
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
RückgabewertDer Wert der Ressource oder Property.
 
Object getJson(String varname, boolean expand=true)
Interpretiert den Wert der übergebenen QF-Test Variablen, vergleichbar mit $(varname), als JSON-Serialisierung und gibt diese als Objekt zurück.
Parameter
varnameDer Name der Variablen.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDas durch Deserialisierung des Variablenwertes erhaltene Objekt.
 
Object getJson(String group, String name, boolean expand=true)
Interpretiert den Wert der übergebenen QF-Test Ressource oder Property, vergleichbar mit ${group:name}, als JSON-Serialisierung und gibt diese als Objekt zurück.
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDas durch Deserialisierung der Ressource oder Property erhaltene Objekt.
 
Object getLastComponent()
Nur SUT. Liefert die letzte Komponente, die von QF-Test für einen Event, einen Check oder eine sonstige Operation adressiert wurde. Ein Aufruf von rc.getComponent() hat hierauf keinen Einfluss.
RückgabewertDie letzte von QF-Test adressierte Komponente.
 
Exception getLastException()
Nur Server. Gibt die letzte Exception zurück, die während des Testlaufs geworfen wurde, unabhängig davon, ob und wie diese gefangen wurde. In den meisten Situationen ist getCaughtException die bessere Variante.
RückgabewertDie zuletzt geworfene Exception.
 
Object getLastItem()
Nur SUT. Liefert das letzte Unterelement, das von QF-Test für einen Event, einen Check oder eine sonstige Operation adressiert wurde. Ein Aufruf von rc.getComponent() hat hierauf keinen Einfluss.
RückgabewertDas letzte von QF-Test adressierte Unterelement.
 
Map getLocalObjects(nonEmpty=false)

9.0+ Liefert die innersten lokalen Variablen des aktuellen Runcontexts oder innerhalb einer Prozedur die Parameter der Aufrufs, wenn zuvor keine lokalen Variablen in der Prozedur gesetzt wurden. Dann kann die Methode mit nonEmpty=true in einer Prozedur genutzt werden, um die Parameter der Aufrufs zu erhalten, vergleichbar mit Keyword-Argumenten in Jython oder Groovy.

In der interaktiven Testausführung sind diese Variablen im Debugging-Modus gut zu erkennen: Im unteren (rechten) Bereich des QF-Test Fensters wird dann die Tabelle mit den Variablendefinitionen angezeigt. Die zurückgegeben innersten Variablen befinden sich bei nonEmpty=false immer in der obersten Zeile der Tabelle und bei nonEmpty=true in der ersten Zeile von oben, bei der die Anzahl der Definitionen ungleich null ist, oder es sich um einen Prozeduraufruf handelt.

Bei der Verarbeitung der gelieferten Objekte ist zu beachten, dass die Eigenschaften und Methoden der Objekte auch davon abhängig sind, mit welchem Skriptinterpreter die Objekte erstellt wurden.

Parameter
nonEmpty Falls true, wird der erste nicht-leere Satz von Variablen geliefert, andernfalls immer der innerste Satz, auch wenn dieser leer ist.
RückgabewertDie innersten lokalen Variablen des aktuellen Runcontexts.
 
Properties getLocals(nonEmpty=false)

Liefert die innersten lokalen Variablen des aktuellen Runcontexts oder innerhalb einer Prozedur die Parameter der Aufrufs, wenn zuvor keine lokalen Variablen in der Prozedur gesetzt wurden. Dann kann die Methode mit nonEmpty=true in einer Prozedur genutzt werden, um die Parameter der Aufrufs zu erhalten, ähnlich wie getLocalObjects. Die Werte werden als Strings geliefert.

In der interaktiven Testausführung sind diese Variablen im Debugging-Modus gut zu erkennen: Im unteren (rechten) Bereich des QF-Test Fensters wird dann die Tabelle mit den Variablendefinitionen angezeigt. Die zurückgegeben innersten Variablen befinden sich bei nonEmpty=false immer in der obersten Zeile der Tabelle und bei nonEmpty=true in der ersten Zeile von oben, bei der die Anzahl der Definitionen ungleich null ist, oder es sich um einen Prozeduraufruf handelt.

Parameter
nonEmpty Falls true, wird der erste nicht-leere Satz von Variablen geliefert, andernfalls immer der innerste Satz, auch wenn dieser leer ist.
RückgabewertDie innersten lokalen Variablen des aktuellen Runcontexts als Strings.
 
Number getNum(String varname)
Ermittelt den Wert einer QF-Test Variable, vergleichbar mit $(varname), und interpretiert ihn als Zahl, d.h als int oder float für Jython bzw. Integer oder BigDecimal für Groovy.
Parameter
varnameDer Name der Variable.
RückgabewertDer Wert der Variable.
 
Number getNum(String group, String name)
Ermittelt den Wert einer QF-Test Ressource oder Property, vergleichbar mit ${group:name}, und interpretiert ihn als Zahl, d.h als int oder float für Jython bzw. Integer oder BigDecimal für Groovy.
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
RückgabewertDer Wert der Ressource oder Property.
 
Object getObj(String varname, boolean expand=true)

9.0+ Ermittelt den Wert einer QF-Test Ressource oder Property, vergleichbar mit $(varname), und gibt das in der Property gespeicherte Objekt zurück.

Bei der Verarbeitung der gelieferten Objekte ist zu beachten, dass die Eigenschaften und Methoden der Objekte auch davon abhängig sind, mit welchem Skriptinterpreter die Objekte erstellt wurden.

Parameter
varnameDer Name der Variable.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDer Objekt-Wert der Variable.
 
Object getObj(String group, String name, boolean expand=true)

9.0+ Ermittelt den Wert einer QF-Test Ressource oder Property, vergleichbar mit ${group:name}, und gibt das in der Property gespeicherte Objekt zurück.

Bei der Verarbeitung der gelieferten Objekte ist zu beachten, dass die Eigenschaften und Methoden der Objekte auch davon abhängig sind, mit welchem Skriptinterpreter die Objekte erstellt wurden.

Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDer Objekt-Wert der Ressource oder Property.
 
Object getOption(String name)
Liest den Wert einer Option zur Laufzeit. Diese Methode ist eher der vollständigkeit halber vorhanden, Sie werden diese vermutlich nicht brauchen. Für den naheliegenden Anwendungsfall, den Wert einer Option nach einer Änderung mittels setOption wieder zurückzusetzen, sollten Sie stattdessen unsetOption verwenden, da auf Skript-Ebene gesetzte Optionen den interaktiv im Optionen-Dialog eingestellten Wert verdecken. Für temporäre Änderungen einer Option ist pushOption / popOption am besten geeignet.
Parameter
nameDer Name der Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gelesen werden können, sind in "Einstellungen" dokumentiert.
Rückgabewert Der aktuelle Wert der Option.
 
Object getOverrideElement(String id)
Nur SUT. Liefert die überschriebene Zielkomponente für die angegebene ID.
Parameter
idDie QF-Test ID oder SmartID, für welche die Komponente überschrieben wurde.
RückgabewertDas vorher für die angegebene ID registrierte GUI Element. None/null wenn kein GUI Element registriert wurde oder es nicht mehr gültig ist.
 
Pattern getPattern(String varname, boolean expand=true)
Ermittelt den Wert einer QF-Test Variable und interpretiert ihn als regulären Ausdruck (vgl. "Reguläre Ausdrücke - Regexps"). Im Unterschied zu rc.getStr oder rc.getInt wird kein String oder Integer geliefert sondern ein Java-Pattern-Objekt. Beispiel für den Vergleich einer Zeichenkette mit einem vorgegebenen Muster: rc.check(rc.getPattern("myRegExp") .matcher(rc.getStr("myString")).matches(), "sample check")
Parameter
varnameDer Name der Variable.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertEin Java-Pattern-Object mit dem Wert der Variable als regulärem Ausdruck.
 
Pattern getPattern(String group, String name, boolean expand=true)
Ermittelt den Wert einer QF-Test Ressource oder Property und interpretiert ihn als regulären Ausdruck (vgl. "Reguläre Ausdrücke - Regexps"). Im Unterschied zu rc.getStr oder rc.getInt wird kein String oder Integer geliefert sondern ein Java-Pattern-Objekt. Beispiel für den Vergleich einer Zeichenkette mit einem vorgegebenen Muster: rc.check(rc.getPattern("groupname", "myRegExp") .matcher(rc.getStr("myString")).matches(), "sample check")
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertEin Java-Pattern-Object mit dem Wert der Ressource oder Property als regulärem Ausdruck.
 
Properties getProperties(String group)

Liefert einen Satz von geladenen Properties oder Ressourcen mit ihren Werten als Strings.

Parameter
groupDer Name der Gruppe von Properties oder Ressourcen.
Rückgabewert Die für die angegebene Gruppe gebundenen Variablen mit ihren Werten als Strings oder None falls keine solche Gruppe existiert.
 
String getPropertyGroupNames()
Listet alle benutzerdefinierten Propertygruppen auf. Die Rückgabe ist alphabetisch sortiert.
Rückgabewert Eine Zeichenkette welche alle vom benutzerdefinierten Propertygruppen auflistet. Die Namen der definierten Propertygruppen sind alphabetisch sortiert und durch Zeilenumbrüche getrennt.
 
String getStr(String varname, boolean expand=true)
Ermittelt den Wert einer QF-Test Variable und interpretiert ihn als Zeichenkette. In Jython-Skripten hat es gegenüber $(varname) den Vorteil, dass keine Probleme mit '\u'-Sequenzen auftreten, die Jython als Unicode-Zeichen zu interpretieren versucht und sich beschwert, wenn die Syntax nicht stimmt (siehe auch Jython Strings und Zeichenkodierung).
Parameter
varnameDer Name der Variable.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDer Wert der Variable als String.
 
String getStr(String group, String name, boolean expand=true)
Ermittelt den Wert einer QF-Test Ressource oder Property, und interpretiert ihn als Zeichenkette. In Jython-Skripten hat es gegenüber ${group:name} den Vorteil, dass keine Probleme mit '\u'-Sequenzen auftreten, die Jython als Unicode-Zeichen zu interpretieren versucht und sich beschwert, wenn die Syntax nicht stimmt (siehe auch Jython Strings und Zeichenkodierung).
Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertDer Wert der Ressource oder Property als String.
 
VariableData getWrapped(String name, boolean expand=true)

Gibt das Wrapper-Objekt einer QF-Test Variable vom Typ VariableData zurück. Dieses Enthält neben dem tatsächlichen Objektwert der Variable zusätzlich Informationen über deren Verschlüsselungsstatus und Serialisierungsunterstützung.

Verwenden Sie diese Methode, wenn Sie eine verschlüsselte Variable innerhalb eines Skripts weiterreichen möchten, ohne dass diese dabei entschlüsselt wird.

Parameter
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertWrapper-Objekt der Ressource oder Property als VariableData.
 
VariableData getWrapped(String group, String name, boolean expand=true)

Gibt das Wrapper-Objekt einer QF-Test Variable vom Typ VariableData zurück. Dieses Enthält neben dem tatsächlichen Objektwert der Variable zusätzlich Informationen über deren Verschlüsselungsstatus und Serialisierungsunterstützung.

Verwenden Sie diese Methode, wenn Sie eine verschlüsselte Variable innerhalb eines Skripts weiterreichen möchten, ohne dass diese dabei entschlüsselt wird.

Parameter
groupDer Name der Gruppe.
nameDer Name der Ressource oder Property.
expandLegt fest, ob die Variable rekursiv expandiert werden soll, siehe Der Parameter expand.
RückgabewertWrapper-Objekt der Ressource oder Property als VariableData.
 
String id(String id)
Liefert die QF-Test ID der angegebenen Komponente zurück, also immer den Parameter selbst. Diese Methode sollte in Skripten zur Kennzeichnung von QF-Test IDs verwendet werden, so dass diese Referenzen nach Verschieben bzw. Änderung der verwendeten QF-Test IDs angepasst werden können.
Parameter
idDie QF-Test ID der Komponente.
RückgabewertDie QF-Test ID der Komponente.
 
boolean isOptionSet(String name)
Prüft, ob eine Option per Skript gesetzt wurde.
Parameter
nameDer Name der Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gelesen werden können, sind in "Einstellungen" dokumentiert.
Rückgabewert True falls die Option gesetzt wurde, andernfalls false.
 
boolean isResetListenerRegistered(ResetListener listener)
Nur Server. Überprüft, ob ein ResetListener registriert wurde.
Parameter
listener Den zu überprüfenden ResetListener.
Rückgabewert True wenn der ResetListener registriert wurde, sonst False.
 
void logDiagnostics(String client)
Nur Server. Schreibt Event-Informationen, die für eine mögliche Fehlerdiagnose im SUT Client zwischengespeichert wurden, in das Protokoll.
Parameter
clientDer Name des SUT Clients, von dem die Informationen abgeholt werden sollen.
 
void logError(String msg, boolean nowrap=false)
Schreibt eine benutzerdefinierte Fehlermeldung in das Protokoll.
Parameter
msgDie Meldung.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
 
void logImage(ImageRep image, String title=None, boolean dontcompactify=false, boolean report=false)
Schreibt ein ImageRep ("Die ImageRep Klasse") Objekt in das Protokoll.
Parameter
title Ein optionaler Titel für das Abbild.
imageDas ImageRep Objekt.
dontcompactify Falls true wird das Abbild nicht aus kompakten Protokollen entfernt.
report Falls true wird das Abbild im Report angezeigt (impliziert dontcompactify).
 
void logMessage(String msg, boolean dontcompactify=false, boolean report=false, boolean nowrap=false)
Schreibt eine Meldung in das Protokoll.
Parameter
msgDie Meldung.
dontcompactifyFalls true wird die Meldung nicht aus kompakten Protokollen entfernt
report Falls true wird die Meldung im Report aufgeführt.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
 
void logWarning(String msg, boolean report=true, boolean nowrap=false)
Schreibt eine benutzerdefinierte Warnmeldung in das Protokoll.
Parameter
msgDie Meldung.
report Falls true (default) wird die Warnung im Report aufgeführt. Sie können diese spezielle Warnung vom Report ausschließen, indem Sie diesen Parameter auf false setzen.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen.
 
void overrideElement(String id, Component com)
Nur SUT. Überschreibt die Zielkomponente für die Wiedererkennung eines GUI Elements mit der angegebenen ID. Bei einem Zugriff auf diese QF-Test ID oder SmartID ignoriert QF-Test alle zugehörigen Informationen und verwendet direkt das registrierte Element.
Ungültig gewordene Komponenten werden automatisch deregistriert.
Parameter
idDie QF-Test ID oder SmartID der zu überschreibenden Komponente.
com Die Komponente, welche angesprochen werden soll. None/null um zum normalen Mechanismus zurückzukehren.
 
void popOption(String name)

Negiert einen vorangegangen pushOption Aufruf.

Parameter
nameDer Name der zurückzusetzenden Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gesetzt werden können, sind in "Einstellungen" dokumentiert.
 
void pushOption(String name, object value)

Der Aufruf setzt den Wert einer Option zur Laufzeit, analog zu setOption. Im Gegensatz zu letzterem wird für jeden verschachtelten Aufruf der ursprüngliche Wert gespeichert, um mittels popOption wiederhergestellt zu werden. Die pushOption und popOption Aufrufe, die am besten in einer Try / Finally Kombination genutzt werden, sind ideal für Prozeduren geeignet, um eine Option temporär auf einen bestimmten Wert zu setzen, ohne einen eventuell früher erfolgten setOption Aufruf zu negieren.

Parameter
nameDer Name der Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gesetzt werden können, sind in "Einstellungen" dokumentiert.
value Der zu setzende Wert, üblicherweise ein Boolean, eine Zahl oder eine Konstante aus der Options Klasse für solche Optionen, die über eine Auswahlliste gesetzt werden. Für Optionen wie den Hotkey für Wiedergabe unterbrechen ("Keine Panik"-Taste), deren Wert ein Tastenkürzel ist, muss diese Kürzel als Text wie "F12" oder "Shift-F6" angegeben werden. Mögliche Modifier sind "Shift", "Control" oder "Ctrl", "Alt" und "Meta", sowie deren Kombinationen. Der angegebenen Taste wird ein "VK_" vorangestellt und ihr Wert dann der Klasse java.awt.event.KeyEvent entnommen. Groß-/Kleinschreibung ist für beide irrelevant, so dass auch "shift-alt-enter" funktioniert.
 
void removeResetListener(ResetListener listener)
Nur Server. Entfernt einen ResetListener.
Parameter
listener Den zu entfernenden ResetListener.
 
void removeTestRunListener(TestRunListener listener)
Entfernt einen TestRunListener aus dem aktuellen Runcontext.
Parameter
listener Der zu entfernende Listener.
 
void resetDependencies(String namespace=None)
Setzt den Stapel von Abhängigkeiten zurück, ohne Aufräumsequenzen auszuführen.
Parameter
namespace Ein optionaler Namensraum für die Abhängigkeiten.
 
void resolveDependency(String dependency, String namespace=None, Map parameters=None)
Löst eine Abhängigkeit auf.
Parameter
dependency Der vollständige Name der Abhängigkeit.
namespace Ein optionaler Namensraum für die Abhängigkeit.
parameters Die Parameter für die Abhängigkeit, ein Dictionary. Die Schlüssel und Werte können beliebige Objekte sein. Diese werden beim Aufruf in Zeichenketten umgewandelt.
 
void returnValue(object value)
9.0+Bricht die Ausführung einer Prozedur ab und gibt den angegebenen Wert zurück.
Parameter
value Ein beliebiger Wert für die Variable. HinweisWird der Wert aus einem SUT-Skript zurückgegeben, so wird das Objekt serialisiert. Wenn dies mehr als 25 MB Speicherplatz beansprucht wird an Stelle des Objektes sein String übergeben.
 
void rollbackAllDependencies()
Baut die Stapel von Abhängigkeiten aus allen Namensräumen ab. Dies geschieht in der umgekehrten Reihenfolge wie sie erstmalig angelegt wurden, mit der Ausnahme, dass der Stapel aus dem allgemeinen Namensraum immer zuletzt abgebaut wird.
 
void rollbackDependencies(String namespace=None)
Baut den Stapel von Abhängigkeiten ab.
Parameter
namespace Ein optionaler Namensraum für die Abhängigkeiten.
 
void setGlobal(String name, object value)
Definiert eine globale QF-Test Variable.
Parameter
nameDer Name der Variable.
value Ein beliebiger Wert für die Variable. Der Wert None führt zum Löschen der Variablen. HinweisBeim Zugriff auf die Variable aus einem SUT-Skript wird das Objekt serialisiert. Wenn dies mehr als 25 MB Speicherplatz beansprucht wird an Stelle des Objektes sein String übergeben.
 
void setGlobalJson(String name, Object value)
Definiert eine globale QF-Test Variable, wobei das übergebene Objekt zu einem JSON-String serialisiert wird.
Parameter
nameDer Name der Variable.
value Ein beliebiger Wert für die Variable. Er wird automatisch in eine JSON-Zeichenkette konvertiert. Der Wert None führt zum Löschen der Variablen.
 
void setGroupObject(String group, String name, Object value)
9.0+Setzt den Wert eines Objektes (Ressource oder Property) in einer Gruppe.
Parameter
group Der Name der Gruppe. Falls noch nicht vorhanden wird die Gruppe neu angelegt.
nameDer Name des Objekts (Ressource oder Property).
value Ein beliebiger Wert für das Gruppenobjekt (die "Property"). Der Wert None führt zum Löschen des Objekts.
Hinweis Diese Methode funktioniert auch für die speziellen Gruppen 'env' und 'system'. Auf diesem Weg können Environment-Variablen oder System-Properties definiert werden. Werte in anderen speziellen Gruppen (zum Beispiel 'qftest') können meist nicht überschrieben werden. In diesem Fall wird dann eine ReadOnlyPropertyException geworfen.
Hinweis Alias von setProperty.
 
void setLocal(String name, Object value)
Definiert eine lokale QF-Test Variable.
Parameter
nameDer Name der Variable.
value Ein beliebiger Wert für die Variable. Der Wert None führt zum Löschen der Variablen. HinweisBeim Zugriff auf die Variable aus einem SUT-Skript wird das Objekt serialisiert. Wenn dies mehr als 25 MB Speicherplatz beansprucht wird an Stelle des Objektes sein String übergeben.
 
void setLocalJson(String name, Object value)
Definiert eine lokale QF-Test Variable, wobei das übergebene Objekt zu einem JSON-String serialisiert wird.
Parameter
nameDer Name der Variable.
value Ein beliebiger Wert für die Variable. Er wird automatisch in eine JSON-Zeichenkette konvertiert. Der Wert None führt zum Löschen der Variablen.
 
void setOption(String name, object value)

Setzt den Wert einer Option zur Laufzeit. Dieser Wert hat Vorrang vor dem Wert, der aus der Konfigurationsdatei gelesen oder im Optionen-Dialog eingestellt wurde und wird selbst weder im Dialog angezeigt, noch in eine Konfigurationsdatei gespeichert. Der ursprüngliche Wert aus der Konfiguration kann via unsetOption wieder hergestellt werden. Der Wert eines eventuell vorhergegangenen Aufrufs von setOption wird dagegen überschrieben. Soll dieser nicht verloren gehen, muss stattdessen pushOption / popOption verwendet werden.

Parameter
nameDer Name der Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gesetzt werden können, sind in "Einstellungen" dokumentiert.
value Der zu setzende Wert, üblicherweise ein Boolean, eine Zahl oder eine Konstante aus der Options Klasse für solche Optionen, die über eine Auswahlliste gesetzt werden. Für Optionen wie den Hotkey für Wiedergabe unterbrechen ("Keine Panik"-Taste), deren Wert ein Tastenkürzel ist, muss diese Kürzel als Text wie "F12" oder "Shift-F6" angegeben werden. Mögliche Modifier sind "Shift", "Control" oder "Ctrl", "Alt" und "Meta", sowie deren Kombinationen. Der angegebenen Taste wird ein "VK_" vorangestellt und ihr Wert dann der Klasse java.awt.event.KeyEvent entnommen. Groß-/Kleinschreibung ist für beide irrelevant, so dass auch "shift-alt-enter" funktioniert.
 
void setProperty(String group, String name, object value)
Setzt den Wert einer Ressource oder Property in einer Gruppe.
Parameter
group Der Name der Gruppe. Falls noch nicht vorhanden wird die Gruppe neu angelegt.
nameDer Name der Ressource oder Property.
value Ein beliebiger Wert für die Property. Der Wert None führt zum Löschen der Property.
Hinweis Diese Methode funktioniert auch für die speziellen Gruppen 'env' und 'system'. Auf diesem Weg können Environment-Variablen oder System-Properties definiert werden. Werte in anderen speziellen Gruppen (zum Beispiel 'qftest') können meist nicht überschrieben werden. In diesem Fall wird dann eine ReadOnlyPropertyException geworfen.
 
void skipTestCase()
Beendet die Ausführung des aktuellen Testfalls und markiert diesen als übersprungen.
 
void skipTestSet()
Beendet die Ausführung des aktuellen Testfallsatzes und markiert diesen als übersprungen.
 
void stopTest()
Beendet den aktuellen Testlauf.
 
void stopTestCase(boolean expectedFail=false)
Beendet die Ausführung des aktuellen Testfalls.
Parameter
expectedFailFalls true, werden eventuelle Fehler in diesem Testfall als erwartete Fehler behandelt.
 
void stopTestSet()
Beendet die Ausführung des aktuellen Testfallsatzes.
 
void syncThreads(String name, int timeout, int count=-1, boolean throw=true, int remote=0)
Nur Server. Synchronisiert eine Anzahl von parallelen Threads für Lasttests. Der aktuelle Thread wird blockiert, bis alle Threads den Synchronisationspunkt erreicht haben oder die Wartezeit überschritten wird. In letzterem Fall wird eine TestException geworfen oder ein Fehler ausgegeben.
Parameter
nameEin Identifikator für den Synchronisationspunkt.
timeoutDie maximale Wartezeit in Millisekunden.
count Die Zahl der Threads auf die gewartet wird. Standardwert -1 bedeutet alle Threads in der aktuellen QF-Test Instanz.
throw Entscheidet ob bei Überschreitung der Wartezeit eine Exception geworfen (Standard) oder eine Fehlermeldung ausgegeben wird.
remote Die Zahl der QF-Test Instanzen - eventuell auf unterschiedlichen Rechnern - die synchronisiert werden sollen. Standardwert 0 bedeutet nur interne Synchronisation.
 
void toServer(...)

Nur SUT. Setzt globale Variablen im entsprechenden Interpreter von QF-Test. Von einem Groovy-SUT-Skript können somit zum Beispiel globale Variablen im Groovy-Interpreter von QF-Test gesetzt werden.

Folgende Arten von Argumenten sind möglich:

Ein String
Dieser wird als Name einer globalen Variablen im lokalen Interpreter aufgefasst. Die Variable des selben Namens im Interpreter von QF-Test wird auf ihren Wert gesetzt.
Ein Dictionary mit String Schlüsseln
Für jeden Schlüssel im Dictionary wird einer globalen Variable dieses Namens der entsprechende Wert aus dem Dictionary zugewiesen.
Ein Keyword Argument der Form name=value
Die globale Variable namens name wird auf den Wert value gesetzt.
 
void toSUT(String client, ...)

Nur Server. Setzt globale Variablen im entsprechenden Interpreter des SUT. Von einem Groovy-Server-Skript können somit zum Beispiel globale Variablen im Groovy-Interpreter des SUT gesetzt werden.

Mit Ausnahme von client sind folgende Arten von Argumenten möglich:

Ein String
Dieser wird als Name einer globalen Variablen im lokalen Interpreter aufgefasst. Die Variable des selben Namens im Interpreter des SUT wird auf ihren Wert gesetzt.
Ein Dictionary mit String Schlüsseln
Für jeden Schlüssel im Dictionary wird einer globalen Variable dieses Namens der entsprechende Wert aus dem Dictionary zugewiesen.
Ein Keyword Argument der Form name=value
Die globale Variable namens name wird auf den Wert value gesetzt.
Parameter
client Der Name des SUT Clients.
 
void unsetOption(String name)

Stellt den ursprünglichen Wert einer Option wieder her indem der Wert aus einem vorhergehenden Aufruf von setOption gelöscht wird.

Parameter
nameDer Name der zu löschenden Option, eine Konstante aus der Klasse Options, welche in Jython- und Groovy-Skripten automatisch importiert ist. Die Namen der Optionen, die auf diese Weise gesetzt werden können, sind in "Einstellungen" dokumentiert.
 
RunContext withDefault(Object defaultResult)
9.0+Erzeugt ein neues Runcontext-Objekt, bei welchem alle lesenden Zugriffe auf Variablen bzw. Resourcen/Properties in Gruppen keine UnboundVariableException oder MissingPropertyException werfen, sondern statt dessen im Fall einer fehlenden Variable den angegebenen Standard-Wert zurückgeben. Die übrigen Methoden und Eigenschaften des rc-Objekten verhalten sich unverändert.
Parameter
defaultResultDas Objekt, welches an Stelle des nicht vorhandenen Variablen-Wertes zurückgegeben wird.
Rückgabewert Ein neues Runcontext (rc)-Objekt, welches den entsprechenden Standard-Wert für Variablen-Zugriffe gesetzt hat.
 
 

50.2.1 Der Parameter expand

Die Methoden getStr, getObj, getInt, getNum, getBool, getPattern und getJson unterstützen einen optionalen boolschen Parameter expand. Dieser legt fest, ob die Variable bei der Auswertung rekursiv expandiert werden soll, das heißt, ob eine in der String-Darstellung des Variablenwerts enthaltene Zeichenkette, die (zufällig) die QF-Test Variablensyntax $(irgendwelche_Zeichen) hat, als Variable expandiert oder als einfacher Text behandelt werden soll. Ist dieser nicht angegeben oder null, so führt QF-Test die Expansion (auch rekursiv) genau dann durch, wenn der Variablenwert ein String ist. Um Probleme zu vermeiden werden bestimmte Zeichenketten, zum Beispiel das Ergebnis eines Text auslesen Knotens, die Client-Ausgabe aus der speziellen Gruppe ${qftest:client.output.<name>} oder der Rückgabewert der Standard-Prozedur qfs.utils.readTextFromFile nicht automatisch expandiert, sondern nur, wenn der expand Parameter explizit auf true gesetzt wurde.

Wenn Sie diesen Parameter angeben wollen, ohne eine Gruppe zu spezifizieren, müssen Sie die Python Keyword Syntax verwenden, um Konflikte mit zum Beispiel der Methode getStr(String group, String name) zu vermeiden, also rc.getStr("var", expand=0) an Stelle von rc.getStr("var", 0) - andernfalls würde in der Gruppe var nach der Property 0 gesucht.

Beispiel

Wenn die QF-Test Variablen die folgenden Werte besitzen,

VariablenreferenzWert
$(simplevar)foo
$(nestedvar)Ein Wert: $(simplevar)
${group:var}Ein Wert: $(simplevar)
Tabelle 50.1:  QF-Test Variable für nachfolgendes Bespielskript

hat der Parameter expand folgende Wirkung:

print rc.getStr("nestedvar", expand=True)  # "Ein Wert: foo"
                print rc.getStr("nestedvar", expand=False) # "Ein Wert: $(simplevar)"
                print rc.getStr("group", "var", True)      # "Ein Wert: foo"
                print rc.getStr("group", "var", False)     # "Ein Wert: $(simplevar)"
Beispiel 50.4:  Verwendung des Parameters expand (Jython script)