ThingWorx Flow > SDK di ThingWorx Flow > Automazione dei test del connettore
Automazione dei test del connettore
Il test helper del connettore fornisce un'interfaccia programmatica alla riga di comando. Tutte le opzioni disponibili nell'interfaccia della riga di comando possono essere fornite anche tramite l'interfaccia programmatica. Ciò è utile per convertire un'esecuzione interattiva che utilizza l'interfaccia dalla riga di comando in un test di regressione automatico.
Il modulo npm ptc-flow-test-helper fornisce le API per automatizzare i test case per l'integrazione del connettore. È possibile utilizzare queste API insieme a un qualsiasi framework di test node.js, ad esempio mocha, per automatizzare i test case del connettore.
Questo modulo npm include le tre API descritte di seguito.
ConnectorTestHelper - Fornisce le API per richiamare elementi del connettore.
ConnectorSyntaxTestHelper - Verifica la sintassi degli elementi del connettore.
JSONUtils- Fornisce utilità JSON da usare come condizioni nel test case.
ConnectorTestHelper
Fornisce le API per testare gli elementi del connettore indicati di seguito.
ActionAPI - Azione di connettore
ConnectionAPI - Connessione di connettore
LookupAPI - Ricerca di connettore
TriggerAPI - Trigger di connettore
CredsAPI - Utilità per leggere e memorizzare l'autenticazione del connettore.
ActionAPI
Le informazioni impostate nella suite di test che utilizza questo metodo devono essere passate durante il test di un singolo test case.
Il metodo setTestInfo restituisce le informazioni impostate da setTestInfo. Questo metodo imposta le informazioni per il livello della suite di test.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
Nella tabella seguente viene descritto ogni parametro utilizzato nell'esempio precedente:
Parametri
Descrizione
name
Imposta l'azione da testare con i test case.
connector
Imposta il connettore da testare con i test case.
version
Imposta la versione dell'azione da testare.
access_token
Se un connettore utilizza il meccanismo di autenticazione OAuth, specificare il nome dell'oggetto OAuth memorizzato nel file creds.json.
connection
Se un connettore utilizza il meccanismo di autenticazione della connessione, specificare il nome dell'oggetto connessione memorizzato nel file creds.json.
skipSchemaValidation
Impostare su true per ignorare la convalida dell'input o dell'output dell'azione rispetto allo schema di input o di output.
logLevel
Impostare il livello di registrazione che deve essere utilizzato da ActionAPI.
ActionAPI utilizza le informazioni impostate in questo metodo mentre richiama l'elemento azione.
Metodo getTestInfo: questo metodo restituisce le informazioni impostate da setTestInfo.
Firma: getTestInfo()
Tipo restituito (informazioni sull'oggetto)
Metodo test
Questo metodo esegue l'elemento azione specificato e restituisce il risultato restituito dall'azione del connettore.
Signature: test(Object input [optional], Object options [optional])
Tipo restituito (oggetto promessa)
input [optional] - Specificare un oggetto input accettato dall'elemento azione che è in accordo con lo schema JSON di input dell'azione.
options [optional] - Specificare l'oggetto che include alcune o tutte le proprietà definite nelle informazioni sull'oggetto. Il valore delle proprietà di questo oggetto options sostituisce le proprietà impostate nell'oggetto info a livello di suite di test dal metodo setTestInfo.
Le informazioni sul livello di suite di test, ad esempio, vengono impostate per action1 della connessione. È possibile utilizzare questo oggetto options per richiamare un metodo test che esegue action2 invece di action1 del connettore passando la proprietà name: action2. Ciò è utile se il parametro action2 viene utilizzato per creare o eliminare i dati di test richiesti o creati dalla suite di test per il parametro action1.
ConnectionAPI
Le informazioni impostate in una suite di test che utilizza questo metodo devono essere passate durante il test di un singolo test case.
Metodo setTestInfo: questo metodo restituisce informazioni impostate da setTestInfo. Questo metodo imposta le informazioni sul livello della suite di test.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
Nella tabella seguente viene descritto ogni parametro utilizzato nell'esempio precedente:
Parametri
Descrizione
name
Imposta la connessione da testare con i test case.
connector
Imposta il connettore da testare con i test case.
version
Imposta la versione della connessione da testare.
skipSchemaValidation
Impostare su true per ignorare la convalida dell'input o dell'output dell'azione rispetto allo schema di input o di output.
logLevel
Impostare il livello di registrazione che deve essere utilizzato da ConnectionAPI.
ConnectionAPI utilizza le informazioni impostate in questo metodo mentre richiama l'elemento connessione.
Metodo getTestInfo - Restituisce le informazioni impostate da setTestInfo.
Firma: getTestInfo() - Tipo restituito (informazioni sull'oggetto).
Metodo test
Questo metodo esegue l'elemento connessione specificato e restituisce il risultato restituito dall'elemento connessione del connettore.
Signature: test(Object input [optional], Object options [optional])
Tipo restituito (oggetto promessa)
input [optional] - Specificare l'oggetto input accettato dall'elemento connessione che è in accordo con lo schema di input JSON della connessione.
options [optional] - Specificare l'oggetto che include alcune o tutte le proprietà definite nelle informazioni sull'oggetto. Il valore delle proprietà di questo oggetto options sostituisce le proprietà impostate nell'oggetto info a livello di suite di test dal metodo setTestInfo.
Le informazioni sul livello di suite di test, ad esempio, vengono impostate per connection1 della connessione. È possibile utilizzare questo oggetto options per richiamare un metodo test che esegue connection2 invece di connection1 del connettore passando la proprietà name : connection2. Ciò è utile se il parametro connection2 viene utilizzato per creare o eliminare i dati di test richiesti o creati dalla suite di test per il parametro connection1.
LookupAPI
Metodo setTestInfo: questo metodo restituisce informazioni impostate da setTestInfo. Questo metodo imposta le informazioni sul livello della suite di test.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
Nella tabella seguente viene descritto ogni parametro utilizzato nell'esempio precedente:
Parametri
Descrizione
name
Imposta la ricerca da testare con i test case.
connector
Imposta il connettore da testare con i test case.
version
Imposta la versione della ricerca da testare.
connection
Se un connettore utilizza il meccanismo di autenticazione della connessione, specificare il nome dell'oggetto connessione memorizzato nel file creds.json.
access token
Se un connettore utilizza il meccanismo di autenticazione OAuth, specificare il nome dell'oggetto OAuth memorizzato nel file creds.json.
skipSchemaValidation
Impostare su true per ignorare la convalida dell'input o dell'output dell'azione rispetto allo schema di input o di output.
logLevel
Impostare il livello di registrazione che deve essere utilizzato da LookupAPI.
Metodo test
Questo metodo esegue l'elemento ricerca specificato e restituisce il risultato restituito dall'elemento ricerca del connettore.
Signature: test(String method, Object input [optional], Object options [optional])
Tipo restituito (oggetto promessa)
method: specificare il nome del metodo della ricerca che deve essere testata.
input [optional]: specificare l'oggetto input accettato dal metodo di ricerca.
options [optional]: specificare l'oggetto che include alcune o tutte le proprietà definite nelle informazioni sull'oggetto. Il valore delle proprietà di questo oggetto options sostituisce le proprietà impostate nell'oggetto info a livello di suite di test dal metodo setTestInfo.
È inoltre possibile specificare le seguenti proprietà con questo oggetto.
searchById
Imposta l'ID da utilizzare per la ricerca.
searchByValue
Imposta il valore da utilizzare per la ricerca.
filter
Imposta il filtro per cercare gli elementi.
Se ad esempio si desidera eseguire il metodo di ricerca specificando il valore SearchById, utilizzare l'oggetto options per fornire queste informazioni.
TriggerAPI
Le informazioni impostate nella suite di test che utilizza questo metodo devono essere passate durante il test di un singolo test case.
Metodo setTestInfo - Restituisce le informazioni impostate da setTestInfo. Questo metodo imposta le informazioni sul livello della suite di test.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
Nella tabella seguente viene descritto ogni parametro utilizzato nell'esempio precedente:
Parametri
Descrizione
name
Imposta il trigger da testare con i test case.
connector
Imposta il connettore da testare con i test case.
version
Imposta la versione del trigger da testare.
access_token
Se un connettore utilizza il meccanismo di autenticazione OAuth, specificare il nome dell'oggetto OAuth memorizzato nel file creds.json.
connection
Se un connettore utilizza il meccanismo di autenticazione della connessione, specificare il nome dell'oggetto connessione memorizzato nel file creds.json.
skipSchemaValidation
Impostare su true per ignorare la convalida dell'input o dell'output dell'azione rispetto allo schema di input o di output.
polling
Impostarlo su True se il trigger è di tipo polling.
logLevel
Impostare il livello di registrazione che deve essere utilizzato da TriggerAPI.
TriggerAPI utilizza le informazioni impostate in questo metodo mentre richiama l'elemento azione.
Metodo getTestInfo - Restituisce le informazioni impostate da setTestInfo.
Firma: getTestInfo() - Tipo restituito (informazioni sull'oggetto).
Metodo test
Questo metodo esegue l'elemento trigger specificato e restituisce il risultato restituito dall'elemento trigger del connettore.
Signature: test(String method, String event, Object input [optional], Object options [optional])
Tipo restituito (oggetto promessa)
method - Specificare il nome del metodo del trigger che deve essere testato.
event - Specificare l'evento trigger definito nello schema di input del trigger.
input [optional] - Specificare l'oggetto input accettato dal metodo del trigger.
options [optional] - Specificare l'oggetto che include alcune o tutte le proprietà definite nelle informazioni sull'oggetto. Il valore delle proprietà di questo oggetto options sostituisce le proprietà pertinenti impostate nell'oggetto info a livello di suite di test dal metodo setTestInfo.
È inoltre possibile specificare le seguenti proprietà con questo oggetto per testare il trigger polling.
interval
Imposta l'intervallo in secondi da attendere prima di attivare.
stopAfter
Imposta il numero massimo di chiamate al trigger.
meta
Imposta il metaoggetto.
unixTime
Sistema per descrivere un punto nel tempo, definito come approssimazione del numero di secondi.
Se ad esempio si desidera impostare il parametro unixTime durante il test del trigger polling, utilizzare le suddette opzioni.
CredsAPI
Di seguito sono riportati i metodi utilizzati in questo file.
getConnectionById - Restituisce i dettagli della connessione in base al nome dell'oggetto connessione fornito.
Firma: getConnectionById(uid)
getConnectionByIdWithHandle - Restituisce i dettagli della connessione in un oggetto handle.
Firma: getConnectionByIdWithHandle(uid)
getOauthById - Descrive i dettagli di OAuth in base al nome dell'oggetto OAuth fornito.
Firma: getOauthById(uid)
getOauthByIdWithHandle - Restituisce i dettagli di OAuth in un oggetto handle.
Firma: getOauthByIdWithHandle()
saveConnection - Salva una connessione.
Firma: saveConnection()
saveOauth - Salva i dettagli di OAuth nel file creds.json.
Firma: saveOauth()
API JSONUtils
Libreria di condizioni JSON
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: metodo di condizione per confrontare oggetti json. La promessa restituita viene risolta se tutti gli oggetti json corrispondono; in caso contrario, promessa con errore ignoreDiff = {keys: [array of fields to be ignored from comparison]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
Metodo di condizione per confrontare se actualJSONArray sia un sottoinsieme di expectedJSONArray
La promessa restituita viene risolta se actualJSONArray è un sottoinsieme di expectedJSONArray; in caso contrario, la promessa viene rifiutata con un errore
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
API ConnectorSyntaxTestHelper
Questo metodo convalida la sintassi degli elementi del connettore.
Può essere utilizzato nello unit test come segue:
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())