ThingWorx Flow > SDK ThingWorx Flow > Automatisation du test des connecteurs
Automatisation du test des connecteurs
L'assistant de test des connecteurs fournit une interface de programmation à la CLI. Toutes les options utilisables sur la CLI peuvent également être fournies via l'interface de programmation. Ceci est particulièrement utile pour convertir une exécution interactive utilisant la CLI en un test de régression automatisé.
Le module npm ptc-flow-test-helper fournit des API pour automatiser les cas de test d'intégration des connecteurs. Vous pouvez utiliser ces API avec n'importe quelle infrastructure de test node.js (par exemple, mocha) pour automatiser les cas de test des connecteurs.
Ce module npm fournit trois API :
ConnectorTestHelper : fournit des API pour l'appel des artefacts de connecteur.
ConnectorSyntaxTestHelper : vérifie la syntaxe des artefacts de connecteur.
JSONUtils : fournit des utilitaires JSON à utiliser comme assertions dans le cas de test.
ConnectorTestHelper
Fournit les API voulues pour tester les types d'artefacts de connecteur suivants :
ActionAPI : action de connecteur
ConnectionAPI : connexion de connecteur
LookupAPI : lookup de connecteur
TriggerAPI : déclencheur de connecteur
CredsAPI : utilitaire pour la lecture et le stockage de l'authentification du connecteur
ActionAPI
Les informations définies au niveau de la suite de tests à l'aide de cette méthode doivent être transmises lors du test de chaque cas de test individuel.
La méthode setTestInfo renvoie les informations définies par setTestInfo. Elle définit les informations au niveau de la suite de tests.
Signature :setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
Le tableau suivant décrit chaque paramètre de l'exemple ci-dessus :
Paramètres
Description
name
Définit l'action à tester par les cas de test.
connector
Définit le connecteur à tester par les cas de test.
version
Définit la version de l'action à tester.
access_token
Si le connecteur utilise un mécanisme d'authentification OAuth, indiquez le nom de l'objet OAuth stocké dans le fichier creds.json.
connection
Si le connecteur utilise un mécanisme d'authentification par connexion, indiquez le nom de l'objet de connexion stocké dans le fichier creds.json.
skipSchemaValidation
Définissez le paramètre sur "true" pour ignorer la validation de l'entrée/sortie de l'action par rapport au schéma d'entrée/sortie.
logLevel
Définissez le niveau de journalisation à utiliser par ActionAPI.
ActionAPI utilise les informations définies dans cette méthode lors de l'appel de l'artefact d'action.
Méthode getTestInfo : cette méthode renvoie les informations définies par setTestInfo.
Signature : getTestInfo()
Type de renvoi (info objet)
Méthode test
Cette méthode exécute l'artefact d'action fourni et renvoie le résultat renvoyé par l'action du connecteur.
Signature: test(Object input [optional], Object options [optional])
Type de renvoi (objet promise)
input [optional] : spécifie un objet d'entrée accepté par l'artefact d'action conforme au schéma JSON d'entrée de l'action.
options [optional] : spécifie un objet qui inclut tout ou partie des propriétés définies dans l'information objet. Les propriétés de cet objet options remplacent les propriétés définies dans l'information objet au niveau de la suite de tests par la méthode setTestInfo.
Par exemple, l'information au niveau de la suite de tests est définie pour la connexion action1. Vous pouvez utiliser cet objet options pour appeler une méthode test afin d'exécuter l'action action2 du connecteur au lieu de l'action action1 en transmettant la propriété name : action2. Ceci sera utile si action2 est utilisé pour la création ou la suppression des données de test requises ou créées par la suite de tests pour action1.
ConnectionAPI
Les informations définies au niveau de la suite de tests à l'aide de cette méthode doivent être transmises lors du test de chaque cas de test individuel.
Méthode setTestInfo : cette méthode renvoie les informations définies par setTestInfo. Cette méthode définit les informations au niveau de la suite de tests.
Signature : setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
Le tableau suivant décrit chaque paramètre de l'exemple ci-dessus :
Paramètres
Description
name
Définit la connexion à tester par les cas de test.
connector
Définit le connecteur à tester par les cas de test.
version
Définit la version de la connexion à tester.
skipSchemaValidation
Définissez le paramètre sur "true" pour ignorer la validation de l'entrée/sortie de l'action par rapport au schéma d'entrée/sortie.
logLevel
Définissez le niveau de journalisation à utiliser par ConnectionAPI.
ConnectionAPI utilise les informations définies dans cette méthode lors de l'appel de l'artefact de connexion.
Méthode getTestInfo : renvoie les informations définies par setTestInfo.
Signature : getTestInfo() : Type de renvoi (info objet)
Méthode test
Cette méthode exécute l'artefact de connexion fourni et renvoie le résultat retourné par l'artefact de connexion du connecteur.
Signature: test(Object input [optional], Object options [optional])
Type de renvoi (objet promise)
input [optional] : spécifie un objet d'entrée accepté par l'artefact de connexion conforme au schéma JSON d'entrée de la connexion.
options [optional] : spécifie un objet qui inclut tout ou partie des propriétés définies dans l'information objet. Les propriétés de cet objet options remplacent les propriétés définies dans l'information objet au niveau d'une suite de tests par la méthode setTestInfo.
Par exemple, l'information au niveau de la suite de tests est définie pour la connexion connection1. Vous pouvez utiliser cet objet options pour appeler une méthode test afin d'exécuter la connexion connection2 du connecteur au lieu de la connexion connection1 en transmettant la propriété name : connection2. Ceci sera utile si connection2 est utilisé pour la création ou la suppression des données de test requises ou créées par la suite de tests pour connection1.
LookupAPI
Méthode setTestInfo : cette méthode renvoie les informations définies par setTestInfo. Cette méthode définit les informations au niveau de la suite de tests.
Signature :setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
Le tableau suivant décrit chaque paramètre de l'exemple ci-dessus :
Paramètres
Description
name
Définit le lookup à tester par les cas de test.
connector
Définit le connecteur à tester par les cas de test.
version
Définit la version du lookup à tester.
connection
Si le connecteur utilise un mécanisme d'authentification par connexion, indiquez le nom de l'objet de connexion stocké dans le fichier creds.json.
access token
Si le connecteur utilise un mécanisme d'authentification OAuth, indiquez le nom de l'objet OAuth stocké dans le fichier creds.json.
skipSchemaValidation
Définissez le paramètre sur "true" pour ignorer la validation de l'entrée/sortie de l'action par rapport au schéma d'entrée/sortie.
logLevel
Définissez le niveau de journalisation à utiliser par LookupAPI.
Méthode test
Cette méthode exécute l'artefact de lookup fourni et renvoie le résultat renvoyé par l'artefact de lookup du connecteur.
Signature: test(String method, Object input [optional], Object options [optional])
Type de renvoi (objet promise)
method : spécifie le nom de la méthode de lookup à tester.
input [optional] : spécifie un objet d'entrée accepté par la méthode de lookup.
options [optional] : spécifie un objet qui inclut tout ou partie des propriétés définies dans l'information objet. Les propriétés de cet objet options remplacent les propriétés définies dans l'information objet au niveau de la suite de tests par la méthode setTestInfo.
En outre, vous pouvez spécifier les propriétés suivantes avec cet objet.
searchById
Définit l'ID à utiliser pour la recherche.
searchByValue
Définit la valeur à utiliser pour la recherche.
filter
Définit le filtre à utiliser pour la recherche des éléments.
Par exemple, si vous souhaitez exécuter la méthode de lookup en fournissant la valeur SearchById, utilisez l'objet options pour fournir ces informations.
TriggerAPI
Les informations définies au niveau de la suite de tests à l'aide de cette méthode doivent être transmises lors du test de chaque cas de test individuel.
Méthode setTestInfo : renvoie les informations définies par setTestInfo. Cette méthode définit les informations au niveau de la suite de tests.
Signature : setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
Le tableau suivant décrit chaque paramètre de l'exemple ci-dessus :
Paramètres
Description
name
Définit le déclencheur à tester par les cas de test.
connector
Définit le connecteur à tester par les cas de test.
version
Définit la version du déclencheur à tester.
access_token
Si le connecteur utilise un mécanisme d'authentification OAuth, indiquez le nom de l'objet OAuth stocké dans le fichier creds.json.
connection
Si le connecteur utilise un mécanisme d'authentification par connexion, indiquez le nom de l'objet de connexion stocké dans le fichier creds.json.
skipSchemaValidation
Définissez le paramètre sur "true" pour ignorer la validation de l'entrée/sortie de l'action par rapport au schéma d'entrée/sortie.
polling
Définissez le paramètre sur "true" si le déclencheur est un déclencheur d'interrogation.
logLevel
Définissez le niveau de journalisation à utiliser par TriggerAPI.
TriggerAPI utilise les informations définies dans cette méthode lors de l'appel de l'artefact d'action.
Méthode getTestInfo : renvoie les informations définies par setTestInfo.
Signature : getTestInfo() : Type de renvoi (info objet)
Méthode test
Cette méthode exécute l'artefact de déclencheur fourni et renvoie le résultat renvoyé par l'artefact de déclencheur du connecteur.
Signature: test(String method, String event, Object input [optional], Object options [optional])
Type de renvoi (objet promise)
method : spécifie le nom de la méthode de déclencheur à tester.
event : spécifie l'événement déclencheur défini dans le schéma d'entrée du déclencheur.
input [optional] : spécifie un objet d'entrée accepté par la méthode de déclencheur.
options [optional] : spécifie un objet qui inclut tout ou partie des propriétés définies dans l'information objet. Les propriétés de cet objet options remplacent les propriétés pertinentes définies dans l'information objet au niveau de la suite de tests par la méthode setTestInfo.
En outre, vous pouvez fournir les propriétés suivantes avec cet objet pour tester le déclencheur d'interrogation.
interval
Définit l'intervalle de temps en secondes au terme duquel activer le déclencheur.
stopAfter
Définit le nombre maximal d'appels du déclencheur.
meta
Définit le méta-objet.
unixTime
Système pour la description d'un point dans le temps, défini sous la forme d'une approximation du nombre de secondes.
Par exemple, si vous souhaitez définir la propriété unixTime lors du test du déclencheur d'interrogation, utilisez les options ci-dessus.
CredsAPI
Les méthodes utilisées dans ce fichier sont les suivantes :
getConnectionById : renvoie les détails de la connexion compte tenu du nom de l'objet de connexion fourni.
Signature :getConnectionById(uid)
getConnectionByIdWithHandle : renvoie les détails de la connexion dans un objet handle.
Signature :getConnectionByIdWithHandle(uid)
getOauthById : renvoie les détails de l'authentification OAuth compte tenu du nom de l'objet OAuth fourni.
Signature :getOauthById(uid)
getOauthByIdWithHandle : renvoie les détails de l'authentification OAuth dans un objet handle.
Signature :getOauthByIdWithHandle()
saveConnection : enregistre une connexion.
Signature :saveConnection()
saveOauth : enregistre les détails de l'authentification OAuth dans le fichier creds.json.
Signature :saveOauth()
API JSONUtils
Bibliothèque d'assertions JSON
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: assertion method for comparing json objects Promise returned by it gets resolved if both json objects match else it rejects promise with an error ignoreDiff = { keys : [array of fields to be ignored from comparison]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
Méthode d'assertion pour déterminer si actualJSONArray est un sous-ensemble de expectedJSONArray.
L'objet promise renvoyé est résolu si actualJSONArray est un sous-ensemble du résultat expectedJSONArray, sinon l'objet est rejeté avec une erreur.
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
API ConnectorSyntaxTestHelper
Cette méthode valide la syntaxe des artefacts de connecteur.
Elle peut être utilisée dans les tests unitaires comme suit :
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())