Apidog Docs
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. Cenários de teste
  • Centro de Aprendizagem da Apidog
  • Primeiros passos
    • Introdução ao Apidog
    • Conceitos Básicos no Apidog
    • Navegar no Apidog
    • Início rápido
      • Visão geral
      • Criar um Endpoint
      • Fazer um Pedido
      • Adicionar uma asserção
      • Criar Cenários de Teste
      • Partilhar Documentação da API
      • Explore Mais
    • Migração para o Apidog
      • Visão geral
      • Importação Manual
      • Importação Agendada (Vincular Fontes de Dados)
      • Opções de Importação
      • Exportar Dados
      • Importar de
        • Importar do Postman
        • Importar especificação OpenAPI
        • Importar cURL
        • Importar Markdowns
        • Importar a partir do Insomnia
        • Importar a partir de apiDoc
        • Importar Ficheiro .har
        • Importar WSDL
  • Apidog Europe
    • Apidog Europe
  • Dados de API mock
    • Visão geral
    • Smart Mock
    • Mock personalizado
    • Sequência de Prioridade do Mock
    • Scripts de Mock
    • Mock na Cloud
    • Mock do Runner Autoalojado
    • Idioma de Mock (Localidades)
  • Conta e preferências
    • Definições da Conta
    • Gerar um Token de Acesso OpenAPI
    • Notificações
    • Definições de Idioma
    • Teclas de Atalho
    • Configuração de Proxy de Rede
    • Cópia de Segurança dos Dados
    • Atualizar o Apidog
    • Eliminar Conta
    • Funcionalidades Experimentais
  • Enviar requisições
    • Visão geral
    • Depuração de SSE
    • Cliente MCP
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP ou WebService
    • GraphQL
    • gRPC
    • Utilizar Agentes de Proxy de Pedido para Depuração
    • Criar requisições
      • Histórico de Pedidos
      • Noções Básicas de Pedidos
      • Parâmetros e Corpo
      • Cabeçalhos do Pedido
      • Definições do Pedido
      • Depurar Pedidos
      • Guardar Pedidos como Endpoints
      • HTTP/2
    • Autenticação e autorização
      • Visão geral
      • Certificados CA e de Cliente
      • Tipos de autorização
      • Autenticação Digest
      • OAuth 1.0
      • OAuth 2.0
      • Autenticação Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Resposta e cookies
      • Visualizar Respostas de API
      • Gerir Cookies
      • Visão geral
  • Desenvolver e depurar APIs
    • Visão geral
    • Gerar Pedidos
    • Enviar Pedidos
    • Casos de Depuração
    • Casos de Teste
    • Valores Dinâmicos
    • Validação de Respostas
    • Design-First vs Request-First
    • Geração de Código
    • Ambientes e variáveis
      • Visão geral
      • Utilizar Variáveis
      • Gestão de Ambientes
    • Segredos do cofre
      • Visão geral
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Módulos de valores dinâmicos
      • Airline
      • Animal
      • Cor
      • Comércio
      • Empresa
      • Base de Dados
      • Tipo de dados
      • Data
      • Finanças
      • Alimentação
      • Git
      • Hacker
      • Helpers
      • Imagem
      • Internet
      • Localização
      • Lorem
      • Música
      • Número
      • Pessoa
      • Telefone
      • Ciência
      • String
      • Sistema
      • Veículo
      • Word
    • Pré e pós-processadores
      • Visão geral
      • Asserção
      • Extrair variável
      • Espera
      • Segurança
      • Operações de banco de dados
        • Visão geral
        • MySQL
        • MongoDB
        • Redis
        • Cliente Oracle
      • Uso de scripts
        • Visão geral
        • Scripts de Pré-processamento
        • Scripts de pós-processamento
        • Scripts Públicos
        • Referência de Scripts do Postman
        • Chamar Outras Linguagens de Programação
        • Utilizar Bibliotecas JS
        • Visualizar Respostas
        • Exemplos de scripts
          • Scripts de Asserção
          • Utilização de Variáveis
          • Modificar Pedidos
          • Outros exemplos
    • Depuração de APIs
      • Depurador de Agentes de IA
      • Depurador A2A
  • Projetar APIs
    • Visão geral
    • Criar um Novo Projeto de API
    • Noções Básicas de Endpoints
    • Diretrizes de Design de API
    • Módulo
    • Configurar vários exemplos de corpo do pedido
    • Componentes
    • Campos Comuns
    • Parâmetros Globais
    • Histórico de Alterações do Endpoint
    • Comentários
    • Gestão de Endpoints em Lote
    • API de Protocolo Personalizado
    • Modo Spec-first (Beta)
    • Esquemas de segurança
      • Visão geral
      • Criar um Esquema de Segurança
      • Utilizar o Esquema de Segurança
      • Esquema de Segurança na Documentação Online
    • Recursos avançados
      • Campos de Endpoint Personalizados
      • Cenários de Teste Associados
      • Estado do endpoint
      • Aparência das listas de parâmetros
      • Identificação Única de Endpoint
    • Schemas
      • Visão geral
      • Criar um Novo Schema
      • Criar um Schema
      • Gerar esquemas a partir de JSON, etc.
      • oneOf, allOf, anyOf
      • Utilizar Discriminator
  • Testes de API
    • Visão geral
    • Cenários de teste
      • Criar um Cenário de Teste
      • Passar Dados Entre Pedidos
      • Condições de Controlo de Fluxo
      • Sincronizar Dados de Endpoints e Casos de Endpoint
      • Importar Endpoints e Casos de Endpoint de Outros Projetos
      • Exportar Cenários de Teste
    • Relatórios de teste
      • Relatórios de Teste
    • Executar cenários de teste
      • Executar um cenário de teste
      • Executar cenários de teste em lote
      • Testes Orientados por Dados
      • Dados de Teste Partilhados
      • Tarefas agendadas
      • Gerir o ambiente de runtime de APIs de outros projetos
    • Suíte de testes
      • Visão geral
      • Criar Uma Suite de Testes
      • Orquestrar Conjunto de Testes
      • Executar Conjuntos de Testes Localmente
      • Executar conjuntos de testes via CLI
      • Tarefas agendadas
    • Testar APIs
      • Testes de Integração
      • Testes de desempenho
      • Testes de Ponta a Ponta
      • Teste de regressão
      • Testes de Contrato
    • Apidog CLI
      • Visão geral
      • Instalar e Executar o Apidog CLI
      • Opções da CLI do Apidog
    • CI/CD
      • Visão geral
      • Integrar com o Github Actions
      • Integrar com o Gitlab
      • Integrar com Jenkins
      • Acionar Teste por Commit Git
  • Publicar documentação de API
    • Visão geral
    • Tecnologias de API Suportadas
    • Partilha Rápida
    • Visualizar a Documentação da API
    • Documentação Markdown
    • Publicar Sites de Documentação
    • Página de Início de Sessão Personalizada
    • Layouts personalizados
    • CSS, JavaScript, HTML personalizados
    • Domínio Personalizado
    • Funcionalidades de IA
    • Definições de SEO
    • Configurações avançadas
      • Pesquisa na Documentação
      • Proxy CORS
      • Integrar o Google Analytics
      • Definições da Árvore de Pastas
      • Definições de Visibilidade
      • Incorporar Valores em URLs de Documentação
    • Versões da API
      • Visão geral
      • Criar Versões de API
      • Publicar versões de API
      • Partilhar Endpoints com Versões da API
  • Branches
    • Visão geral
    • Criar uma Branch de Sprint
    • Testar APIs numa Branch
    • Conceber APIs numa Ramificação
    • Mesclar Branches de Sprint
    • Gerir Branches de Sprint
    • AI Branch (Beta)
  • Recursos de IA
    • Visão geral
    • Ativar Funcionalidades de IA
    • Gerar Casos de Teste
    • Modificar esquemas com IA
    • Verificação de Conformidade do Endpoint
    • Verificação da Completude da Documentação da API
    • Nomeação de Campos com IA
    • Perguntas frequentes
  • Servidor MCP do Apidog
    • Visão geral
    • Ligar o Projeto Apidog à IA
    • Ligar Documentação Publicada à IA
    • Ligar Ficheiros OpenAPI à IA
  • Boas práticas
    • Tratamento de Assinaturas de API
    • Aceder a APIs Protegidas por OAuth 2.0
    • Fluxo de trabalho de colaboração
    • Gestão do Estado de Autenticação
  • Espaço offline
    • Visão geral
  • Administração
    • Gerenciamento de projetos
      • Gerir Projetos
      • Definições de Notificação
      • Gerir Membros do Projeto
      • Recursos do projeto
        • Ligação à Base de Dados
        • Ligação Git
    • Gerenciamento de equipes
      • Gerir Equipas
      • Gerir Membros da Equipa
      • Atividades da Equipa
      • Funções e permissões da equipa
      • Recursos da equipe
        • General Runner
        • Variáveis de Equipa
        • Agente Proxy de Pedidos
      • Colaborações em tempo real
        • Colaboração em Equipa
    • Checklist de integração
      • Conceitos Básicos
      • Guia de Integração Inicial
    • Gerenciamento da organização
      • Gerir a Organização
      • Funções e Permissões da Organização
      • Gerenciamento de planos
        • Gestores de Faturação em Organizações
      • Single Sign-On (SSO)
        • Visão Geral do SSO
        • Configurar o Microsoft Entra ID
        • Configurar o Okta
        • Configurar SSO para uma organização
        • Gerir Contas de Utilizador
        • Mapear Grupos para Equipas
      • Provisionamento SCIM
        • Introdução ao Provisionamento SCIM
        • Microsoft Entra ID
        • Okta
      • Recursos da organização
        • Self-Hosted Runner
  • Cobrança
    • Visão geral
    • Créditos
    • Atualizar o seu plano
    • Métodos de Pagamento Alternativos
    • Gestão de Subscrições
    • Mover Equipas Pagas para Organizações
  • Complementos
    • API Hub
    • Plugin Apidog Intellij IDEA
    • Extensão do navegador
      • Chrome
      • Microsoft Edge
    • Proxy de requisições
      • Proxy de pedidos na Web
      • Proxy de Pedidos em Documentação Partilhada
      • Proxy de Pedido no Cliente
  • Dados e segurança
    • Armazenamento e Segurança de Dados
    • Privacidade e Segurança dos Dados do Utilizador
    • Encaminhamento de Pedidos e Segurança dos Dados
  • Referências
    • Abordagem API Design-First
    • Extensões da Especificação OpenAPI do Apidog
    • JSONPath
    • XPath
    • Expressões Regulares
    • JSON Schema
    • Formato de ficheiro CSV
    • Instalar o Ambiente Java
    • Ambiente de Implementação do Runner
    • Sintaxe Markdown do Apidog
    • Extensões Swagger do Apidog
      • Visão geral
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Extensões JSON Schema do Apidog
      • Visão geral
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Central de suporte
  1. Cenários de teste

Condições de Controlo de Fluxo

Pode adicionar condições de controlo de fluxo (ciclos, condições, esperas, agrupamento, etc.) aos seus cenários de teste. Isto melhora a utilização de cenários de teste/configurações de processos mais complexos, resolvendo, em última análise, os desafios de teste de cenários intrincados através de funcionalidades de teste automatizado.
Condições de controlo de fluxo

Ciclos For#

Quando precisa de enviar um único pedido várias vezes consecutivas, utilizar um ciclo for é uma abordagem eficiente. Veja como utilizar eficazmente ciclos for nos seus cenários de teste do Apidog:
Definir o número de iterações: Decida quantas vezes o ciclo deve ser executado. Pode ser um número fixo ou uma {{variable}}.
Adicionar pedidos: Dentro de um ciclo for, pode incluir um ou mais pedidos, bem como outros ciclos ou ramificações condicionais. Esta flexibilidade permite cenários de teste complexos em que várias ações precisam de ser testadas em sequência.
Condição Break If: Pode adicionar uma condição Break if a um ciclo for. Isto terminará imediatamente o ciclo se a condição for satisfeita. Pode arrastar e ajustar a posição de Break if ou até adicionar várias condições Break if para lidar com diferentes cenários.
Tratamento On Error: Gira erros adicionando condições On Error ao ciclo. Se ocorrer um erro, serão acionadas as ações especificadas:
Ignore: O ciclo continua com o pedido seguinte.
Continue: Ignora os pedidos restantes no ciclo atual e avança para a iteração seguinte.
Break execution: Para o ciclo e prossegue com os pedidos subsequentes fora do ciclo.
End execution: Interrompe completamente todo o cenário de teste.
A condição On Error está fixa no início do ciclo e não pode ser movida.

Utilizar o Índice do Ciclo em Pedidos#

O índice atual do ciclo pode ser utilizado como uma variável local dentro dos pedidos para ajustar dinamicamente parâmetros ou corpos de pedidos. Para o utilizar:
1
Adicione um ciclo for e inclua um pedido dentro do ciclo.
2
Clique no ícone da varinha mágica 🪄 no parâmetro do pedido e selecione "Recuperar dados do passo anterior".
A funcionalidade "Recuperar dados do passo anterior" só está disponível no módulo "Testes" e não no módulo "APIs".
Ao utilizar "Recuperar dados do passo anterior", o valor só pode ser obtido quando todo o cenário de teste é executado em conjunto; não pode ser acedido ao executar passos individuais.
3
Escolha a opção do ciclo, normalmente identificada como "Executar ciclo n vezes".
4
Selecione "Índice do ciclo atual".
5
Obterá uma variável dinâmica como {{$.5.index}}. Clique em "Inserir" e esta será substituída em tempo de execução pelo índice do ciclo atual, como 0 ou 5.
O índice do ciclo começa sempre em 0.

Ciclos ForEach#

Quando tem uma matriz que contém vários elementos (uma lista de conteúdo específico ou uma lista obtida a partir de passos anteriores) e precisa de realizar a mesma operação em cada item da lista (por exemplo, primeiro obter uma lista de produtos e, em seguida, adicionar cada produto da lista ao carrinho de compras), precisa de utilizar um ciclo ForEach.
Num ciclo ForEach, as operações dentro do ciclo serão executadas para cada elemento da matriz.
A diferença em relação a um ciclo For é que não precisa de se preocupar com o número de iterações; só precisa de se concentrar no conteúdo da matriz do ciclo.
Definir a matriz do ciclo: Num ciclo ForEach, precisa de definir uma matriz como o objeto do ciclo. Pode utilizar uma variável ou introduzir manualmente uma matriz, como [ "a","b","c"].
Adicionar pedidos: Dentro de um ciclo ForEach, pode adicionar um ou mais pedidos, ou adicionar outros ciclos ou ramificações condicionais, etc.
Condição Break If e tratamento On Error: Pode adicionar Break if e On error ao ciclo ForEach, de forma consistente com o ciclo for mencionado acima.
TIP
Na definição avançada do ciclo ForEach, também pode personalizar opções de tratamento de exceções para Break If e On Error. Para obter mais informações, consulte Regras de Julgamento.

Exemplo de Utilização de ForEach#

Considere dois endpoints: um para obter uma lista de informações sobre animais de estimação e outro para obter os detalhes de um único animal de estimação. Se precisar de obter os detalhes de um animal de estimação recentemente adicionado à lista, pode configurar este cenário utilizando um ciclo ForEach nos seus testes automatizados.
1.
O primeiro passo fora do ciclo ForEach seria solicitar o endpoint da lista de informações dos animais de estimação para obter os dados reais da lista. Normalmente, a resposta desta interface contém uma matriz com informações básicas sobre vários animais de estimação, como o ID e o nome do animal.
2.
Configure um ciclo ForEach com a matriz de origem a ser um subconjunto da matriz de animais de estimação da resposta do passo anterior.
3.
Dentro do ciclo, configure um pedido para o endpoint "Obter Informações do Animal de Estimação" e utilize o valor do elemento do ciclo ForEach para preencher o parâmetro ID neste pedido.

Utilizar o Elemento do Ciclo em Pedidos#

O elemento/índice atual do ciclo pode ser utilizado como uma variável local dentro dos pedidos para ajustar dinamicamente parâmetros ou corpos de pedidos. Para o utilizar:
1
Adicione um ciclo ForEach e inclua um pedido dentro do ciclo.
2
Clique no ícone varinha mágica no parâmetro do pedido e selecione "Recuperar dados do passo anterior".
3
Escolha a opção do ciclo, normalmente identificada como "Executar ciclo para cada elemento em {{array}}".
4
Selecione "Elemento do ciclo atual". Pode utilizar JSONPath para extrair propriedades do elemento.
5
Obterá uma variável dinâmica como {{$.17.element}}. Clique em "Inserir" e esta será substituída em tempo de execução pelo elemento do ciclo atual, que é um elemento da matriz do ciclo.
TIP
Elemento do Ciclo Atual: O sistema extrai automaticamente elementos da matriz especificada no ciclo ForEach e armazena-os na variável designada. No início de cada iteração, esta variável é atualizada com o valor do elemento atual da matriz. Se o elemento for um objeto, pode utilizar JSONPath para extrair um subcampo específico, como {{$.1.element.data.name}}.
Índice do Ciclo Atual: O índice do ciclo atual é armazenado nesta variável. Começa em 0 e é incrementado em 1 no início de cada iteração subsequente, refletindo o índice atual.

If#

Quando precisa de enviar diferentes pedidos com base em diferentes cenários, pode utilizar uma instrução If para adicionar ramificações condicionais. Quando as condições especificadas são cumpridas, o passo correspondente será executado; caso contrário, será ignorado. Para obter detalhes mais específicos, consulte Regras de Julgamento.
Definir instrução If: A instrução If suporta várias condições, como igual a, diferente de, contém, não contém, etc. Podem ser utilizadas constantes e variáveis em qualquer um dos lados da condição.
Adicionar pedidos: Podem ser adicionados vários pedidos dentro de uma ramificação condicional, bem como outros ciclos ou ramificações condicionais.
Executar ramificações condicionais: Se as condições definidas na configuração forem cumpridas, o passo de teste será executado; caso contrário, será ignorado.
Instrução Else: Pode ser adicionada uma instrução Else dentro de uma ramificação condicional para lidar com cenários em que a condição If não é cumprida.

Exemplo de Utilização de If#

Um proprietário de uma loja de animais, com base no estado das vendas de animais de estimação do dia anterior, precisa de alterar o estado de venda de um animal para "Vendido" se este tiver sido vendido. Caso contrário (else), precisa de verificar a lista de animais de estimação ainda à venda.
1.
Clique no botão "Adicionar Passo" na parte inferior e selecione "Ramificação Condicional".
2.
Introduza a variável saleStatus obtida a partir da resposta do pedido de API na caixa de entrada após "If" e selecione a condição "igual a". Por fim, introduza true como valor de comparação.
3.
Passe o cursor sobre a operação de ramificação condicional para ver a opção " + Else". Clique nela para adicionar o passo "Lista de Animais de Estimação à Venda" (caso a condição não seja cumprida, ou seja, para consultar a lista de animais de estimação ainda à venda).

Regras de Julgamento#

Ao utilizar a instrução If num cenário de teste, pode definir regras condicionais para controlar a execução do teste. Se as condições forem cumpridas, o passo correspondente será executado; caso contrário, será ignorado. Da mesma forma, nas definições Break If para ciclos ForEach e For, pode definir regras de julgamento para controlar o fluxo de execução de forma mais flexível.
RegraDescrição
EqualsVerifica se dois valores são iguais.
Does not equalVerifica se dois valores não são iguais.
ExistsVerifica se um campo ou variável existe.
Does not existVerifica se um campo ou variável não existe.
Less thanVerifica se um valor é inferior a outro.
Less than or equalVerifica se um valor é inferior ou igual a outro.
Greater thanVerifica se um valor é superior a outro.
Greater than or equalVerifica se um valor é superior ou igual a outro.
Matches with RegexVerifica se uma cadeia corresponde à expressão regular especificada.
ContainsVerifica se uma cadeia ou matriz contém o valor especificado.
Does not containVerifica se uma cadeia ou matriz não contém o valor especificado.
Is emptyVerifica se um campo, matriz ou variável está vazio.
Is not EmptyVerifica se um campo, matriz ou variável não está vazio.
In ListVerifica se um valor pertence a uma Lista especificada.
Not in ListVerifica se um valor não pertence a uma Lista especificada.
Ao efetuar verificações condicionais (como superior a, superior ou igual, igual ou diferente), se os valores comparados forem números inteiros ou cadeias, o sistema irá converter automaticamente cadeias em números para uma comparação precisa. Por exemplo, se comparar uma cadeia "18" com o número 18, o sistema converterá a cadeia "18" no número 18 antes da comparação.

Equals#

Verifica se dois valores são iguais. Se forem iguais, a condição é cumprida e o passo de teste será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se a idade do utilizador extraída do passo anterior é igual a 18.
Exemplo de Condição: {{$.5.response.body.data.age}} Equals 18
Efeito Real da Execução: Se o valor da idade extraído do passo anterior for 18 (a cadeia será automaticamente convertida num número), o passo será executado, como apresentar informações específicas ou realizar determinadas ações.

Does not equal#

Verifica se dois valores não são iguais. Se não forem iguais, a condição é cumprida e o passo de teste será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o estado da encomenda extraído do passo anterior não é igual a "Paid".
Exemplo de Condição: {{$.4.response.body.data.status}} Does not equal Paid
Efeito Real da Execução: Se o estado da encomenda extraído do passo anterior for outro valor (como "Pending" ou "Shipped"), o passo será executado.

Exists#

Verifica se um determinado campo ou variável existe. Se existir, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o campo email existe nos dados do utilizador extraídos do passo anterior.
Exemplo de Condição: {{$.3.response.body.data.email}} Exists
Efeito Real da Execução: Se o campo email estiver presente nos dados do utilizador extraídos do passo anterior, o passo será executado.

Does not exist#

Verifica se um determinado campo ou variável não existe. Se não existir, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o campo phone não existe nos dados do utilizador extraídos do passo anterior.
Exemplo de Condição: {{$.2.response.body.data.phone}} Does not exist
Efeito Real da Execução: Se o campo phone estiver ausente nos dados do utilizador extraídos do passo anterior, o passo será executado.

Less Than#

Verifica se um valor é inferior a outro. Se for, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o stock do produto extraído do passo anterior é inferior a 10.
Exemplo de Condição: {{$.1.response.body.data.stock}} Less Than 10
Efeito Real da Execução: Se o valor do stock extraído do passo anterior for 8, a condição é cumprida e o passo será executado.

Less than or equal#

Verifica se um valor é inferior ou igual a outro. Se for, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se a idade extraída do passo anterior é inferior ou igual a 12.
Exemplo de Condição: {{$.2.response.body.data.age}} Less than or equal 12
Efeito Real da Execução: Se o valor da idade extraído do passo anterior for 10, a condição é cumprida e o passo será executado.

Greater than#

Verifica se um valor é superior a outro. Se for, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o montante da encomenda extraído do passo anterior é superior a 1000.
Exemplo de Condição: {{$.1.response.body.data.amount}} Greater than 1000
Efeito Real da Execução: Se o valor do montante da encomenda extraído do passo anterior for 1105, a condição é cumprida e o passo será executado.

Greater than or equal#

Verifica se um valor é superior ou igual a outro. Se for, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se os pontos do utilizador extraídos do passo anterior são superiores ou iguais a 500.
Exemplo de Condição: {{$.3.response.body.data.points}} Greater than or equal 500
Efeito Real da Execução: Se o valor dos pontos extraído do passo anterior for 600, a condição é cumprida e o passo será executado.

Matches with Regex#

Verifica se uma cadeia corresponde a uma expressão regular especificada. Se corresponder, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o formato do email extraído do passo anterior está correto.
Exemplo de Condição: {{$.2.response.body.data.email}} Matches with Regex /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i
Efeito Real da Execução: Se o formato do email extraído do passo anterior corresponder à expressão regular (por exemplo, test@gmail.com), o passo será executado.
TIP
As expressões regulares devem ser escritas utilizando a sintaxe "literal", em que o padrão é delimitado por /, com modificadores opcionais (por exemplo, g para correspondência global, i para não diferenciar maiúsculas de minúsculas) anexados no fim. Para obter mais informações sobre como escrever expressões regulares, pode consultar a documentação MDN.

Contains#

Verifica se uma cadeia ou matriz contém um valor especificado. Se contiver, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se a lista de funções do utilizador extraída do passo anterior contém a função "admin".
Exemplo de Condição: {{$.3.response.body.data.roles}} Contains admin
Efeito Real da Execução: Se a lista de funções extraída do passo anterior contiver "admin", o passo será executado.

Does not contain#

Verifica se uma cadeia ou matriz não contém um valor especificado. Se não contiver, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o carrinho de compras do utilizador extraído do passo anterior não contém um determinado produto.
Exemplo de Condição: {{$.4.response.body.data.cartItems}} Does not contain productId123
Efeito Real da Execução: Se a matriz do carrinho extraída do passo anterior não contiver o produto productId123, o passo será executado.

Is empty#

Verifica se um campo, matriz ou variável está vazio. Se estiver, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o campo de observações extraído do passo anterior está vazio.
Exemplo de Condição: {{$.2.response.body.data.remarks}} Is empty
Efeito Real da Execução: Se o campo de observações extraído do passo anterior estiver vazio, o passo será executado.

Is not Empty#

Verifica se um campo, matriz ou variável não está vazio. Se não estiver vazio, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se as observações da encomenda extraídas do passo anterior estão preenchidas.
Exemplo de Condição: {{$.1.response.body.data.orderRemarks}} Is not Empty
Efeito Real da Execução: Se as observações da encomenda extraídas do passo anterior não estiverem vazias, o passo será executado.

In List#

Verifica se um valor pertence a uma lista especificada. Se pertencer, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o produto selecionado pelo utilizador extraído do passo anterior está na lista de produtos recomendados.
Exemplo de Condição: {{$.3.response.body.data.productId}} In List ["prod123", "prod456", "prod789"]
Efeito Real da Execução: Se o ID do produto extraído do passo anterior for "prod456", o passo será executado.
TIP
No Apidog, ao introduzir uma lista, cada elemento deve ser introduzido separadamente e separado ao premir a tecla Enter.

Not in List#

Verifica se um valor não pertence a uma lista especificada. Se não pertencer, a condição é cumprida e o passo será executado; caso contrário, será ignorado.
Exemplo:
Cenário: Verificar se o código promocional introduzido pelo utilizador extraído do passo anterior não está na lista de códigos promocionais utilizados.
Exemplo de Condição: {{$.4.response.body.data.promoCode}} Not in List ["usedCode1", "usedCode2"]
Efeito Real da Execução: Se o código promocional extraído do passo anterior for "newPromo", a condição é cumprida e o passo será executado; caso contrário, será ignorado.

Agrupamento#

Quando vários passos no processo de teste estão inter-relacionados, podem ser agrupados para classificação. Ao agrupar passos de teste, melhora a legibilidade e a operabilidade do cenário de teste.

Espera#

Quando um determinado passo no processo de teste requer aguardar um período antes da execução, pode adicionar uma condição de espera para resolver isto.

Exemplo de Utilização de Espera#

Simule um utilizador a visualizar detalhes de um animal de estimação e a atualizar o estado de navegação das informações do animal após navegar durante 1000ms.
1.
Clique no botão "Adicionar Passo" na parte inferior e selecione "Espera".
2.
Introduza o tempo de espera, 1000 (em milissegundos).
Quando utiliza o controlo de fluxo de teste, o relatório de teste não apresentará passos como If, for, etc., mas mostrará apenas os pedidos reais executados, listados linearmente pela ordem de execução.
Modified at 2026-06-09 08:54:45
Previous
Passar Dados Entre Pedidos
Next
Sincronizar Dados de Endpoints e Casos de Endpoint
Built with