55.7 YAML-Syntax des Prozeduraufruf-Definition-Knotens
Der vorliegende Anschnitt beschäftigt sich mit der YAML-Syntax zur Konfiguratoin einer Prozeduraufruf-Definition.
Es sind nur Grundkenntnisse der YAML-Syntax nötig, um den Prozeduraufruf-Definition-Knoten zu konfigurieren. Ein kurzer Überblick dazu findet sich im Kapitel CustomWebResolver installieren-Knoten – Syntax.
Eine Prozeduraufruf-Definition bezieht sich auf eine bestimmte Prozedur. Im YAML-Code können für diese Prozedur mehrere Knotenkombinationen angegeben werden, die, wenn sie in der angegebenen Reihenfolge auftreten, in einen Prozeduraufruf umgewandelt werden.
Jede Einzeldefinition muss der folgenden Syntax genügen:
| YAML-Eintrag | Beschreibung |
|---|---|
| name-of-the-definition: | |
| priority: | |
| sequential group: | oder choice group: oder unsorted group: |
| expected nodes: | Die Rubrik enthält die Liste der erwarteten Knoten |
| - sequential group: | oder - choice group: oder - unsorted group: |
| Einträge wie bei Gruppen auf oberster Ebene | |
| repeat/occurrences: | je nach Gruppentyp "repeat" oder "occurrences" |
| min: | Standardwert bei "repeat" 1, bei "occurrences" 0 |
| max: | Standardwert bei "repeat" 1, bei "occurrences" 1000 |
| - node: | |
| node type: your-node-name | Änderung am besten über Editier-Button |
| attributes: | Liste von Knotenattributen und -zuständen, abhängig von "node type" |
| your-attribute: attribute-value | Gültige Einträge am besten über Editier-Button |
| component: | |
| id: your-component-id | siehe Platzhalter für Komponentenknoten |
| classes: | Liste von Klassen, durch Leerzeichen getrennt oder Rubrik ausklappen. Änderung am besten über Editier-Button |
| name: expected-component-name | siehe Platzhalter für Komponentenknoten |
| feature: expected-component-feature | siehe Platzhalter für Komponentenknoten |
| extra features: | |
| subindexX: | Index eines Unterelements. Am besten über Editier-Button |
| subindexseparatorX: | Werte: "@", "&" oder "%" |
| scope: | |
| condition: | Einzeiliger Term in der Skriptsprache von Skriptsprache |
| repeat/occurrences: | je nach Gruppentyp "repeat" oder "occurrences" |
| min: | Standardwert bei "repeat" 1, bei "occurrences" 0 |
| max: | Standardwert bei "repeat" 1, bei "occurrences" 1000 |
| set procedure call parameters: | In der Rubrik können mehrere Parameter angegeben werden |
| your-parameter: | freier Text, muss innerhalb der Rubrik eindeutig sein |
| value: | Kurzform möglich; Leerstring möglich |
| overwrite option: | Werte: "setifempty" (Standardwert), "replace", "append" |
| separator: | Trennzeichen bei "overwrite option: append", Standardwert "|||" |
| set variable for return value: | |
| name: | Kurzform möglich. Standardwert ist der Leerstring |
| local: | "true" oder "false". Standardwert Attribut 'Lokale Variable' standardmäßig aktivieren |
| doctags: | Liste von Doctags für die Bemerkung des Prozeduraufrufs |
| your-doctag-name: your-doctag-value | frei wählbarer Name und Wert |
Das Auswahlmenü, das sich über den Editier-Button
neben der Zeilennummerierung öffnen lässt,
passt sich dem jeweiligen Kontext an und zeigt alle passenden Aktionen für die aktuell ausgewählte Zeile an.
Nutzen Sie dieses Menü, um den Überblick über mögliche Aktionen zu erhalten. Ein weiterer Vorteil des Menüs ist, dass die korrekte Syntax automatisch bereitgestellt wird.
Im folgenden werden alle YAML-Konfigurationskategorien sowie deren Unterkategorien kurz erklärt.
55.7.1 Einzeldefinition
name-of-the-definition: priority: sequential group: # oder choice group: oder unsorted group:
Ein Prozeduraufruf-Definition-Knoten kann mehrere Einzeldefinitionen enthalten, die unterschiedliche Knotensequenzen definieren, die für den gleichen Prozeduraufruf gelten.
Eine Einzeldefinitionen muss auf oberster Ebene
entweder eine sequential group oder
eine choice group oder eine
unsorted group enthalten.
Außerdem kann sie Angaben zur Priorität enthalten: priority.
55.7.2 priority
Zum einen ergibt sich die Reihenfolge, in der die Einzeldefinitionen ausgewerten werden, aus der Reihenfolge, in der sie in der Testsuite und in den eingebundenen Testsuiten stehen. Die Reihenfolge, in der die Testsuiten eingebunden werden, ist relevant. (Informationen zum Einbinden von Testsuiten finden sie unter Inkludierte Dateien.) Zum anderen kann eine positive ganze Zahl für die Priorität vergeben werden. Definitionen mit höheren Werten werden dabei zuerst ausgewertet. Bei Definitionen mit gleichen Werten entscheidet wieder die Reihenfolge in den Testsuiten. Weitere Informationen siehe unter Reihenfolge der Definitionsauswertung in Abbildung von Prozedurstrukturen
Bei der automatischen Erstellung von Prozeduraufruf-Definitionen wird die Priorität wie unter Priorität beschrieben, ermittelt.
Standardwert: 0
Übergeordnete Rubrik Einzeldefinition.
55.7.3 sequential group
sequential group auf oberster Ebene:
sequential group:
expected nodes:
sequential group als Untergruppe:
sequential group:
expected nodes:
repeat/occurrences:
Die in der Liste der expected nodes angegebenen Knoten und Untergruppen müssen in der angegebenen Reihenfolge erscheinen.
Außerdem kann angegeben werden wie oft sich die Gruppe wiederholen kann, siehe repeat/occurrences.
Übergeordnete Rubrik Einzeldefinition oder expected nodes.
55.7.4 choice group
choice group auf oberster Ebene:
choice group:
expected nodes:
choice group als Untergruppe:
choice group:
expected nodes:
repeat/occurrences:
Von den in der Liste der expected nodes angegebenen Knoten und Untergruppen muss ein Eintrag passen.
Außerdem kann angegeben werden wie oft sich die Gruppe wiederholen kann, siehe repeat/occurrences.
Übergeordnete Rubrik Einzeldefinition oder expected nodes.
55.7.5 unsorted group
unsorted group auf oberster Ebene:
unsorted group:
expected nodes:
unsorted group als Untergruppe:
unsorted group:
expected nodes:
repeat/occurrences:
Die in der Liste der expected nodes angegebenen Knoten und Untergruppen können in beliebiger Reihenfolge erscheinen.
Außerdem kann angegeben werden wie oft sich die Gruppe wiederholen kann, siehe repeat/occurrences.
Übergeordnete Rubrik Einzeldefinition oder expected nodes.
55.7.6 expected nodes
expected nodes: - sequential group: - choice group: - unsorted group: - node:
Eine Liste der erwarteten Knoten oder Untergruppen von Knoten.
Übergeordnete Rubrik sequential group oder choice group oder unsorted group.
55.7.7 node
- node:
node type:
attributes:
component:
condition:
repeat/occurrences:
set procedure call parameters:
set variable for return value: #
doctags:
In dieser Kategorie gibt es Einträge, die den erwarteten Knoten spezifizieren,
solche, die sich auf den zu erstellenden Prozeduraufruf beziehen
und einen für die Anzahl der Wiederholungen des Knotens.
Übergeordnete Rubrik expected nodes.
55.7.8 node type
Der Eintrag gibt den Knotentyp an. Jedem Knotentyp ist ein bestimmter Wert zugeordnet.
Der Wert lässt sich am einfachsten herausfinden, wenn man den Editier-Button
neben der Zeilennummerierung klickt, in der Liste "node type" ändern
wählt und dann den entsprechenden Knotentyp selektiert. In dieser Liste
entsprechen die Werte den Knotennamen, die im Testsuite-Baum beziehungsweise
als Überschrift der Knotendetails angezeigt werden.
Übergeordnete Rubrik node.
55.7.9 attributes
attributes:
your-attribute: attribute-value
Hier können knotenspezifische Attribute oder Zustände angegeben werden.
Die jeweils verfügbaren Attribute hängen vom Knotentyp ab.
Wenn sie unter node type den
erwarteten Knotentyp eingetragen haben, klicken Sie links neben der Zeilennummer
für - node: den Editier-Button
und wählen "attributes" hinzufügen. Es werden alle verfügbaren
Attribute eingefügt. Nun können Sie die gewünschten Werte setzen und nicht benötigte
Attribute herauslöschen.
Informationen zu den einzelnen Attributen finden Sie im Kapitel Platzhalter.
Wenn component id angegeben ist, wird die Rubrik component
ignoriert. Weitere Informationen zur Auswertung der component id
finden Sie in Knotenattribute.
Bei Check-Knoten kann im Eintrag check type der Name des Check-Typs
angegeben werden, z.B. text
oder item. Der spezielle Check-Typs default akzeptiert
bei der Umwandlung sowohl default als auch item.
Übergeordnete Rubrik node.
55.7.10 component
component:
id: your-component-id
classes:
name: expected-component-name
feature: expected-component-feature
extra features:
subindexX:
subindexseparatorX:
scope:
Diese Rubrik kann die in Platzhalter für Komponentenknoten in der Spalte "YAML" genannten Einträge enthalten.
Wenn id angegeben ist, werden nur die Einträge zu Subindexes und gegebenenfalls Scope ausgewertet.
Letzteres nur, falls die Option Gewichtung von Namen (Aufnahme)
den Wert Name übertrifft alles hat. (In diesem Fall ist die Angabe eine Scope auch nur
dann nötig, wenn die Option bei der Komponentenaufnahme nicht immer den Wert Name übertrifft alles
hatte.)
Weitere Merkmale werden in der Rubrik extra features
eingetragen.
Eine übergeordnete Komponente kann in der Rubrik scope
spezifiziert werden.
Übergeordnete Rubrik node.
55.7.10.1 classes
Die hier angegeben Klassen finden sich im Klasse-Attribut oder den
Weiteren Merkmalen eines Komponentenknotens. Es können auch Klassen inklusive
Klassentyp (weiteres Merkmal qfs:type) angegeben werden.
In dieser Rubrik können Sie in der YAML-Kurzform eine oder mehrere Klassen, durch Leerzeichen getrennt, direkt hinter dem Rubriknamen angeben. Wird die Rubrik ausgeklappt, werden die Klassen unter dem Rubriknamen in eigenen Zeilen aufgelistet.
Übergeordnete Rubrik component.
55.7.10.2 extra features
In dieser Rubrik werden die Namen der für die Definition relevanten Weitere Merkmale als Schlüssel verwendet.
Übergeordnete Rubrik component.
55.7.10.3 subindexX
Gibt den Index eines Unterelements an. X muss hierbei
durch durch eine Zahl ersetzt werden. subindex0 steht bei einer
Liste zum Beispiel für den Index des Listeneintrags, bei einer Tabelle
für den Spaltenindex. subindex1 würde bei Listen eine Element
in einem Listeneintrag bezeichnen, soweit vorhanden. Bei Tabellen
steht subindex1 für den Zeilenindex.
Übergeordnete Rubrik component.
55.7.10.4 subindexseparatorX
Gibt den Indextyp an, "@" für einen Textindex, "&" für einen numerischen Index, "%" für einen regulären Ausdruck. X muss hierbei wie
in subindexX erläutert ersetzt werden.
Übergeordnete Rubrik component.
55.7.10.5 scope
In dieser Rubrik kann eine übergeordnete Komponente über id,
name, feature oder extra features
spezifiziert werden.
Wenn in der Rubrik component eine id eingetragen
wurde, wird der Scope nur ausgewertet, wenn die Option Gewichtung von Namen (Aufnahme)
den Wert Name übertrifft alles hat.
Wenn in der Rubrik attributes eine component id eingetragen
wurde, wird der Scope nicht ausgewertet.
Übergeordnete Rubrik component.
55.7.11 condition
Die Bedingung kann einen beliebiger einzeiligen Term in der angegebenen in Skriptsprache enthalten.
Übergeordnete Rubrik node.
55.7.12 set procedure call parameters
set procedure call parameters:
your-parameter:
Diese Rubrik enthält eine Liste der Parameter, die im zu erstellenden Prozeduraufruf in den Variablendefinitionen eingetragen werden sollen. Die Parameternamen entsprechen den Namen der YAML-Einträge. Sie müssen eindeutig sein.
Übergeordnete Rubrik node.
55.7.13 your-parameter
Die Kurzform eines Parametereintrags besteht aus dem Namen und Wert in einer Zeile:
your-parameter-name: your-parameter-value
Wird der Parametereintrag ausgeklappt, kann angegeben werden, wie mit dem Wert in einem bereits bestehenden Parameter dieses Namens verfahren wird:
your-parameter-name:
value: your-parameter-value
overwrite option: setifempty
separator: |||
Diese Rubrik enthält die Parmeter, die im zu erstellenden Prozeduraufruf eingetragen werden sollen. Die Parameternamen entsprechen den Namen der YAML-Einträge. Sie müssen eindeutig sein.
Der Parameterwert kann auch leer sein. In diesem Fall braucht hinter dem Doppelpunkt nichts angegeben werden.
Übergeordnete Rubrik set procedure call parameters.
55.7.14 overwrite option
Tragen mehrere Knoten einer Definition denselben Parameter, steuern Sie hiermit, wie mit einem bereits vorhandenen Wert umgegangen wird:
setifempty(Standardwert)- Der Parameterwert wird nur gesetzt, wenn für diesen Parameter noch kein Wert vorhanden ist. Diese Option eignet sich, wenn der erste passende Knoten den maßgebenden Wert liefern soll und spätere Knoten ihn nicht überschreiben dürfen.
replace- Ein bereits vorhandener Parameterwert wird stets überschrieben. Diese Option eignet sich, wenn der zuletzt passende Knoten den entscheidenden Wert liefern soll oder ein zuvor gesetzter Wert durch den tatsächlichen ersetzt werden soll.
append-
Der neue Wert wird an den bereits vorhandenen Parameterwert angehängt. Ist der
bestehende Wert noch leer, wird der neue Wert direkt ohne Trennzeichen
eingetragen. Das Trennzeichen zwischen altem und neuem Wert lässt sich über
separatorfestlegen (Standardwert|||). Diese Option ist nützlich, wenn mehrere Knoten gemeinsam einen Parameterwert aufbauen, z.B. um Werte aus aufeinanderfolgenden Ereignissen zu einem Parameter zusammenzuführen.
Übergeordnete Rubrik your-parameter.
55.7.15 separator
Nur relevant für die Option overwrite option
mit dem Wert append.
Gibt das Trennzeichen an, das zwischen den alten und den neu hinzuzufügenden Wert
gesetzt werden soll. Standardwert |||.
Übergeordnete Rubrik your-parameter.
55.7.16 set variable for return value
Hier können Sie angeben, welcher Variablenname im Attribut Variable für Rückgabewert des erstellten Prozeduraufrufs eingetragen werden soll.
Die Kurzform des Eintrags für Variable für Rückgabewert besteht aus dem Rubriknamen und dem Variablennamen in einer Zeile:
set variable for return value: your-variable-name
Wird der Eintrag ausgeklappt, können Sie den Standardwert aus der Option Attribut 'Lokale Variable' standardmäßig aktivieren für Lokale Variable übersteuern:
set variable for return value: variable name: your-variable-name local variable:
Standarmäßig ist der Variablenname leer.
Übergeordnete Rubrik node.
55.7.17 doctags
doctags: your-doctag-name: your-doctag-value
Hier können Sie angeben, welche Doctags in der Bemerkung des erstellten Prozeduraufrufs eingetragen werden sollen. Der Name des YAML-Eintrags entspricht dem Namen des Doctags. Es muss kein Wert angegeben werden. In diesem Fall wird nur ein Doctag ohne Wert eingetragen.
Standarmäßig ist die Rubrik leer.
Übergeordnete Rubrik node.
55.7.18 repeat/occurrences
Abhängig von der Gruppe, in der der Eintrag liegt, wird die Rubrik
entweder mit repeat oder occurrences bezeichnet:
-
Bei einer
sequential grouplautet der Rubriknamerepeat, da die sich wiederholenden Knoten oder Gruppen, direkt hintereinander liegen müssen. -
Bei einer
unsorted groupheißt der Eintragoccurrencesund gibt an, wie oft der Knoten insgesamt in der Gruppe vorkommen soll.
Für die Rubrik repeat ist die Kurzform möglich,
wenn eine bestimmte Anzahl von Wiederholungen erwartet wird:
repeat: Anzahl der Wiederholungen
Wenn die Anzahl von Wiederholungen zwischen einem Minimalwert (inklusive) und einem Maximalwert (inklusive) liegen sollen, kann die Rubrik ausgeklappt werden.
repeat: min: Mindestzahl an Wiederholungen max: Maximalzahl an Wiederholungen
In der Rubrik repeat ist der Standardwert für min und
max jeweils 1.
Übergeordnete Rubrik für repeat: node oder sequential group.
Für die Rubrik occurrences müssen immer die Mindest- und Maximalzahl
der Vorkommen angegeben werden.
occurrences: min: Mindestzahl an Vorkommen max: Maximalzahl an Vorkommen
In der Rubrik Vorkommen ist der Standardwert für min 0 und
max 1000.
Übergeordnete Rubrik für occurrences: node
oder unsorted group.