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.
Input / Param (entrada / parámetro)
Section titled “Input / Param (entrada / parámetro)”Declara los parámetros del escenario.
| Entradas | ninguna |
| Salidas | value — un objeto único { nombre: valor, … } |
| Configuración | name (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ónOutput / Return (salida / retorno)
Section titled “Output / Return (salida / retorno)”Expone un resultado a quien llama al escenario.
| Entradas | value |
| Salidas | ninguna: es un sumidero, sin error ni done |
| Configuración | name |
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.
If (si)
Section titled “If (si)”Ramificación de dos vías.
| Entradas | left, right |
| Salidas | then, else |
| Configuración | operator: 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.
Switch (conmutador)
Section titled “Switch (conmutador)”Ramificación de N vías.
| Entradas | on |
| Salidas | un puerto case-<id> por caso declarado, más default |
| Configuración | cases: 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.
Retry (reintentar)
Section titled “Retry (reintentar)”Frontera de recuperación ante errores.
| Entradas | maxAttempts, delay |
| Salidas | attempt (cada intento), exhausted (intentos agotados) |
| Configuración | véase más abajo |
| Campo | Por defecto | Función |
|---|---|---|
maxAttempts | 3 | Número máximo de intentos |
backoff | fixed | fixed, linear o exponential |
delay + delayUnit | — | Retardo base (ms, s, min) |
factor | 2 | Factor de crecimiento en modo exponencial |
maxDelay + maxDelayUnit | — | Tope del retardo |
retryOnError | true | Reintentar en caso de error |
retryOnFailure | false | Reintentar en caso de fallo de negocio |
retryOnStatus | — | Lista 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 »