Eine Erweiterung am Beispiel des Table Editors

Das Automated Test Framework (ATF) ist die ServiceNow Anwendung zur Automatisierung von Tests. Insbesondere in dynamischen Projekten und im Rahmen von Releaseupgrades (Regressionstests) können mit ATF die Aufwände und die Testdauer signifikant reduziert werden.

(Kunden) spezifische Implementierungen und Erweiterungen erfordern aber häufig auch individuelle Lösungen, um ATF einsetzen zu können. Beispielsweise in Verbindung mit dem Table Editor. Hier ein Beispiel aus unseren Projekten.

Die Ausgangssituation

  • Der Kunde hat eine benutzerdefinierte Implementierung von mehrzeiligen Variablensätzen, mit erweiterten Funktionen im Tabelleneditor.
  • Der Tabelleneditor kann innerhalb der Katalogobjekte verwendet werden, um eine beliebige Anzahl von Datensätzen in eine Liste einzugeben.
  • Merkmale des Tabelleneditors: Hinzufügen/Ändern/Löschen/Löschen aller Aktionen, Import/Export von xlsx-Dateien, Eingabe- und Datensatzvalidierung, Datensatz-übergreifende Validierung (z.B. Vermeidung von Duplikaten)
  • Voraussetzung war, dass das ATF den Tabelleneditor mit all seinen Funktionen testen konnte.

Die Herausforderung

Derzeit ist es nicht möglich, benutzerdefinierte UI-Komponenten an Katalogobjekten zu testen. Man kann entweder die OOTB-Katalog-Testschritte oder die Testschritte für benutzerdefinierte UI-Komponenten verwenden. Leider erkennt der Automated Test Framework Page Inspector benutzerdefinierte UI-Komponenten auf einem Formular für Katalogobjekte nicht. So musste eine Alternative geschaffen werden.

Die erste Idee

Die erste Idee war die Erstellung eines selbst implementierten Testschrittes, aber dann ist es nicht mehr möglich, clientseitige Testschritte innerhalb der ATF-Anwendung zu erstellen. Nur server-seitige Testschritte werden unterstützt.

Die Lösung

  • Erstellung eines dedizierten Testvariablensatzes, der Testfunktionen für den Tabelleneditor oder andere benutzerdefinierte UI-Komponenten bündelt.
  • Das Testen von benutzerdefinierten UI-Komponenten kann durch die Zuweisung von Werten an Variablen innerhalb des ATF-Variablensatzes erreicht werden, wodurch die Ausführung von Client-Skripten ausgelöst wird.
  • Im Falle von Tabelleneditoren haben wir eine Variable, der die Kennung des Tabelleneditors zugewiesen wird. Danach gibt es Variablen für die grundlegenden Aktionen Hinzufügen/Ändern/Löschen/Löschen aller
  • Durch die Zuweisung eines Wertes an die Variable “Add” wird eine Add-Aktion auf dem gewählten Tabelleneditor ausgelöst

Der zugewiesene Wert in Kombination mit einer vordefinierten Syntax (in diesem Fall Feldwertpaare), füllt die bereitgestellten Daten in Eingabefelder genau so aus, wie es ein Endbenutzer tun würde und löst weiterhin die Aktion aus, die mit der Variable verbunden ist, mit der interagiert wird.

Dieser Lösungsansatz simuliert eine tatsächliche Benutzerinteraktion mit der benutzerdefinierten UI-Komponente und kann auf eine Reihe ähnlicher Szenarien beim Testen benutzerdefinierter UI angewendet werden, die der Automated Test Framework Page Inspector nicht richtig erkennt.

Zusammenfassend lässt sich sagen, dass wir die Einschränkungen der ATF-Anwendung überwinden konnten. Wenn es um das Testen benutzerdefinierter UI-Komponenten auf Katalogelement-Formularen geht, nutzen wir die vorhandene Plattformfunktionalität (Variablensätze und Client-Skripts) und kombinieren sie mit der OOTB-ATF-Funktionalität.

Über OOTB Test Step „Set Variable Values” wird das Ziel der Test-Interaktion festgelegt. Die auszuführende Aktion (Hinzufügen, Bearbeiten, Löschen) wird durch die Zielvariable der Wertzuweisung definiert. Die Werte selbst werden durch eine vordefinierte Syntax interpretiert und zugewiesen.

Unser Fazit

Ein globales Variablenset mit versteckten Variablen enthält die grundlegende Funktionalität, um die Tests durchführen zu können. Mittels Skripten, welche auf Wertänderungen der einzelnen Variablen reagieren (onChange Client Scripts) und ergänzt durch das Automated Test Framework von Service Now, können somit alle Anwenderaktionen, welche ansonsten manuell getestet werden müssten, voll automatisiert getestet werden. Diese Vorgehensweise ist auf alle selbstentwickelten UI-Komponenten anwendbar, die ansonsten nicht mittels dem ATF getestet werden könnten.

Wir freuen uns auf den Austausch mit Ihnen

Wie sind Ihre Erfahrungen mit dem ATF von ServiceNow?
Welche ähnlichen Herausforderungen haben Sie?
Welche Lösungsansätze haben Sie ggf. gefunden?
Benötigen Sie weitere Informationen?