Testdaten
Tests in msg.ZenTestAI arbeiten selten mit einem einzigen, festen Satz an Werten. Meistens möchten Sie dieselben Schritte mit unterschiedlichen Daten ausführen – verschiedene Benutzer, verschiedene Produkte, verschiedene Länder – und manchmal möchten Sie, dass ein einzelner Testschritt von sich aus über viele Datenzeilen iteriert. Testdaten ist der Oberbegriff für beides.
Testdaten befinden sich derzeit innerhalb der Testdefinition – es gibt noch keinen mandantenweiten oder geteilten Testdatenkatalog. Ein globales Testdatenkonzept steht auf der Roadmap; bis es verfügbar ist, besitzt jeder Test seine eigenen Testdaten, und der einzige eingebaute Weg, Werte zu teilen, ist der Import über ein verbundenes externes System (z. B. Jira XRay).
Zwei Arten von Testdaten
Ein Test hat zwei verschiedene Arten von Testdaten, die zwei unterschiedliche Fragen beantworten:
| Art | Beantwortet | Speicherort |
|---|---|---|
| Ausführungsvarianten | "Führe denselben Test mehrmals aus, jedes Mal mit anderen Parameterwerten." | Der Tab Varianten auf der Testdetailseite. |
| Tabellarische Datenparameter | "Wiederhole innerhalb eines einzelnen Durchlaufs einen Teil des Tests für jede Zeile einer Datentabelle." | Ein Parameter im Test, definiert mit dem Typ Tabellarisch. |
Die beiden Arten können kombiniert werden: Ein Test mit einem tabellarischen Parameter kann auch Varianten haben, und jede Variante kann der Tabelle unterschiedliche Inhalte geben.
Parameter im Überblick
Bevor Sie in Varianten und Tabellen eintauchen, rufen Sie sich ins Gedächtnis, was ein Parameter ist: ein benannter Platzhalter, auf den überall im Test mit [[parameterName]] verwiesen wird (Schritte, URLs, Bedingungen, Schleifen, …). Ein Parameter hat:
- einen Namen (der Wert, der in
[[…]]verwendet wird), - einen Typ: Text (der Standard – jede Zeichenkette), Boolean oder Tabellarisch (eine Tabelle mit Zeilen und Spalten), und
- einen oder mehrere Werte, einen pro Variante.
Parameter werden auf dem Tab Varianten verwaltet. Derselbe Tab verwaltet auch Varianten – Parameter sind die Spalten, Varianten sind die Zeilen.
Ausführungsvarianten
Eine Variante ist ein benanntes Bündel von Parameterwerten, das eine Ausführung des Tests definiert. Jeder Test hat eine Standard-Variante (Default) – sie wird implizit erstellt, wenn der Test erstellt wird, und Sie können sie umbenennen oder bearbeiten, aber nicht löschen.
Varianten hinzufügen und verwalten
Auf dem Tab "Varianten":
- Klicken Sie auf Neue Kombination, um eine neue Variante hinzuzufügen. Sie können sie frei benennen (z. B. DE-privat, FR-geschäftlich, abgelaufene-lizenz).
- Geben Sie den Wert für jeden Parameter in dieser Variante ein.
- Jede Variante kann auch einige Ausführungseinstellungen überschreiben – typischerweise die Basis-URL, den Agenten und die Sprache –, wenn diese zwischen den Durchläufen unterschiedlich sein sollen.
- Kombination kopieren dupliziert eine bestehende Variante, um sie als Ausgangspunkt zu verwenden.
- Löschen entfernt eine Variante (die Standard-Variante kann nicht gelöscht werden).
Es gibt derzeit keinen automatischen "Kreuzprodukt"-Generator – jede Variante wird manuell eingegeben oder aus einem externen System importiert.
Varianten bei der Ausführung auswählen
Wenn Sie auf der Testdetailseite auf Test ausführen klicken, werden Sie gefragt, welche Variante(n) ausgeführt werden sollen. Sie können wählen:
- die Standard-Variante (wenn Sie keine explizite Auswahl treffen),
- eine spezifische Variante,
- mehrere Varianten – msg.ZenTestAI plant eine Ausführung pro ausgewählter Variante.
In der Testliste spiegeln die Spalten Letzte Ausführung / Status den letzten Durchlauf wider, unabhängig davon, welche Variante ihn erzeugt hat. Die Ausführungsdetails zeigen pro Durchlauf an, welche Werte der Variante verwendet wurden.
Tabellarische Datenparameter
Ein Tabellarischer Parameter ist ein Parameter, dessen Wert eine Tabelle mit Zeilen und Spalten ist, kein einzelner Wert. Sie verwenden ihn, wenn:
- Sie eine Schleife (über eine Aktivität oder eine Snippet-Referenz) möchten, die einmal pro Datenzeile iteriert, oder
- Sie eine ordentliche Liste verwandter Werte zusammenhalten möchten, anstatt sie über viele skalare Parameter zu verstreuen.
Die Tabelle bearbeiten
Auf dem Tab "Varianten" zeigt ein Tabellarischer Parameter eine kleine Vorschau seiner Tabelle und eine Schaltfläche zum Öffnen des Tabelleneditors. Der Editor bietet ein vertrautes Raster im Tabellenkalkulationsstil:
- Fügen Sie Spalten hinzu oder entfernen Sie sie; Spaltennamen sind frei wählbar, es wird kein festes Schema erzwungen.
- Fügen Sie Zeilen einzeln hinzu oder entfernen Sie sie, oder fügen Sie Daten aus einer Tabellenkalkulation ein, um die Tabelle in einem Schritt zu befüllen.
- Eine Zeile kann leere Zellen enthalten; die Werte sind reiner Text.
Dieselbe Tabelle kann pro Variante unterschiedliche Inhalte tragen – zum Beispiel kann Ihre Variante DE-privat der Tabelle kunden drei deutsche Zeilen geben, während die Variante FR-geschäftlich ihr fünf französische gibt. Wenn Sie eine bestimmte Variante ausführen, sieht die Schleife genau die Zeilen dieser Variante.
Die Tabelle in einer Schleife verwenden
Sobald ein tabellarischer Parameter existiert, verknüpfen Sie ihn mit einer Aktivitäts- oder Snippet-Schleife, indem Sie die Seitenleiste der Aktivität / Snippet-Referenz öffnen und Schleife → Über eine Datentabelle wählen. Der Schleifen-Assistent bittet Sie dann:
- den tabellarischen Parameter auszuwählen, der die Iteration steuert,
- eine Zeilenabgleichsstrategie zu wählen – Index (Zeile N für Iteration N – der einfachste Fall) oder Nachschlagen (die Zeile finden, die mit bestimmten Spaltenwerten übereinstimmt),
- jeden Parameter des internen Schritts entweder einer Tabellenspalte oder einer anderen Quelle (Iterationsindex, fester Wert, Wert aus dem aufrufenden Test, …) zuzuordnen.
Siehe Schleifen und Bedingungen → Iterationsvariablen und Parameter-Mapping für den vollständigen Mapping-Prozess.
Testdaten in Snippets
Wenn ein Test ein Snippet aufruft, haben die internen Schritte des Snippets ihre eigenen Parameterreferenzen – typischerweise Dinge wie [[user]] oder [[amount]]. Der aufrufende Test speist diese Parameter durch die Parameterbindungen im Schritt der Snippet-Referenz ein. Bindungen können sein:
- ein fester Wert, der im Bindungsformular eingegeben wurde,
- ein Mapping von einem Parameter des aufrufenden Tests (sodass das Snippet den Wert der aktuellen Variante erbt), oder
- – wenn die Snippet-Referenz in eine Schleife eingewickelt ist – eine Spalte der Datentabelle der Schleife.
So verbreiten sich Varianten und Tabellen in die Snippet-Logik: Das Snippet selbst besitzt die Werte nicht; der aufrufende Test (oder seine Schleife) liefert sie pro Ausführung / pro Iteration.
Tests gebunden an Jira XRay
Für Tests, die aus Jira XRay importiert und an dieses gebunden sind, zeigt der Tab "Allgemein" einen Testdaten synchronisieren-Schalter. Wenn dieser aktiviert ist:
- Varianten und Zeilen tabellarischer Parameter werden bei jedem Speichern und jeder erneuten Synchronisierung mit dem entsprechenden XRay-Datensatz synchron gehalten.
- Wenn der XRay-Datensatz neue Zeilen erhält, übernimmt Ihr Test diese bei der nächsten Synchronisierung.
- Lokale Bearbeitungen an Varianten und Tabellen können zurück an XRay übertragen werden.
Verwenden Sie dies, wenn XRay das führende System für Ihre Testdaten ist. Ohne diesen Schalter importiert msg.ZenTestAI den Test, hält die Testdaten danach aber lokal.
Siehe Externe Systeme → Synchronisierung für den vollständigen Synchronisierungsablauf.
Berechtigungen und Limits
- Berechtigungen – Testdaten folgen denselben Rechten wie der Rest der Testdefinition. Jeder mit Bearbeitungsrechten für den Mandanten kann Varianten und tabellarische Daten hinzufügen, bearbeiten und löschen.
- Limits – Es gibt in der Anwendung keine festen Obergrenzen für die Anzahl der Varianten pro Test oder Zeilen pro Tabelle. Sehr große Tabellen (zehntausende Zeilen) könnten an Limits in verbundenen externen Systemen stoßen, bevor sie msg.ZenTestAI selbst beeinträchtigen.