Operatoren und Funktionen

Das Beispiel zeigt die Liste der Operatoren und Funktionen, die sich auf die in der folgenden Abbildung gezeigten Testfälle beziehen. Der Ausgang der Suche ist der Ordner Testfälle. Weitere TQL-Abfragebeispiele finden Sie in Kapitel "TQL-Praxisbeispiele".

Beispiele - Ausgangssituation

Pfeil Operatoren

->

Durchsucht die Ebene unter dem Startpunkt,

->SUBPARTS findet den Testfallordner PKW und die Testfälle PKW 1, 1 PKW, LKW und Motorrad

=>

Durchsucht alle Ebenen unter dem Startpunkt,

=>SUBPARTS findet alle Testfallordner, Testfälle, Testschritte und Testschrittwerte

Vergleichsoperatoren

==

gleich,

=>SUBPARTS:TestCase[Name=="PKW"] findet den Testfall PKW

=i=

gleich, keine Berücksichtigung von Groß-/Kleinschreibung,

=>SUBPARTS:TestCase[Name=i="pkw"] findet den Testfall PKW

!=

ungleich,

=>SUBPARTS:TestCase[Name!="PKW"] findet die Testfälle PKW 1, 1 PKW, LKW und Motorrad

!i=

ungleich, keine Berücksichtigung von Groß-/Kleinschreibung

<

kleiner,

=>SUBPARTS:XTestStepValue[(Name=="DateOfBirth")AND(Value<"01.01.1980")] findet den Testschrittwert DateOfBirth

>

größer,

=>SUBPARTS:XTestStepValue[(Name=="DateOfBirth")AND(Value>"12.12.1970")] liefert kein Ergebnis

<=

kleinergleich,

=>SUBPARTS:XTestStepValue[(Name=="DateOfBirth")AND(Value<="01.01.1980")] findet den Testschrittwert DateOfBirth

>=

größergleich,

=>SUBPARTS:XTestStepValue[(Name=="DateOfBirth")AND(Value>="12.12.1970")] findet den Testschrittwert DateOfBirth

=~

es folgt ein Ausdruck bestehend aus regulären Ausdrücken,

=>SUBPARTS:TestCase[Name=~"^PKW"] findet die Testfälle PKW und PKW 1, ^ markiert den Wortanfang

=i~

es folgt ein Ausdruck bestehend aus regulären Ausdrücken - Groß-/Kleinschreibung wird ignoriert

=?

ist der rechte Teil im linken Teil enthalten,

=>SUBPARTS:TestCase[Name=?"PKW"] findet die Testfälle PKW, PKW 1 und 1 PKW

=i?

ist der rechte Teil im linken Teil enthalten - Groß-/Kleinschreibung wird ignoriert

!?

ist der rechte Teil nicht im linken Teil enthalten,

=>SUBPARTS:TestCase[Name!?"PKW"] findet die Testfälle LKW und Motorrad

!i?

ist der rechte Teil nicht im linken Teil enthalten - Groß-/Kleinschreibung wird ignoriert

Logische Operatoren

AND

Und-Verknüpfung zweier Elemente,

=>SUBPARTS:TestCase[(Name=="PKW")AND(Name=="LKW")] liefert kein Ergebnis

OR

Oder-Verknüpfung zweier Elemente,

=>SUBPARTS:TestCase[(Name=="PKW")OR(Name=="LKW")] findet die Testfälle PKW und LKW

Mathematische Operatoren

+ , - , * , :

Addition, Subtraktion, Multiplikation und Division

Sonstige Terminal-Symbole

DIGITS

beliebige Integer-Zahlenfolge

TEXT

beliebige Buchstabenfolge, meist Element-Namen, Typenbezeichnungen oder Ähnliches

SUBPARTS

alle Kindelemente des aktuellen Elements

SUPERPART

Alle Elternelemente des aktuellen Elements

AllReferences

Kindelemente und deren Verknüpfungen des aktuellen Elements,

->AllReferences

RETURN

Die Suchfunktion liefert als Ergebnis die Elemente der Ebene vor der RETURN steht

NOT

Negation,

=>SUBPARTS:TestCase[NOT(Name=="PKW")AND(Name=="LKW")] findet alle Testfälle

Funktionen

Count(“assocname“)

liefert die Anzahl der assoziierten Elemente,

=>SUBPARTS:TestCase[Count("Items")==0] findet alle Testfälle ohne Testschritte und Testschrittordner: PKW 1, 1 PKW, LKW und Motorrad.

SELF

liefert sich selbst als Objekt

EVALCP("tcp")

Gibt den Wert eines Testkonfigurationsparameters zurück.

=>SUBPARTS:TestCase[EVALCP("Browser") == "InternetExplorer"] gibt alle Testfälle zurück, die den Testkonfigurationsparameter Browser mit dem Wert InternetExplorer enthalten.

OBJECTS(“id“{,“id“})

Objekte werden anhand ihrer UniqueID und/oder NodePathName ermittelt,

->OBJECTS("-84917") findet das Objekt mit der angegebenen UniqueID

PROJECT

unabhängig vom Suchstartpunkt liefert diese Funktion das Project-Objekt,

->PROJECT findet das Projektwurzelelement

UNION(query{,query})

ermittelt die Vereinigungsmenge

INTERSECTION(query{,
query})

ermittelt die Schnittmenge

COMPLEMENT(query{,query})

ermittelt die Komplementärmenge

SORT(query, “condition“)

sortiert die Abfrage nach Kriterien (siehe Kapitel "Abfragen in virtuellen Ordnern speichern").

->Sort(=>Subparts:TestCase, "Name") findet alle Testfälle und sortiert sie alphabetisch aufsteigend (A-Z). Mit "+ condition" oder "- condition" kann angegeben werden, ob aufsteigend (+) oder absteigend (-) sortiert werden soll.

SUBSET

liefert den innerhalb der Runden Klammern angegebenen Mengenbereich. Es kann ein Index angegeben werden, bis zu dem das Ergebnis angezeigt werden soll, oder ein bestimmter Bereich definiert werden, der als Ergebnis angezeigt werden soll.

Syntax: <Pfeil Operator>Subset(<Suchabfrage>, <Index>, <Range>) Die Angabe der Range ist optional.

->SUBSET(=>SUBPARTS:TestCase, 3) findet die ersten drei Testfälle im Testfallordner Testfälle: PKW, PKW 1 und 1 PKW,

->SUBSET(=>SUBPARTS:TestCase, 3, 2) findet 1 PKW und LKW

Datums- und Zeitformate müssen bei einem Vergleich unter Anführungszeichen gesetzt werden. Enthalten Operatoren Größer- oder Kleinerzeichen (<, >, <=, >=) ist nur ein Vergleich von Datums-, Zeit- oder Zahlenformaten möglich. Können jedoch bei einem String-Vergleich beide Strings in Gleitkommazahlen umgewandelt werden, wird dieser auf einen DOUBLE-Vergleich zurückgeführt und die Verwendung der obengenannten Operatoren ist möglich.

Gleitkommazahlen in der TQ- Suche

Bei der Suche nach Eigenschaften mit Gleitkommazahlen, die den Datentyp DOUBLE besitzen, muss statt dem Komma ein Punkt verwendet werden (Beispiel: Relative Gewichtung in Prozent - Anforderungen). Der Wert kann nur über die Vergleichsoperatoren < oder > gefunden werden.

Syntax:

<Vergleichsoperator><Zahl.Zahl>