Salta ai contenuti

Controllo

Cinque riquadri governano il flusso di esecuzione di uno scenario.

Promemoria: ogni riquadro possiede anche le porte implicite in, error e done — si veda Porte e collegamenti.

Dichiara i parametri dello scenario.

Inputnessuno
Outputvalue — un oggetto unico { name: value, … }
Configurazionename (il nome del parametro), valueType (il suo tipo e il suo valore predefinito)

I valori vengono forniti al lancio, con --param name=value dalla riga di comando, oppure richiesti in modo interattivo se l’esecuzione raggiunge il riquadro senza un valore disponibile.

Input «baseUrl» (stringa) ──► porta env della richiesta

Espone un risultato al chiamante dello scenario.

Inputvalue
Outputnessuno — è un pozzo: né error, né done
Configurazionename

Uno scenario chiamato da un’azione Esegui lo scenario rende ciascuna delle sue uscite disponibile sulla porta output:<name> del chiamante.

Diramazione a due vie.

Inputleft, right
Outputthen, else
Configurazioneoperator: lt, lte, eq, gte, gt, ne, contains — più left e right come valori letterali

Suggerimento: se nessun operando è cablato né compilato, il riquadro verifica semplicemente la veridicità del segnale ricevuto su in. È il «se siamo arrivati fin qui» senza condizione esplicita.

Diramazione a N vie.

Inputon
Outputuna porta case-<id> per ogni caso dichiarato, più default
Configurazionecases: un elenco di { id, value }

Preferibile a una cascata di If appena ci sono più di due esiti: ogni caso è un filo distinto, visivamente leggibile.

Frontiera di ripresa su errore.

InputmaxAttempts, delay
Outputattempt (ogni tentativo), exhausted (tentativi esauriti)
Configurazionesi veda più sotto
CampoPredefinitoRuolo
maxAttempts3Numero massimo di tentativi
backofffixedfixed, linear o exponential
delay + delayUnitRitardo di base (ms, s, min)
factor2Fattore di crescita in modalità esponenziale
maxDelay + maxDelayUnitLimite massimo del ritardo
retryOnErrortrueRiprovare in caso di errore
retryOnFailurefalseRiprovare in caso di fallimento applicativo
retryOnStatusElenco di stati HTTP, per esempio [429, 503]

Il sottografo collegato a attempt costituisce l’ambito ritentato. In caso di successo, l’uscita avviene tramite done. Questo riquadro non ha porta error: è esso stesso la frontiera.

Riprova (3, esponenziale, [429,503])
├─ attempt ──► Richiesta HTTP ──► Assert
└─ exhausted ──► Throw «servizio non disponibile»