Dynamische Berechnungen
Manchmal benötigt ein Schritt einen Wert, der nicht fest codiert werden kann — das heutige Datum, ein aus einem Geburtstag berechnetes Alter, eine Zufallszahl, der aktuelle Wert eines Zählers plus zehn und so weiter. msg.ZenTestAI bietet zwei Möglichkeiten, dies zu handhaben:
- Macros — der empfohlene Weg. Ein Makro ist eine benannte, parametrisierte Funktion, die Sie einmal definieren und in verschiedenen Tests wiederverwenden. Makros sind deterministisch, können isoliert getestet werden und der von ihnen erzeugte Wert ist vorhersehbar.
- Dynamische Berechnungen (
${ ... }) — der auf dieser Seite beschriebene Legacy-Ansatz. Er funktioniert weiterhin, ist aber nur für echte Einzelfälle geeignet.
Wann man was verwendet
| Anwendungsfall | Verwendung von |
|---|---|
| Sie benötigen dieselbe Berechnung an vielen Stellen oder erwarten, sie später wieder zu benötigen. | Macro |
| Sie möchten, dass der Wert vor dem Testlauf überprüft wird. | Macro (nutzen Sie die Funktion „Testlauf in Sandbox“) |
| Sie benötigen eine einmalige Berechnung, die Sie wirklich nicht als Makro behalten möchten. | Dynamische Berechnung (diese Seite) |
Geben Sie = in ein beliebiges Schritt- oder URL-Feld ein, um die Makro-Autovervollständigung zu öffnen. Wählen Sie das passende Makro aus (oder erstellen Sie schnell eines) — es ist von da an wiederverwendbar und deterministisch. Im Kapitel Macros finden Sie den vollständigen Leitfaden.
Einschränkungen dynamischer Berechnungen
Im Vergleich zu Makros haben dynamische Berechnungen zwei wichtige Nachteile — weshalb wir Makros als Standard empfehlen:
- Weniger konsistent. Jede Berechnung wird vom KI-Agenten zur Ausführungszeit aus Ihrer Freitextbeschreibung interpretiert. Zwei ähnlich aussehende Berechnungen können auf subtile Weise voneinander abweichen (Rundung, Formatierung, Zeitzone), was die Testergebnisse weniger reproduzierbar macht.
- Kann nicht isoliert getestet werden. Es gibt keine Möglichkeit, eine dynamische Berechnung zu validieren, ohne den vollständigen Testschritt auszuführen. Bei einem Makro können Sie es vor dem Speichern mit Beispiel-Inputs im Makro-Editor ausführen.
Aus diesen Gründen sollten Sie dynamische Berechnungen eher als Workaround für den einmaligen Gebrauch betrachten und nicht als Baustein Ihrer Testsuite.
Funktionsweise einer dynamischen Berechnung
Alles, was Sie innerhalb von ${ ... } schreiben (Hinweis: kein = nach dem $, das wäre ein Makro-Aufruf), wird während der Testausführung von einem KI-Agenten interpretiert. Der Agent erhält den folgenden Kontext, um seine Antwort darauf zu stützen:
- die aktuelle URL,
- das aktuelle Datum und die aktuelle Uhrzeit,
- die aktuellen Browsereinstellungen (Sprache, Zeitzone, …),
- die aktuelle Benutzer-/Rollenkennung,
- alle Parameternamen und deren Werte.
Der Agent berechnet einen Wert aus Ihrer Freitextbeschreibung und dem oben genannten Kontext, und dieser Wert ersetzt den ${ ... }-Block im Schritt, bevor der Schritt selbst ausgeführt wird.
Beispiele
Type ${ current date and time, UTC in format DD.MM.YYYY HH:mm:ss } into the field "Current Date and Time"
Type ${ 18 years ago, format YYYY } into the field "Birth Year"
Remember the amount of steps in parameter [[AMOUNT_OF_STEPS]].
Type ${ [[AMOUNT_OF_STEPS]] + 10 } into the field "Entries visible"
Type ${ random number between 1 and 100 } into the field "Random Number"
Testfälle sollten so reproduzierbar wie möglich sein. Selbst mit einem sorgfältigen Prompt können dynamische Berechnungen von einem Lauf zum nächsten leicht unterschiedliche Werte erzeugen. Wann immer dieselbe Berechnung mehr als einmal benötigt wird — oder wenn Reproduzierbarkeit wichtig ist —, sollten Sie sie stattdessen in ein Makro umwandeln.