Tutorial de teste de API: O que é automação de teste de API? Como testar

Antes de ir para o tutorial de teste de API, vamos primeiro entender

O que é API?

API (Application Programming Interface) é uma interface de computação que permite a comunicação e a troca de dados entre dois sistemas de software separados. O sistema de software que executa uma API inclui várias funções / sub-rotinas que outro sistema de software pode executar. API define solicitações que podem ser feitas, como fazer solicitações, formatos de dados que podem ser usados, etc. entre dois sistemas de software.

O que é teste de API?

API TESTING é um tipo de teste de software que valida as interfaces de programação de aplicativos (APIs). O objetivo do Teste de API é verificar a funcionalidade, confiabilidade, desempenho e segurança das interfaces de programação. No teste de API, em vez de usar entradas e saídas padrão do usuário (teclado), você usa software para enviar chamadas para a API, obter saída e anotar a resposta do sistema. Os testes de API são muito diferentes dos testes de GUI e não se concentram na aparência de um aplicativo. Ele se concentra principalmente na camada de lógica de negócios da arquitetura de software.

Automação de API O teste requer um aplicativo que possa interagir por meio de uma API. Para testar uma API, você precisará

  • Use a ferramenta de teste para conduzir a API
  • Escreva seu próprio código para testar a API

Neste tutorial de teste de API, você aprenderá mais sobre

  • Configuração do ambiente de teste de API
  • Tipos de saída de uma API
  • Casos de teste para teste de API
  • Abordagem de teste de API
  • Diferença entre teste de API e teste de unidade
  • Como testar a API
  • Melhores práticas de teste de API
  • Tipos de bugs que o teste de API detecta
  • Como fazer a automação de teste de API
  • Desafios do teste de API

Configuração do ambiente de teste de API

  • O Teste de API é diferente de outros tipos de teste de software, pois a GUI não está disponível e, ainda assim, você deve configurar o ambiente inicial que invoca a API com um conjunto de parâmetros necessário e, finalmente, examina o resultado do teste.
  • Portanto, Configurar um ambiente de teste para teste de automação de API parece um pouco complexo.
  • O banco de dados e o servidor devem ser configurados de acordo com os requisitos do aplicativo.
  • Assim que a instalação for concluída, a função API deve ser chamada para verificar se a API está funcionando.

Tipos de saída de uma API

Uma saída da API pode ser

  1. Qualquer tipo de dado
  2. Status (diga Aprovado ou Reprovado)
  3. Chame outra função API.

Vejamos um exemplo de cada um dos tipos acima neste tutorial de teste de API

Qualquer tipo de dados

Exemplo: há uma função API que deve adicionar dois números inteiros.

Adição longa (int a, int b)

Os números devem ser fornecidos como parâmetros de entrada. A saída deve ser uma soma de dois números inteiros. Esta saída precisa ser verificada com um resultado esperado.

A chamada precisa ser feita, como

adicionar (1234, 5656)

Exceções devem ser tratadas se o número exceder o limite inteiro.

Status (diga Aprovado ou Reprovado)

Considere a função de API abaixo -

  1. Trancar()
  2. Desbloquear ()
  3. Excluir()

Eles retornam qualquer valor como Verdadeiro (em caso de sucesso) ou falso (em caso de erro) como uma saída.

Um caso de teste mais preciso seria, pode chamar as funções em qualquer um dos scripts e, posteriormente, verificar as alterações no banco de dados ou na interface do usuário do aplicativo.

Chamada de outra API / Evento

Nesse caso, chamamos uma das funções da API que, por sua vez, chamará outra função.

Por exemplo - a primeira função API pode ser usada para excluir um registro especificado na tabela e esta função, por sua vez, chama outra função para ATUALIZAR o banco de dados.

Casos de teste para teste de API:

Casos de teste de teste de API são baseados em

  • Valor de retorno com base na condição de entrada: é relativamente fácil de testar, pois a entrada pode ser definida e os resultados podem ser autenticados
  • Não retorna nada: quando não há valor de retorno, um comportamento da API no sistema a ser verificado
  • Acionar alguma outra API / evento / interrupção: se uma saída de uma API acionar algum evento ou interrupção, esses eventos e ouvintes de interrupção devem ser rastreados
  • Atualizar estrutura de dados: atualizar a estrutura de dados terá algum resultado ou efeito no sistema, e isso deve ser autenticado
  • Modifique certos recursos: se a chamada de API modifica alguns recursos, ela deve ser validada acessando os respectivos recursos

Abordagem de teste de API

Abordagem de teste de API é uma estratégia predefinida ou um método que a equipe de QA executará para conduzir o teste de API depois que o build estiver pronto. Este teste não inclui o código-fonte. A abordagem de teste de API ajuda a entender melhor as funcionalidades, técnicas de teste, parâmetros de entrada e a execução de casos de teste.

Os seguintes pontos ajudam o usuário a fazer a abordagem de teste de API:

  1. Compreender a funcionalidade do programa API e definir claramente o escopo do programa
  2. Aplicar técnicas de teste, como classes de equivalência, análise de valor limite e adivinhação de erros e escrever casos de teste para a API
  3. Os parâmetros de entrada para a API precisam ser planejados e definidos adequadamente
  4. Execute os casos de teste e compare os resultados esperados e reais.

Diferença entre teste de API e teste de unidade

Teste de unidade Teste de API
  • Desenvolvedores executam
  • Os testadores realizam
  • Funcionalidade separada é testada
  • A funcionalidade ponta a ponta é testada
  • Um desenvolvedor pode acessar o código-fonte
  • Os testadores não podem acessar o código-fonte
  • O teste de IU também está envolvido
  • Apenas funções API são testadas
  • Apenas as funcionalidades básicas são testadas
  • Todos os problemas funcionais são testados
  • Limite de escopo
  • Mais amplo em escopo
  • Normalmente executado antes do check-in
  • Executado após a criação da compilação

Como testar a API

O teste de automação de API deve abranger pelo menos os seguintes métodos de teste além do processo SDLC normal

  • Teste de descoberta: o grupo de teste deve executar manualmente o conjunto de chamadas documentadas na API, como verificar se um recurso específico exposto pela API pode ser listado, criado e excluído conforme apropriado
  • Teste de usabilidade: este teste verifica se a API é funcional e amigável. E a API se integra bem com outra plataforma também
  • Teste de segurança: este teste inclui o tipo de autenticação necessária e se os dados confidenciais são criptografados por HTTP ou ambos
  • Teste automatizado: o teste de API deve culminar na criação de um conjunto de scripts ou uma ferramenta que pode ser usada para executar a API regularmente
  • Documentação: A equipe de teste deve certificar-se de que a documentação é adequada e fornece informações suficientes para interagir com a API. A documentação deve fazer parte da entrega final

Melhores práticas de teste de API:

  • Os casos de teste de API devem ser agrupados por categoria de teste
  • Acima de cada teste, você deve incluir as declarações das APIs que estão sendo chamadas.
  • A seleção de parâmetros deve ser explicitamente mencionada no próprio caso de teste
  • Priorize as chamadas de função da API para que seja fácil para os testadores testarem
  • Cada caso de teste deve ser o mais independente e independente possível das dependências
  • Evite o "encadeamento de teste" em seu desenvolvimento
  • Cuidado especial deve ser tomado ao lidar com funções de chamada única como - Excluir, FecharWindow, etc ...
  • O sequenciamento de chamadas deve ser realizado e bem planejado
  • Para garantir uma cobertura de teste completa, crie casos de teste de API para todas as combinações de entrada possíveis da API.

Tipos de bugs que o teste de API detecta

  • Falha ao lidar com condições de erro de maneira adequada
  • Bandeiras não utilizadas
  • Funcionalidade ausente ou duplicada
  • Problemas de confiabilidade. Dificuldade em se conectar e obter uma resposta da API.
  • Problemas de segurança
  • Problemas de multi-threading
  • Problemas de desempenho. O tempo de resposta da API é muito alto.
  • Erros / avisos impróprios para um chamador
  • Tratamento incorreto de valores de argumento válidos
  • Os dados de resposta não estão estruturados corretamente (JSON ou XML)

Como fazer a automação de teste de API

Os tutoriais a seguir fornecem um guia detalhado para automatizar o teste de API.

Como testar API com REST Assured

Como testar API com Postman

Como testar API com UFT

Além disso, existem outras ferramentas para teste de API. Verifique-os aqui

Desafios do teste de API

Os desafios do teste de API incluem:

  • Os principais desafios no teste de API da Web são a combinação de parâmetros, seleção de parâmetros e sequenciamento de chamadas
  • Não há GUI disponível para testar o aplicativo, o que torna difícil fornecer valores de entrada
  • Validar e verificar a saída em um sistema diferente é um pouco difícil para os testadores
  • A seleção e categorização de parâmetros devem ser conhecidas pelos testadores
  • A função de tratamento de exceções precisa ser testada
  • Conhecimento de codificação é necessário para testadores

Conclusão:

API consiste em um conjunto de classes / funções / procedimentos que representam a camada de lógica de negócios. Se a API não for testada corretamente, pode causar problemas não apenas no aplicativo API, mas também no aplicativo de chamada. É um teste indispensável em engenharia de software.

Artigos interessantes...