Tutoriales

Cómo definir casos de prueba en flujos del FlowEngine

En esta entrada vamos a mostrar cómo se pueden definir casos de prueba dentro del FlowEngine, sin necesidad de copiar los flujos, cambiar los enlaces o hacer ningún tipo de modificación sobre los flujos en producción.

Esto es tan sencillo como seguir los siguientes pasos:

1.- Instalar el nodo «node-red-contrib-flow-asserter»

Para ello, navegaremos al menú de «Manage palette».


Una vez desplegado el menú, buscamos el nodo con nombre «node-red-contrib-flow-asserter».

2.- Definir un flujo para probar

Simplemente, creamos un flujo según nuestras necesidades. Para este ejemplo, vamos a crear un flujo que inserta datos en una ontología:

3.- Añadimos el nodo «flow-asseter out node»

Este nodo define dónde se realiza la evaluación de las pruebas. En nuestro ejemplo, queremos evaluar si la inserción ha sido satisfactoria (o no), así que lo colocaremos tras el nodo INSERT.


Si se lanza la evaluación de pruebas, el mensaje no será mandado al siguiente nodo (debug msg), sino que saldrá por la salida inferior del nodo «flow-asserter in». Cuando el flujo se ejecuta de manera normal (no los tests), este nodo se ignora.

4.- Definir los casos de pruebas añadiendo un nodo «flow-asserter in»



Este nodo tiene dos salidas. La superior, que se conecta con el flujo a probar y genera un mensaje para caso de prueba; y la inferior, que mostrará el resultado de cada caso de prueba. Dentro del nodo podemos definir tantos casos de prueba como nos sean necesarios: 

El campo «input» representa el valor que viajará en el «msg.payload» para la prueba. Los dos campos restantes definen cómo comparar el resultado del msg.payload en el nodo «flow-asserter out» para determinar si el test es satisfactorio.

En este ejemplo vamos a definir dos pruebas:

  1. Envía una instancia de ontología válida a insertar: por lo que esperamos que como resultado tengamos una lista de IDs. En ese caso la comprobación será que el resultado de la inserción debe tener la cadena «ids».
  2. Envía una instancia de ontología vacía: lo que hará que el proceso de inserción falle. Como comprobación del fallo, buscaremos que la respuesta contenga la cadena «Error processing data». También hay que enlazar este nodo al «flow-asserter out» seleccionando su ID en el campo «flow-asserter out node».

Ejecutando las pruebas

Guardamos los cambios pulsando en el botón «Deploy».


Probar la ejecución de pruebas. Pulsando en la pestaña izquierda del botón «flow-asserter in», y lanzaremos los distintos casos de pruebas:


Cada caso de prueba genera un mensaje en el flujo, cuyos resultados podemos ver en la segunda salida:

Incluso podemos cambiar la salida para que inserte el resultado de las pruebas en la ontología de auditoría de nuestro usuario: 

Y podemos consultarlo, por ejemplo, desde el Query Tool

Probar la ejecución normal

Si lanzamos el flujo de manera normal, los nodos de pruebas serán ignorados, por lo que todo debería de funcionar normalmente. Nota: Es importante recordar que cada nodo ejecutado con los test persistirá su operación como si se tratara de una ejecución normal.

Podéis encontrar más información sobre el nodo AQUÍ.

✍🏻 Author(s)

Deja una respuesta