ThingWorx Flow > SDK de ThingWorx Flow > Automatización de la prueba del conector
Automatización de la prueba del conector
El asistente de prueba del conector proporciona una interfaz de programación a la CLI. Todas las opciones proporcionadas en la CLI se pueden suministrar también a través de la interfaz de programación. Esto es útil para convertir una ejecución interactiva mediante la CLI en una prueba de regresión automatizada.
El módulo NPM ptc-flow-test-helper proporciona las API para automatizar casos de prueba de integración del conector. Estas API se pueden utilizar junto con cualquier marco de pruebas de node.js como, por ejemplo, mocha, para automatizar los casos de prueba del conector.
En este módulo NPM se proporcionan tres API:
ConnectorTestHelper: se proporcionan las API para invocar elementos de conector.
ConnectorSyntaxTestHelper: se verifica la sintaxis de los elementos de conector.
JSONUtils: se proporcionan utilidades JSON que se emplean como condiciones en el caso de prueba.
ConnectorTestHelper
Se proporcionan las API para probar los siguientes elementos de conector:
ActionAPI: acción de conector.
ConnectionAPI: conexión de conector.
LookupAPI: búsqueda de conector.
TriggerAPI: activador de conector.
CredsAPI: utilidad para leer y almacenar la autenticación de conector.
ActionAPI
La información definida en el conjunto de prueba mediante este método se debe transmitir al probar un caso de prueba individual.
El método setTestInfo devuelve la información definida por setTestInfo. Este método permite definir información para el nivel del conjunto de prueba.
Firma:setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros
Descripción
name
Permite definir la acción que los casos de prueba van a probar.
connector
Permite definir el conector que los casos de prueba van a probar.
version
Permite definir la versión de la acción que se va a probar.
access_token
Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json.
connection
Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json.
skipSchemaValidation
Se define en true para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida.
logLevel
Defina el nivel de registro que ActionAPI debe utilizar.
ActionAPI utiliza la información definida en este método al invocar el elemento de acción.
Método getTestInfo: este método devuelve la información definida por setTestInfo.
Firma: getTestInfo()
Tipo de devolución (información de objeto)
Método test
Este método ejecuta el elemento de acción proporcionado y devuelve el resultado devuelto por la acción del conector.
Signature: test(Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
input [optional]: permite especificar un objeto de entrada aceptado por el elemento de acción que está de acuerdo con el esquema JSON de la entrada de acción.
options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información del nivel de conjunto de prueba, por el método setTestInfo.
Por ejemplo, se define la información de nivel de conjunto de prueba para action1 de conexión. Se puede utilizar este objeto de opciones para invocar un método de prueba que ejecuta action2 del conector en lugar de action1 pasando la propiedad name: action2. Esto es útil si se utiliza action2 para crear o borrar datos de prueba necesarios o creados por el conjunto de prueba para action1.
ConnectionAPI
La información definida en un conjunto de prueba mediante este método se debe transmitir al probar un caso de prueba individual.
Método setTestInfo: este método permite devolver información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
skipSchemaValidation: <boolean>,
logLevel: <string>
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros
Descripción
name
Permite definir la conexión que los casos de prueba van a probar.
connector
Permite definir el conector que los casos de prueba van a probar.
version
Permite definir la versión de la conexión que se va a probar.
skipSchemaValidation
Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida.
logLevel
Defina el nivel de registro que ConnectionAPI debe utilizar.
ConnectionAPI utiliza la información definida en este método al invocar el elemento de conexión.
Método getTestInfo: se devuelve la información definida por setTestInfo.
Firma: getTestInfo(): tipo de devolución (información de objeto)
Método test
El método ejecuta el elemento de conexión proporcionado y devuelve el resultado devuelto por el elemento de conexión del conector.
Signature: test(Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
input [optional]: permite especificar el objeto de entrada aceptado por el elemento de conexión que está de acuerdo con el esquema JSON de entrada de conexión.
options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información de un nivel de conjunto de prueba, por el método setTestInfo.
Por ejemplo, se define la información de nivel de conjunto de prueba para connection1 de conexión. Se puede utilizar este objeto de opción para invocar un método de prueba que ejecuta connection2 del conector en lugar de connection1 pasando la propiedad name: connection2. Esto es útil si se utiliza connection2 para crear o borrar datos de prueba necesarios o creados por el conjunto de prueba para connection1.
LookupAPI
Método setTestInfo: este método permite devolver información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma:setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
connection: <string>,
access_token: <string>
logLevel: <string>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros
Descripción
name
Permite definir la búsqueda que los casos de prueba van a probar.
connector
Permite definir el conector que los casos de prueba van a probar.
version
Permite definir la versión de la búsqueda que se va a probar.
connection
Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json.
access token
Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json.
skipSchemaValidation
Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida.
logLevel
Defina el nivel de registro que LookupAPI debe utilizar.
Método test
El método ejecuta el elemento de búsqueda proporcionado y devuelve el resultado devuelto por el elemento de búsqueda del conector.
Signature: test(String method, Object input [optional], Object options [optional])
Objeto de promesa de tipo de devolución
method: permite especificar el nombre del método de búsqueda que se debe probar.
input [optional]: permite especificar el objeto de entrada aceptado por el método de búsqueda.
options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades definidas en el objeto de información del nivel de conjunto de prueba, por el método setTestInfo.
Además, se pueden proporcionar las siguientes propiedades con este objeto.
searchById
Permite definir el ID que se utilizará para la búsqueda.
searchByValue
Permite definir el valor que se utilizará para la búsqueda.
filter
Permite definir el filtro para buscar elementos.
Por ejemplo, si desea ejecutar el método de búsqueda proporcionando el valor SearchById, utilice el objeto options para proporcionar esta información.
TriggerAPI
La información definida en el conjunto de prueba mediante este método se debe pasar al probar un caso de prueba individual.
Método setTestInfo: se devuelve la información definida por setTestInfo. Este método define la información de nivel de conjunto de prueba.
Firma: setTestInfo (Object info)
info = {
name: <string>,
connector: <connector object>,
version: <integer>,
access_token: <string>,
connection: <string>,
skipSchemaValidation: <boolean>,
logLevel: <string>
polling: <boolean>
}
En la siguiente tabla se explica cada parámetro del ejemplo anterior:
Parámetros
Descripción
name
Permite definir el activador que los casos de prueba van a probar.
connector
Permite definir el conector que los casos de prueba van a probar.
version
Permite definir la versión del activador que se va a probar.
access_token
Si un conector utiliza el mecanismo de autenticación de OAuth, proporcione el nombre del objeto de OAuth almacenado en el fichero creds.json.
connection
Si un conector utiliza el mecanismo de autenticación de conexión, proporcione el nombre del objeto de conexión almacenado en el fichero creds.json.
skipSchemaValidation
Se define en verdadero para omitir la validación de la entrada o salida de la acción con el esquema de entrada o salida.
polling
Se debe definir en verdadero si el tipo de activador es un activador de sondeo.
logLevel
Defina el nivel de registro que TriggerAPI debe utilizar.
TriggerAPI utiliza la información definida en este método al invocar el elemento de acción.
Método getTestInfo: se devuelve la información definida por setTestInfo.
Firma: getTestInfo(): tipo de devolución (información de objeto)
Método test
El método ejecuta el elemento de activador proporcionado y devuelve el resultado devuelto por el elemento de activador del conector.
Signature: test(String method, String event, Object input [optional], Object options [optional])
Tipo de devolución, objeto de promesa
method: permite especificar el nombre del método de activador que se debe probar.
event: permite especificar el evento de activador definido en el esquema de entrada del activador.
input [optional]: permite especificar el objeto de entrada aceptado por el método de activador.
options [optional]: permite especificar el objeto en el que se incluyen algunas o todas las propiedades definidas en la información del objeto. El valor de las propiedades de este objeto de opciones sustituye a las propiedades pertinentes definidas en el objeto de información del nivel de conjunto de prueba por el método setTestInfo.
Además, se pueden proporcionar las siguientes propiedades con este objeto para las pruebas del activador de sondeo.
interval
Permite definir el intervalo en segundos después del cual se debe activar.
stopAfter
Permite definir el número máximo de llamadas al activador.
meta
Permite definir el objeto de metadatos.
unixTime
Sistema para describir un punto en el tiempo, definido como una aproximación del número de segundos.
Por ejemplo, si desea definir unixTime durante las pruebas del activador de sondeo, utilice las opciones anteriores.
CredsAPI
Los métodos que se utilizan en este fichero son los siguientes:
getConnectionById: se devuelven los detalles de conexión en función del nombre de objeto de conexión proporcionado.
Firma: getConnectionById(uid)
getConnectionByIdWithHandle: se devuelven los detalles de conexión de un objeto de controlador.
Firma: getConnectionByIdWithHandle(uid)
getOauthById: se devuelven los detalles de OAuth en función del nombre de objeto de OAuth proporcionado.
Firma: getOauthById(uid)
getOauthByIdWithHandle: se devuelven los detalles de OAuth en un objeto de controlador.
Firma: getOauthByIdWithHandle()
saveConnection: se guarda una conexión.
Firma: saveConnection()
saveOauth: se guardan los detalles de OAuth en el fichero creds.json.
Firma: saveOauth()
API de JSONUtils
Biblioteca de condiciones JSON
compareJSONs (Object actualJSON, Object expectedJSON, Object ignoreDiff [optional]) returnType promise: método de condición para comparar objetos JSON, la promesa que devuelve se resuelve si ambos objetos JSON coinciden, en otro caso se rechaza la promesa con un error ignoreDiff = { keys : [matriz de campos que se deben omitir en la comparación]}
verifyArraySubset (Object actualJSONArray, Object expectedJSONArray, Object ignoreDiff [optional]) returnType promise
Método de condición para comparar si actualJSONArray es un subconjunto de expectedJSONArray
La promesa devuelta se resuelve si actualJSONArray es un subconjunto de expectedJSONArray, en otro caso se rechaza la promesa con un error
ignoreDiff = { keys : [array of fields to be ignored from comparison]}
API de ConnectorSyntaxTestHelper
Este método valida la sintaxis de los elementos de conector.
Se puede utilizar en la prueba de unidad, tal como se indica a continuación:
/* eslint-env mocha */
const ConnectorSyntaxTestHelperClass = require('ptc-flow-test-helper').ConnectorSyntaxTestHelper
const connector = require('../../index')
const ConnectorSyntaxTestHelper = new ConnectorSyntaxTestHelperClass(connector)
describe('usgeocoderConnectorSyntaxTest', ConnectorSyntaxTestHelper.tests())