Pular para o conteúdo

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.

Declara os parâmetros do cenário.

Entradasnenhuma
Saídasvalue — um objeto único { name: value, … }
Configuraçãoname (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 pedido

Expõe um resultado a quem invoca o cenário.

Entradasvalue
Saídasnenhuma — é um sumidouro: não tem error nem done
Configuraçãoname

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.

Ramificação com duas saídas.

Entradasleft, right
Saídasthen, else
Configuraçãooperator: 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.

Ramificação com N saídas.

Entradason
Saídasuma porta case-<id> por cada caso declarado, mais default
Configuraçãocases: 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.

Fronteira de recuperação em caso de erro.

EntradasmaxAttempts, delay
Saídasattempt (cada tentativa), exhausted (tentativas esgotadas)
Configuraçãover abaixo
CampoPredefiniçãoFunção
maxAttempts3Número máximo de tentativas
backofffixedfixed, linear ou exponential
delay + delayUnitAtraso de base (ms, s, min)
factor2Fator de crescimento no modo exponencial
maxDelay + maxDelayUnitLimite máximo do atraso
retryOnErrortrueRepetir em caso de erro
retryOnFailurefalseRepetir em caso de falha funcional
retryOnStatusLista 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”