+49 (30) 467086-20 service@microtool.de
Produkte » objectiF RM » Erweiterungsfunktionen » Erweiterungsfunktion anlegen und ausführen

Erweiterungsfunktion anlegen und ausführen

Mit Erweiterungsfunktionen können Sie den Funktionsumfang Ihres Projekts flexibel erweitern. Dabei haben Sie zwei Möglichkeiten:

  • Sie laden  von microTOOL bereitgestellte Erweiterungsfunktionen aus dem Internet herunter und binden sie in Ihr Projekt ein.
  • Sie entwickeln eigene Erweiterungsfunktionen, die genau auf Ihre Anforderungen zugeschnitten sind.

Damit Sie sehen, wie eine Erweiterungsfunktion Schritt für Schritt entsteht, folgt nun ein Beispiel. Das Beispiel ist so gehalten, dass Sie es nachklicken können. Gleichzeitig vermittelt es die grundlegenden Arbeitsschritte, die Sie auch für andere, eigene Erweiterungsfunktionen benötigen.

Das folgende Beispiel beschreibt eine Erweiterungsfunktion, mit der ermittelt werden kann, wie viele Tests in einer Test Set Ausführung fehlgeschlagen sind. Der berechnete Wert wird in der Ausgabe angezeigt. 

Erweiterungsfunktionen anlegen

Sie legen im System eine neue Erweiterungsfunktion an und bestimmen über ein Schema, welche Daten als Eingabe verarbeitet werden sollen und welche Ausgaben die Funktion liefern wird.

  1. Wählen Sie über das Kontextmenü eines Packages den Befehl Weitere anlegen  Erweiterungsfunktion.
  2. Benennen Sie zunächst die Erweiterungsfunktion und wählen den Stereotyp aus, auf dem die Funktion später ausgeführt werden soll. Für dieses Beispiel wird der Stereotyp TestManagement (Substereotyp von Package) gewählt.
Bearbeitungsdialog einer Erweiterungsfunktion mit markierten Optionen Request-Schema automatisch anlegen und Verzeichnis mit Einstiegsdatei generieren
  1. Markieren Sie die Optionen Request-Schema automatisch anlegen und – sofern Sie Ein- und Rückgabedaten separat definieren möchten – die Option Response-Schema automatisch anlegen. Alternativ können Sie auch die Option Request-Schema verwenden markieren, wenn Ein- und Rückgabedaten der Erweiterungsfunktion identisch sind.
  2. Speichern Sie den Dialog mit OK.

Es wird ein Verzeichnis mit initialen Dateien unter der Erweiterungsfunktion angelegt und abhängig von den markierten Optionen eine bzw. zwei Erweiterungsschemas erzeugt. Gleichzeitig wird die Datei Index.js der Erweiterungsfunktion als Einstiegsdatei zugeordnet

unter der Erweiterungsfunktion wurde ein Verzeichnis mit initial erzeugten Dateien angelegt

Erweiterungsschemen bearbeiten

Im zweiten Schritt definieren Sie in den Schemen (Request und Response), welche Eigenschaften über eine Erweiterungsfunktion ausgewertet werden dürfen. Je nachdem, was Sie machen wollen, benötigen Sie ein Schema (Request), das die Daten aus objectiF RM ausliest und ein Schema (Response), das die geänderten Daten wieder zurückschreibt. Wenn die Struktur der Ein- und Ausgabedaten identisch sind, brauchen Sie nur ein Erweiterungsschema.

  1. Öffnen Sie das Erweiterungsschema Test Set auswerten (Request) über den Kontextmenübefehl Bearbeiten oder per Doppelklick.
    Optional können Sie den Namen überschreiben, da der Name aus der Erweiterungsfunktion abgeleitet wurde.
  2. In der Registerkarte Schema markieren Sie die Eigenschaften, die die Funktion abfragt (Request) bzw. zurückgibt (Response).
  3. Klappen Sie den Eintrag TestManagement auf und markieren für dieses Beispiel folgende Eigenschaften: in der Liste TestSetExecutionArtifacts die Id, unter TestArtifactRelationships die Id und Name sowie unter Aktueller Zustand die Eigenschaft Name.
aufzuklappende Elemente und Beziehungen haben einen roten Hintergrund und zu markierende Eigenschaften sind rot umrandet
Gut zu wissen
Wenn Sie ein Schema exportiert haben, können Sie es über das Kontextmenü eines Erweiterungsschemas mit dem Befehl JSON Schema importieren importieren. Sie können auch ein eigenes Schema schreiben und es über diesen Befehl importieren.
  1. Bestätigen Sie mit OK.

Code schreiben

Im nächsten Schritt wird die Funktion geschrieben. Verwenden Sie dafür einen Editor mit Debug-Funktion. Wenn Visual Studio Code auf Ihrem Rechner als Standardprogramm definiert ist, lassen sich *.js-Dateien per Doppelklick öffnen. Ansonsten wählen Sie über das Kontextmenü der Datei Datei in Visual Studio Code öffnen.

  1. Wählen Sie im Kontextmenü des Code-Verzeichnisses den Befehl Verzeichnis in Visual Studio Code öffnen.
    Das gesamte Verzeichnis wird ausgeliehen und in Visual Studio Code geöffnet.
  2. Bearbeiten Sie die Dateien und speichern Sie die Änderungen. 
    Zum Testen des Beispiels kopieren Sie den unten angeführten Code-Snippet in die Datei index.js und speichern Sie. 
Code-Snippet
Öffnen Sie die generierte Index.js Datei und ersetzen die Funktion durch diesen Code:
exports.handler = async function (input) {
const failedStateName = 'fehlgeschlagen';
 
const tseCount = input.testSetExecutionArtifacts.length;
const testCount = input.testSetExecutionArtifacts.reduce((sum, tse) => sum + tse.testArtifactRelationships.length, 0);
const failedTestCount = input.testSetExecutionArtifacts.reduce((sum, tse) => sum + tse.testArtifactRelationships.filter(t => t.currentState.name == failedStateName).length, 0);

if (testCount === 0) {
return {
message: `In diesem Package sind keine Test Set Ausführungen mit Tests vorhanden.`,
};
} else {
return {
message: `In ${tseCount} Test Set Ausführungen sind ${(failedTestCount / testCount) * 100}% aller Tests fehlgeschlagen (${failedTestCount} von ${testCount}).`,
};
}
}

Generierte Datei

Beispielcode in Visual Studio geöffnet
  1. Wählen Sie jetzt im Kontextmenü des Verzeichnisses den Befehl Zurückgeben, um die Änderungen zu übernehmen.
  2. Im Dialog Dateien zurückgeben sehen Sie die Dateien, die sich geändert haben. Markierte Dateien werden zurückgeführt und überschreiben die bestehenden Dateien, wenn Sie auf OK klicken.
geänderte Datei im Dialog markiert

Kommando anlegen

Damit Sie die Erweiterungsfunktion auch ausführen können, müssen Sie zum Schluss noch ein Kommando anlegen, der Ihnen über das Kontextmenü angeboten wird.

Gut zu wissen
Wenn Sie später eine Erweiterungsfunktion löschen möchten, müssen Sie zuvor das Kommando in der Sicht Kommandos für Erweiterungsfunktionen löschen.
  1. Wechseln Sie ins Kontextspezifische Menü des Projekts und wählen Projekt  Einstellungen → Kommandos konfigurieren.
  2. In der Sicht Kommandos konfigurieren klicken Sie rechts oben auf die PlusSchaltfläche und wählen Erweiterungsfunktion Kommando.
  3. Tragen Sie in das Feld Name den Namen ein, der im Kontextmenü angezeigt werden soll.
  4. Unter Auszuführende Erweiterungsfunktion wählen Sie die eben erstellte Erweiterungsfunktion aus. Der Elementtyp unter Sichtbarkeit für Stereotyp wird automatisch gesetzt. Bei Bedarf können Sie auch einen untergeordneten Stereotyp einstellen.
  5. Unter Positionierung geben Sie an, in welcher Kontextmenügruppe der Befehl eingeordnet werden soll.
    Haben Sie mehrere Befehle in einer Gruppe, können Sie über Gewicht bestimmen, an welche Stelle innerhalb des Menüs der Befehl einsortiert wird.
Konfigurationsdialog für das Einordnen eines Befehls ins Kontextmenü
Sie können auch eine eigene Gruppe für das Kontextmenü erstellen, wenn Sie unter Anzeigen in Menügruppe Benutzerdefiniert auswählen.

  1. Schließen Sie den Dialog, indem Sie auf OK klicken.
Liste aller angelegten Kommandos

Erweiterungsfunktion ausführen

Erweiterungsfunktionen können per Kontextmenübefehl, über einen Task oder über eine Aktion im Zustandsautomaten ausgeführt werden. Beachten Sie, dass bei Tasks und Aktionen keine Parameter übergeben werden können.  

  • Wählen Sie im Kontextmenü eines Packages den konfigurierten Befehl Fehlgeschlagene Tests berechnen aus.
Aufruf des erstellten Befehls Fehlgeschlagene Tests berechnen über das Kontextmenü eines Packages

Beim Aufruf des Kommandos wird die Erweiterungsfunktion ausgeführt und in der Ausgabe sehen Sie prozentual die fehlgeschlagenen Tests.

nach Ausführen des Befehls erscheint in der Ausgabe eine Rückmeldung