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 Vorlagen einfügen
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 Vorlagen einfügen einfügen
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 Vorlagen einfügen
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 Vorlagen einfügen hinzufügen
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 Vorlagen einfügen 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 Vorlagen einfügen 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 Vorlagen einfügen 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 separator festlegen (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:

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.