Controlo
Cinco caixas comandam o fluxo de execução de um cenário.
Recorde-se: qualquer caixa possui também as portas implícitas in, error e
done — consulte Portas e ligações.
Input / Param (entrada / parâmetro)
Section titled “Input / Param (entrada / parâmetro)”Declara os parâmetros do cenário.
| Entradas | nenhuma |
| Saídas | value — um objeto único { name: value, … } |
| Configuração | name (o nome do parâmetro), valueType (o seu tipo e o seu valor predefinido) |
Os valores são fornecidos no arranque, através de --param name=value na linha
de comandos, ou pedidos interativamente se a execução chegar à caixa sem
nenhum valor disponível.
Entrada “baseUrl” (cadeia) ──► porta env do pedidoOutput / Return (saída / retorno)
Section titled “Output / Return (saída / retorno)”Expõe um resultado a quem invoca o cenário.
| Entradas | value |
| Saídas | nenhuma — é um sumidouro: não tem error nem done |
| Configuração | name |
Um cenário invocado por uma ação Executar cenário disponibiliza cada uma
das suas saídas na porta output:<name> de quem o invoca.
If (se)
Section titled “If (se)”Ramificação com duas saídas.
| Entradas | left, right |
| Saídas | then, else |
| Configuração | operator: lt, lte, eq, gte, gt, ne, contains — mais left e right como valores literais |
Sugestão: se nenhum dos operandos estiver ligado nem preenchido, a caixa
limita-se a testar a veracidade do sinal recebido em in. É o “se chegou até
aqui” sem condição explícita.
Switch (encaminhamento)
Section titled “Switch (encaminhamento)”Ramificação com N saídas.
| Entradas | on |
| Saídas | uma porta case-<id> por cada caso declarado, mais default |
| Configuração | cases: uma lista de { id, value } |
Preferível a uma cascata de If a partir do momento em que existem mais de duas saídas possíveis: cada caso é um fio distinto, visualmente legível.
Retry (repetir)
Section titled “Retry (repetir)”Fronteira de recuperação em caso de erro.
| Entradas | maxAttempts, delay |
| Saídas | attempt (cada tentativa), exhausted (tentativas esgotadas) |
| Configuração | ver abaixo |
| Campo | Predefinição | Função |
|---|---|---|
maxAttempts | 3 | Número máximo de tentativas |
backoff | fixed | fixed, linear ou exponential |
delay + delayUnit | — | Atraso de base (ms, s, min) |
factor | 2 | Fator de crescimento no modo exponencial |
maxDelay + maxDelayUnit | — | Limite máximo do atraso |
retryOnError | true | Repetir em caso de erro |
retryOnFailure | false | Repetir em caso de falha funcional |
retryOnStatus | — | Lista de estados HTTP, por exemplo [429, 503] |
O subgrafo ligado a attempt constitui o âmbito repetido. Em caso de sucesso, a
saída faz-se por done. Esta caixa não tem porta error: é ela a fronteira.
Retry (3, exponencial, [429,503]) ├─ attempt ──► Pedido HTTP ──► Assert └─ exhausted ──► Throw “serviço indisponível”