Casos de Teste

Descubra como criar cenários de teste eficazes para diferentes casos de integração.

Um Caso de Teste é uma configuração que inclui um conjunto definido de entradas, condições e resultados esperados usados para verificar se um pipeline de integração específico está funcionando conforme o esperado. Casos de teste são especialmente úteis para melhorar a qualidade das integrações e documentar o comportamento esperado dos seus fluxos.

Eles permitem:

  • Simular diversas condições de entrada.

  • Simular respostas de conectores.

  • Comparar automaticamente os resultados reais com os esperados.

Criando um Caso de Teste

  1. No menu lateral no Canvas, acesse Fluxo.

  2. Clique em Criar novo caso de teste.

1

Defina as condições

Ao criar um caso de teste, é necessário configurar os elementos que definem o cenário:

Payload

O payload representa os dados de entrada do teste. Ao adicioná-lo, forneça:

Respostas Mock

Respostas mock permitem emular as saídas de conectores, útil para validar fluxos em diferentes condições. Ao criar uma resposta, forneça:

  • Conector: O conector cuja resposta você deseja simular.

  • JSON: A resposta simulada em formato JSON.

  • Nome: Um nome para a resposta simulada.

  • Descrição: Uma breve explicação do cenário representado pela simulação.

Para simular mais conectores, clique em Adicionar mais mocks.

Resultados Esperados

Define o que o fluxo deve retornar após a execução. É usado para comparar com o resultado real.

Forneça:

  • Operator: O operador de comparação. Atualmente, a única opção disponível é Equals.

  • JSONPath: Expressão JSONPath apontando para o campo de resultado.

  • Valor: Valor esperado, em formato JSON.

2

Documente o teste

Antes de salvar, forneça:

  • Nome: Nome único para identificar o caso de teste.

  • Descrição: Breve explicação do caso, incluindo o propósito ou cenário testado.

3

Salve o teste

Após preencher todas as informações obrigatórias, clique em Salvar.

O caso de teste deve conter pelo menos nome e resultado esperado para ser salvo.

O caso de teste aparecerá no menu lateral, em Fluxo. Clique no ícone de três pontos para:

  • Editar: Editar configurações do teste.

  • Remover: Excluir o teste.

  • Duplicar: Criar uma cópia do teste.

  • Execução única: Executar o teste.

  • Abrir execução: Disponível após a execução do teste.

Executando o Caso de Teste

Para executar o caso de teste:

  1. Verifique se o fluxo está conectado a um trigger. Sem isso, o teste não será executado.

  2. No menu lateral, localize o teste e clique nos três pontos.

  3. Selecione Execução única.

  4. A plataforma executará o teste e comparará a saída com o esperado:

  • Se passar: Um ícone de sucesso verde será exibido.

  • Se falhar: Um ícone de falha vermelho será exibido.

5. Para ver os detalhes no Painel de Execução, clique em Abrir execução. Mais informações podem ser encontradas na aba Resultados.

Exemplo: Adicionar data de nascimento padrão

  • Caso de uso: Você quer garantir que uma data de nascimento padrão seja adicionada quando ela estiver ausente no JSON de entrada.

  • Objetivo: Usar o Transformer (JOLT) V2 para adicionar o campo "dataNascimento": "01/01/1970" quando ele não estiver presente na entrada.

Visão geral do pipeline

Este pipeline usa um único conector:

  • Transformer (JOLT) V2: Adiciona uma data de nascimento padrão se ela estiver ausente no payload de entrada.

Vamos testar essa transformação usando um caso de teste com uma entrada que não inclui o campo dataNascimento.

Etapa 1: Configurar o Transformer JOLT (V2)

Usaremos a operação default para adicionar um campo quando ele ainda não existir.

Especificação JOLT:

[    
 {
   "operation": "default",
   "spec": {
     "cliente": {
       "dataNascimento": "01/01/1970"
     }
   }
 }
]

Essa especificação verifica se o campo dataNascimento existe dentro de cliente. Caso não exista, ele é adicionado com o valor padrão ”01/01/1970”.

Etapa 2: Criar o Caso de Teste

Vamos simular um payload que contém apenas o nome e o CPF, e verificar se o conector Transformer (JOLT) adiciona a data de nascimento padrão.

  • Payload:

{
 "cliente": {
   "nome": "Cliente Padrão",
   "cpf": "123.456.789-01"
 }
}
  • Resposta Mock: (Deixe em branco neste exemplo)

  • Resultado Esperado:

    • JSONPath: $.cliente

    • Valor:

{
   "nome": "Cliente Padrão",
   "cpf": "123.456.789-01",
   "dataNascimento": "01/01/1970"
}

Validação do resultado

Após a execução do caso de teste, a saída é a seguinte:

{
  "cliente": {
   	"nome": "Cliente Padrão",
   	"cpf": "123.456.789-01",
   	"dataNascimento": "01/01/1970"
  }
}

Isso confirma que o teste foi bem-sucedido:

  • O Transformer (JOLT) V2 aplicou a operação default conforme o esperado.

  • Como o campo dataNascimento não estava presente na entrada original, ele foi adicionado com o valor padrão ”01/01/1970”.

Exemplo: Organizar catálogo de produtos

  • Caso de uso: Você quer reestruturar os dados de produto retornados de um banco de dados em um novo formato.

  • Objetivo: Agrupar os detalhes do produto dentro de um objeto detalhes e renomear campos para melhor organização.

Visão geral do pipeline

Este pipeline usa os seguintes conectores:

  1. DB V2: Recupera os dados do produto.

  2. Transformer (JOLT) V2: Reorganiza e renomeia os campos usando a operação shift.

Como não temos acesso ao banco de dados real, vamos simular essa resposta com um caso de teste usando uma resposta simulada do conector DB V2.

Etapa 1: Configurar o Transformer JOLT (V2)

Vamos usar a operação shift do JOLT para mapear e reorganizar os campos.

Especificação JOLT:

[
  {
    "operation": "shift",
    "spec": {
      "produto": {
        "id": "idProduto",
        "nome": "detalhes.nome",
        "marca": "detalhes.marca",
        "preço": "detalhes.preço.valor",
        "moeda": "detalhes.preço.moeda",
        "estoque": "detalhes.disponibilidade"
      }
    }
  }
]

Essa especificação renomeia id para idProduto e organiza os demais campos dentro do objeto detalhes.

Etapa 2: Criar o caso de teste

Vamos simular a resposta do banco de dados e validar a transformação.

  • Payload: (Deixe em branco neste exemplo)

  • Resposta Mock:

    • Conector: DB V2

    • Payload JSON:

{
  "produto": {
    "id": "12345",
    "nome": "Smartphone X1",
    "marca": "TechBrand",
    "preço": 699.99,
    "moeda": "BRL",
    "estoque": 25
  }
}
  • Resultado Esperado:

    • JSONPath: $.detalhes

    • Valor:

{
    "nome": "Smartphone X1",
    "marca": "TechBrand",
    "preço": {
      "valor": 699.99,
      "moeda": "BRL"
    },
    "disponibilidade": 25
  }

Validação do resultado

Após a execução do caso de teste, a saída é a seguinte:

{
  "idProduto": "12345",
  "detalhes": {
    "nome": "Smartphone X1",
    "marca": "TechBrand",
    "preço": {
      "valor": 699.99,
      "moeda": "BRL"
    },
    "disponibilidade": 25
  }
}

Isso confirma que o teste foi bem-sucedido:

  • O Transformer (JOLT) V2 aplicou a especificação corretamente para reestruturar os dados de entrada.

  • Os campos foram renomeados e organizados dentro do objeto detalhes, conforme o planejado.

  • O campo idProduto permaneceu no nível superior, enquanto os demais atributos foram agrupados logicamente dentro de detalhes.

Atualizado

Isto foi útil?