Ir al contenido

Control

Cinco cajas dirigen el flujo de ejecución de un escenario.

Recordatorio: toda caja tiene además los puertos implícitos in, error y done: consulte Puertos y enlaces.

Declara los parámetros del escenario.

Entradasninguna
Salidasvalue — un objeto único { nombre: valor, … }
Configuraciónname (el nombre del parámetro), valueType (su tipo y su valor por defecto)

Los valores se proporcionan al lanzar, mediante --param nom=valeur en línea de comandos, o se piden de forma interactiva si la ejecución llega a la caja sin ningún valor disponible.

Entrada «baseUrl» (cadena) ──► puerto env de la petición

Expone un resultado a quien llama al escenario.

Entradasvalue
Salidasninguna: es un sumidero, sin error ni done
Configuraciónname

Un escenario invocado por una acción Ejecutar el escenario deja cada una de sus salidas disponible en el puerto output:<nom> de quien lo llama.

Ramificación de dos vías.

Entradasleft, right
Salidasthen, else
Configuraciónoperator: lt, lte, eq, gte, gt, ne, contains, además de left y right como valores literales

Consejo: si no hay ningún operando cableado ni rellenado, la caja comprueba simplemente la veracidad de la señal recibida en in. Es el «si hemos llegado hasta aquí» sin condición explícita.

Ramificación de N vías.

Entradason
Salidasun puerto case-<id> por caso declarado, más default
Configuracióncases: una lista de { id, value }

Es preferible a una cascada de If en cuanto hay más de dos salidas posibles: cada caso es un hilo distinto, visualmente legible.

Frontera de recuperación ante errores.

EntradasmaxAttempts, delay
Salidasattempt (cada intento), exhausted (intentos agotados)
Configuraciónvéase más abajo
CampoPor defectoFunción
maxAttempts3Número máximo de intentos
backofffixedfixed, linear o exponential
delay + delayUnitRetardo base (ms, s, min)
factor2Factor de crecimiento en modo exponencial
maxDelay + maxDelayUnitTope del retardo
retryOnErrortrueReintentar en caso de error
retryOnFailurefalseReintentar en caso de fallo de negocio
retryOnStatusLista de estados HTTP, por ejemplo [429, 503]

El subgrafo conectado a attempt constituye el ámbito reintentado. En caso de éxito, la salida se produce por done. Esta caja no tiene puerto error: es ella la frontera.

Réessayer (3, exponentiel, [429,503])
├─ attempt ──► Requête HTTP ──► Assert
└─ exhausted ──► Throw « service indisponible »