ThingWorx Flow > ThingWorx Flow SDK > Konnektoren testen > Konnektortest-Automatisierung
Konnektortest-Automatisierung
Der Konnektortest-Hilfe-Assistent stellt eine Programmierschnittstelle für die Befehlszeilenschnittstelle bereit. Alle in der Befehlszeilenschnittstelle bereitgestellten Optionen können über die Programmierschnittstelle bereitgestellt werden. Dies ist nützlich, um einen interaktiven Rechenlauf unter Verwendung der Befehlszeilenschnittstelle in einen automatisierten Regressionstest umzuwandeln.
Das npm-Modul ptc-flow-test-helper stellt APIs zur Automatisierung von Testfällen für die Konnektorintegration bereit. Sie können diese APIs zusammen mit einem node.js-Test-Framework wie z.B. Mocha verwenden, um die Konnektor-Testfälle zu automatisieren.
Dieses npm-Modul stellt drei APIs bereit:
ConnectorTestHelper – Stellt APIs für das Aufrufen von Konnektor-Artefakten bereit
ConnectorSyntaxTestHelper – Überprüft die Syntax von Konnektor-Artefakten
JSONUtils – Stellt JSON-Dienstprogramme bereit, die als Bestätigungen im Testfall verwendet werden können
ConnectorTestHelper 
Er stellt die APIs für das Testen der folgenden Konnektor-Artefakte bereit:
ActionAPI – Konnektor-Aktion
ConnectionAPI – Konnektor-Verbindung
LookupAPI – Konnektor-Lookup
TriggerAPI – Konnektor-Trigger
CredsAPI – Dienstprogramm zum Lesen und Speichern der Konnektor-Authentifizierung
ActionAPI 
Unter Verwendung dieser Methode für eine Testsuite festgelegten Informationen müssen beim Testen eines einzelnen Testfalls übergeben werden.
setTestInfo-Methode: Diese Methode gibt von setTestInfo festgelegte Informationen zurück. Diese Methode legt Informationen auf Testsuite-Ebene fest.
Signatur : setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
In der folgenden Tabelle werden die einzelnen Parameter aus dem vorstehenden Beispiel erläutert:
Parameter
Beschreibung
name
Legt die Aktion fest, die durch die Testfälle getestet werden soll
connector
Legt den Konnektor fest, der durch die Testfälle getestet werden soll
version
Legt die zu testende Aktionsversion fest
access_token
Wenn ein Konnektor den OAuth-Authentifizierungsmechanismus verwendet, geben Sie den Namen des in der Datei creds.json gespeicherten OAuth-Objekts an.
connection
Wenn ein Konnektor den Verbindungs-Authentifizierungsmechanismus verwendet, geben Sie den Namen des in der Datei creds.json gespeicherten Verbindungsobjekts an.
skipSchemaValidation
Bei Festlegung auf "true" wird die Validierung der Aktionseingabe oder -ausgabe in Bezug auf das Eingabe- oder Ausgabeschema übersprungen.
logLevel
Legt die Protokollebene fest, die von ActionAPI verwendet werden soll
Die ActionAPI verwendet beim Aufrufen des Aktions-Artefakts die in dieser Methode festgelegten Informationen.
getTestInfo-Methode: Diese Methode gibt von setTestInfo festgelegte Informationen zurück
Signatur: getTestInfo()
Rückgabetyp (Objektinfo)
Test-Methode
Diese Methode führt das bereitgestellte Aktionsartefakt aus und gibt das Ergebnis zurück, das von der Konnektor-Aktion zurückgegeben wird.
Signature: test(Object input [optional], Object options [optional])
Rückgabetyp Promise-Objekt
input [optional]: Vom Aktionsartefakt akzeptiertes Eingabeobjekt bereitstellen, das dem JSON-Schema der Aktionseingabe entspricht
options [optional]: Objekt bereitstellen, das einige oder alle der in Objektinfo definierten Eigenschaften enthält. Der Eigenschaftswert dieses options-Objekts überschreibt Eigenschaften, die im info-Objekt auf Testsuite-Ebene durch die setTestInfo-Methode festgelegt sind.
Beispielsweise ist als Info auf Testsuite-Ebene die Verbindung action1 festgelegt. Sie können dieses Optionsobjekt zum Aufrufen einer Testmethode verwenden, die action2 statt action1 des Konnektors ausführt, indem Sie die Eigenschaft name : action2 übergeben. Dies ist nützlich, wenn action2 zum Erstellen oder Löschen von Testdaten verwendet wird, die von der Testsuite für action1 benötigt oder erstellt werden.
ConnectionAPI 
Unter Verwendung dieser Methode für eine Testsuite festgelegten Informationen müssen beim Testen eines einzelnen Testfalls übergeben werden.
setTestInfo-Methode: Diese Methode gibt von setTestInfo festgelegte Informationen zurück. Diese Methode legt Informationen auf Testsuite-Ebene fest.
Signatur : setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
In der folgenden Tabelle werden die einzelnen Parameter aus dem vorstehenden Beispiel erläutert:
Parameter
Beschreibung
name
Legt die Verbindung fest, die durch die Testfälle getestet werden soll
connector
Legt den Konnektor fest, der durch die Testfälle getestet werden soll
version
Legt die zu testende Verbindungsversion fest
skipSchemaValidation
Bei Festlegung auf "true" wird die Validierung der Aktionseingabe oder -ausgabe in Bezug auf das Eingabe- oder Ausgabeschema übersprungen.
logLevel
Legt die Protokollebene fest, die von der ConnectionAPI verwendet werden soll
Die ConnectionAPI verwendet beim Aufrufen des Verbindungs-Artefakts die in dieser Methode festgelegten Informationen.
getTestInfo-Methode: Gibt von setTestInfo festgelegte Informationen zurück
Signatur: getTestInfo() – Rückgabetyp (Objektinfo)
Test-Methode
Diese Methode führt das bereitgestellte Verbindungsartefakt aus und gibt Ergebnisse zurück, die von der Verbindungsartefakt zurückgegeben werden.
Signature: test(Object input [optional], Object options [optional])
Rückgabetyp Promise-Objekt
input [optional]: Vom Verbindungsartefakt akzeptiertes Eingabeobjekt bereitstellen, das dem JSON-Schema der Verbindungseingabe entspricht
options [optional]: Objekt bereitstellen, das einige oder alle der in Objektinfo definierten Eigenschaften enthält. Der Eigenschaftswert dieses options-Objekts überschreibt Eigenschaften, die im info-Objekt auf Testsuite-Ebene durch die setTestInfo-Methode festgelegt sind.
Beispielsweise werden Informationen auf Testsuite-Ebene für die Verbindung connection1 festgelegt. Sie können das Objekt dieser Option zum Aufrufen einer Testmethode verwenden, die connection2 statt connection1 des Konnektors ausführt, indem Sie die Eigenschaft name : connection2 übergeben. Dies ist nützlich, wenn connection2 zum Erstellen oder Löschen von Testdaten verwendet wird, die von der Testsuite für connection1 benötigt oder erstellt werden.
LookupAPI 
setTestInfo-Methode: Diese Methode gibt von setTestInfo festgelegte Informationen zurück. Diese Methode legt Informationen auf Testsuite-Ebene fest.
Signatur :setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
In der folgenden Tabelle werden die einzelnen Parameter aus dem vorstehenden Beispiel erläutert:
Parameter
Beschreibung
name
Legt das Lookup fest, das durch die Testfälle getestet werden soll
connector
Legt den Konnektor fest, der durch die Testfälle getestet werden soll
version
Legt die zu testende Suchversion fest
connection
Wenn ein Konnektor den Verbindungsauthentifizierungsmechanismus verwendet, wird hier der Name des in der Datei creds.json gespeicherten Verbindungsobjekts angegeben.
access token
Wenn ein Konnektor den OAuth-Authentifizierungsmechanismus verwendet, geben Sie den Namen des in der Datei creds.json gespeicherten OAuth-Objekts an.
skipSchemaValidation
Bei Festlegung auf "true" wird die Validierung der Aktionseingabe oder -ausgabe in Bezug auf das Eingabe- oder Ausgabeschema übersprungen.
logLevel
Legt die Protokollebene fest, die von der LookupAPI verwendet werden soll
Test-Methode
Diese Methode führt das bereitgestellte Lookup-Artefakt aus und gibt das Ergebnis zurück, das vom Lookup-Artefakt zurückgegeben wird.
Signature: test(String method, Object input [optional], Object options [optional])
Rückgabetyp Promise-Objekt
method: Namen der Lookup-Methode bereitstellen, die getestet werden muss.
input [optional]: Von der Lookup-Methode akzeptiertes Eingabeobjekt bereitstellen.
options [optional]: Objekt bereitstellen, das einige oder alle der in Objektinfo definierten Eigenschaften enthält. Der Eigenschaftswert dieses options-Objekts überschreibt Eigenschaften, die im info-Objekt auf Testsuite-Ebene durch die setTestInfo-Methode festgelegt sind.
Darüber hinaus können Sie die folgenden Eigenschaften mit diesem Objekt bereitstellen.
searchById
Legt die für die Suche zu verwendende ID fest
searchByValue
Legt den für die Suche zu verwendenden Wert fest
filter
Legt den Filter für die Suche nach Elementen fest
Wenn Sie die Lookup-Methode durch Angeben des SearchById-Werts ausführen möchten, verwenden Sie das options-Objekt, um diese Informationen bereitzustellen.
TriggerAPI 
Informationen, die unter Verwendung dieser Methode auf Testsuite-Ebene festgelegt werden, müssen beim Testen eines einzelnen Testfalls übergeben werden.
setTestInfo-Methode: Gibt von setTestInfo festgelegte Informationen zurück. Diese Methode legt Informationen auf Testsuite-Ebene fest.
Signatur : setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
In der folgenden Tabelle werden die einzelnen Parameter aus dem vorstehenden Beispiel erläutert:
Parameter
Beschreibung
name
Legt den durch die Testfälle zu testenden Trigger fest
connector
Legt den Konnektor fest, der durch die Testfälle getestet werden soll
version
Legt die zu testende Trigger-Version fest
access_token
Wenn ein Konnektor den OAuth-Authentifizierungsmechanismus verwendet, geben Sie den Namen des in der Datei creds.json gespeicherten OAuth-Objekts an.
connection
Wenn ein Konnektor den Verbindungs-Authentifizierungsmechanismus verwendet, geben Sie den Namen des in der Datei creds.json gespeicherten Verbindungsobjekts an.
skipSchemaValidation
Bei Festlegung auf "true" wird die Validierung der Aktionseingabe oder -ausgabe in Bezug auf das Eingabe-/Ausgabeschema übersprungen.
polling
Auf "wahr" einstellen, wenn es sich bei dem Trigger um einen Abruf-Trigger handelt.
logLevel
Legt die Protokollebene fest, die von der TriggerAPI verwendet werden soll
Die TriggerAPI verwendet die in dieser Methode festgelegten Informationen beim Aufruf des Aktionsartefakts.
getTestInfo-Methode: Gibt von setTestInfo festgelegte Informationen zurück
Signatur: getTestInfo() – Rückgabetyp (Objektinfo)
Test-Methode
Die Methode führt das angegebene Trigger-Artefakt aus und gibt das vom Konnektor-Trigger-Artefakt zurückgegebene Ergebnis zurück.
Signature: test(String method, String event, Object input [optional], Object options [optional])
Rückgabetyp, promise-Objekt
method: Namen der Trigger-Methode bereitstellen, die getestet werden muss.
event: Das im Trigger-Eingabeschema definierte Trigger-Ereignis bereitstellen.
input [optional]: Das von der Trigger-Methode akzeptierte Eingabeobjekt bereitstellen.
options [optional]: Objekt bereitstellen, das einige oder alle der in Objektinfo definierten Eigenschaften enthält. Der Eigenschaftswert dieses options-Objekts überschreibt relevante Eigenschaften, die im info-Objekt auf Testsuite-Ebene durch die setTestInfo-Methode festgelegt sind.
Zusätzlich können Sie die folgenden Eigenschaften mit diesem Objekt zum Testen des Abruf-Triggers angeben.
interval
Legt das Intervall in Sekunden fest, nach dem getriggert werden soll.
stopAfter
Legt die maximale Anzahl von Aufrufen für den Trigger fest.
meta
Legt das Meta-Objekt fest.
unixTime
System zur Beschreibung eines Zeitpunkts, definiert als eine Annäherung der Anzahl von Sekunden
Wenn Sie beispielsweise die unixTime beim Testen des Abruf-Triggers festlegen möchten, verwenden Sie die oben genannten Optionen.
CredsAPI 
In dieser Datei werden folgende Methoden verwendet:
getConnectionById: Gibt die Verbindungsdetails basierend auf dem angegebenen Verbindungsobjektnamen zurück.
Signatur: getConnectionById(uid)
getConnectionByIdWithHandle: Gibt die Verbindungsdetails in einem Handle-Objekt zurück.
Signatur: getConnectionByIdWithHandle(uid)
getOauthById: Gibt die OAuth-Details basierend auf dem angegebenen OAuth-Objektnamen zurück.
Signatur: getOauthById(uid)
getOauthByIdWithHandle: Gibt die OAuth-Details in einem Handle-Objekt zurück.
Signatur: getOauthByIdWithHandle()
saveConnection: Speichert eine Verbindung.
Signatur: saveConnection()
saveOauth: Speichert die OAuth-Details in der Datei creds.json.
Signatur: saveOauth()
ConnectorSyntaxTestHelper-API 
Diese Methode validiert die Syntax von Konnektor-Artefakten.
Sie kann wie folgt in Einheitentests verwendet werden:
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())
JSONUtils-API 
JSON-Bestätigungsbibliothek
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: Bestätigungsmethode für den Vergleich von JSON-Objekten. Das dadurch zurückgegebene Promise wird gelöst, wenn beide JSON-Objekte übereinstimmen; ansonsten wird Promise mit einer Fehlermeldung ignoreDiff = { keys : [Array der im Vergleich zu ignorierenden Felder]} zurückgewiesen
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
Bestätigungsmethode für den Vergleich, wenn actualJSONArray eine Untermenge von expectedJSONArray ist
Das dadurch zurückgegebene Promise wird gelöst, wenn actualJSONArray eine Untermenge von expectedJSONArray ist; ansonsten wird Promise mit einer Fehlermeldung zurückgewiesen
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
War dies hilfreich?