50.4 Das qf-Modul

In manchen Fällen ist kein Runcontext verfügbar, insbesondere wenn eines der in den folgenden Abschnitten beschriebenen Interfaces zur Erweiterung von QF-Test implementiert wird. Das Modul qf ermöglicht Logging auch in diesen Fällen und bietet weitere allgemein hilfreiche Methoden, die keinen Runcontext benötigen. Es folgt eine alphabetische Aufstellung aller Methoden des qf-Moduls. Sofern nicht anders angegeben sind die Methoden in Jython und Groovy sowohl für Server-Skript als auch SUT-Skript Knoten verfügbar.

Hinweis Die Groovy-Syntax für Keyword-Parameter unterscheidet sich von Jython. Groovy verwendet ':' statt '='. Dies ist besonders tückisch, weil z.B. qf.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 qf.logMessage("bla", true). Hierbei wird true aber für dontcompactify statt report verwendet. Die korrekte Version für Groovy lautet qf.logMessage("bla", report:true).

 
 
Pattern asPattern(String regexp)
Diese Methode interpretiert die Eingabe als regulären Ausdruck (vgl. "Reguläre Ausdrücke - Regexps") und liefert das entsprechende Java-Pattern-Objekt zurück. Die möglichen Eingabewerte sind in der Java-API des Pattern-Objekts definiert.
Parameter
regexpDer reguläre Ausdruck
Rückgabewert Ein Pattern-Objekt, welches für Stringvergleiche genutzt werden kann.
 
String getClassName(Object objectOrClass)
Liefert den qualifizierten Namen der Klasse eines Java-Objekts bzw. einer Java-Klasse. Hauptsächlich für Jython sinnvoll, wo das Ermitteln des Namens einer Klasse richtig lästig werden kann.
Parameter
objectOrClass Das Java-Objekts oder die Klasse, deren Name ermittelt werden soll.
Rückgabewert Der Name der Klasse oder None falls kein Java-Objekt übergeben wird.
 
Object getProperty(Object object, String name)
Liest eine Property für ein Objekt, die vorher via setProperty gesetzt wurde.
Parameter
objectDas Objekt, für das die Property gelesen werden soll.
nameDer Name der Property.
RückgabewertDer Wert der Property.
 
boolean isInstance(Object object, String className)
Diese Methode ist eine Alternative zu instanceof in Groovy oder isinstance() in Jython, die gezielt nur Namen von Klassen oder Interfaces vergleicht und so Probleme mit unterschiedlichen ClassLoadern vermeidet.
Parameter
objectDas zu prüfende Object.
className Der Name der Klasse oder des Interfaces auf das getestet wird.
Rückgabewert True, wenn das Objekt einer Instanz der angegeben Klasse ist oder das angegebene Interface implementiert.
 
void logError(String msg, boolean nowrap=false)
Schreibt eine benutzerdefinierte Fehlermeldung in das Protokoll. Falls ein Runcontext verfügbar ist wird dieser genutzt und die Meldung sofort geschrieben. Andernfalls wird sie gepuffert und bei nächster Gelegenheit in das Protokoll übernommen.
Parameter
msgDie Meldung.
nowrap Falls true werden die Zeilen der Meldung im Report nicht umgebrochen. Sinnvoll für potentiell lange Meldungen. Falls die Meldung gepuffert werden muss, hat dieser Parameter keine Wirkung.
 
void logMessage(String msg, boolean dontcompactify=false, boolean report=false, boolean nowrap=false)
Schreibt eine Meldung in das Protokoll. Falls ein Runcontext verfügbar ist wird dieser genutzt und die Meldung sofort geschrieben. Andernfalls wird sie gepuffert und bei nächster Gelegenheit in das Protokoll übernommen.
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. Falls die Meldung gepuffert werden muss, hat dieser Parameter keine Wirkung.
 
void logWarning(String msg, boolean report=true, boolean nowrap=false)
Schreibt eine benutzerdefinierte Warnmeldung in das Protokoll. Falls ein Runcontext verfügbar ist wird dieser genutzt und die Meldung sofort geschrieben. Andernfalls wird sie gepuffert und bei nächster Gelegenheit in das Protokoll übernommen.
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. Falls die Meldung gepuffert werden muss, hat dieser Parameter keine Wirkung.
 
void print(Object object, ...)
Schreibt eine Zeichenkette oder die String-Repräsentation eines Objektes in das Terminal. Sind mehrere Objekte angeben, werden deren Repräsentationen mit Leerzeichen getrennt aneinander gehängt. Im Gegensatz zu einem einfachen print-Ausdruck wird der Text nicht über die Standard-Ausgabe geleitet.
Parameter
objectDas Objekt, welches ausgegeben werden soll.
 
void println(Object object)
Schreibt eine Zeichenkette oder die String-Repräsentation eines Objektes in das Terminal und beginnt eine neue Zeile. Sind mehrere Objekte angeben, werden deren Repräsentationen mit Leerzeichen getrennt aneinander gehängt. Im Gegensatz zu einem einfachen println-Ausdruck wird der Text nicht über die Standard-Ausgabe geleitet.
Parameter
objectDas Objekt, welches ausgegeben werden soll.
 
void setProperty(Object object, String name, Object value)
Setzt eine beliebige Property für ein Objekt. Im Fall einer Swing, JavaFX, SWT oder Web Komponente wird der Wert in den Anwender-Daten via putClientProperty, setData oder setProperty gesetzt. Für alles andere kommt eine WeakHashMap zum Einsatz. In keinem Fall wird die Garbage Collection des Objekts durch die Property verhindert.
Parameter
objectDas Objekt, für das die Property gesetzt werden soll.
nameDer Name der Property.
valueDer zu setzende Wert. Null um die Property zu löschen.
 
String toString(Object object, String nullValue)
Liefert die String-Darstellung eines Objekts. Vor allem für Jython hilfreich, aber auch für Groovy dank der Default-Konvertierung von None in den leeren String hilfreich.
Parameter
objectDas zu konvertierende Objekt.
nullValueDer zu liefernde Wert falls das Objekt None ist, Default ist der leere String.
Rückgabewert Jython 8-bit oder Unicode-Strings werden unverändert zurückgegeben, Java-Objekte werden via toString in einen String verwandelt. In Jython wird alles andere in einen 8-bit Jython-String konvertiert.
 
VariableData wrapObject(Object value, String stringValue, String description)

Verpackt ein Objekt in einen Datencontainer, um das Objektverhalten beim Speichern als QF-Test Variable, Ressource oder Property weiter zu definieren.

Parameter
valueDas zu verpackende Objekt, wie es von rc.getObj() zurückgegeben wird.
stringValueOptionale Text-Representation des Objekts, wie sie z.B. von rc.getStr() zurückgegeben wird.
descriptionOptionale Beschreibung des Objekts (sichtbar in Protokollen und Stack-Traces).
Rückgabewert Das Objekt verpackt in einer VariableData-Instanz.