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

O que é teste de API?

Teste de API é um tipo de teste de software que valida APIs (Interfaces de Programação de Aplicativos). 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 de usuário padrão (teclado), você usa um 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. Concentra-se principalmente na camada lógica de negócios da arquitetura de software.

Imagem de teste de API

Para o fundo, 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. Um sistema de software que executa uma API inclui diversas funções/sub-rotinas que outro sistema de software pode executar. A API define as solicitações que podem ser feitas, como fazer as solicitações, os formatos de dados que podem ser usados, etc., entre dois sistemas de software.

Configuração do ambiente de automação de testes de API

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

  1. Use a ferramenta de teste para impulsionar a API
  2. Escreva seu próprio código para testar a API

Alguns pontos a serem observados

  • O teste de API é diferente de outros tipos de teste de software, pois a GUI não está disponível e, ainda assim, é necessário configurar o ambiente inicial que invoca a API com um conjunto necessário de parâmetros e, finalmente, examinar o resultado do teste.
  • Conseqüentemente, configurar um ambiente de teste para testes 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.
  • Terminada a instalação, a função API deve ser chamada para verificar se aquela API está funcionando.

Tipos de saída de uma API

Uma saída da API poderia ser

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

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

Qualquer tipo de dados

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

Long add(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

add (1234, 5656)

As exceções deverão ser tratadas se o número exceder o limite de inteiros.

Status (diga Aprovado ou Reprovado)

Considere a função API abaixo –

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

Eles retornam qualquer valor como True (em caso de sucesso) ou false (em caso de erro) como saída.

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

Chamada de outra API/Evento

Chamada de outra API/Evento

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

Por exemplo – A primeira função da 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 testes de API:

Os 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
  • Acione 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 deverão ser rastreados
  • Atualizar estrutura de dados: A atualização da estrutura de dados terá algum resultado ou efeito no sistema, e isso deve ser autenticado
  • Modifique certos recursos: Se a chamada da API modificar alguns recursos, ela deverá 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 controle de qualidade executará para conduzir o teste da API depois que a construção estiver pronta. 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 execução de casos de teste.

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

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 unitário Teste de API
Os desenvolvedores realizam isso Os testadores realizam isso
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 de API são testadas
Apenas funcionalidades básicas são testadas Todos os problemas funcionais são testados
Escopo limitado Escopo mais amplo
Geralmente executado antes do check-in Execução de teste 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, verificando se um recurso específico exposto pela API pode ser listado, criado e excluído conforme apropriado
  • Testando usabilidade: Este teste verifica se a API é funcional e fácil de usar. E a API também se integra bem com outra plataforma
  • Teste de segurança: Este teste inclui que tipo de autenticação é necessária e se os dados confidenciais são criptografados por HTTP ou ambos
  • Teste automatizado: O teste da API deve culminar na criação de um conjunto de scripts ou de uma ferramenta que possa ser usada para executar a API regularmente
  • Documentação: A equipe de teste deve garantir que a documentação seja adequada e forneça informações suficientes para interagir com a API. A documentação deve fazer parte da entrega final

Melhores práticas de testes 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 dos parâmetros deve ser explicitamente mencionada no próprio caso de teste
  • Priorize chamadas de função de API para que seja fácil para os testadores testarem
  • Cada caso de teste deve ser tão autocontido e independente de dependências quanto possível
  • Evite “encadeamento de testes” em seu desenvolvimento
  • Cuidado especial deve ser tomado ao lidar com funções de chamada única como – Delete, CloseWindow, etc…
  • O sequenciamento de chamadas deve ser realizado e bem planejado
  • Para garantir a cobertura completa do teste, crie casos de teste de API para todas as combinações de entrada possíveis da API.

Tipos de bugs que os testes de API detectam

  • Falha ao lidar com condições de erro normalmente
  • Sinalizadores não utilizados
  • Funcionalidade ausente ou duplicada
  • Problemas de confiabilidade. Dificuldade em se conectar e obter uma resposta de API.
  • Problemas de segurança
  • Problemas de multithread
  • Problemas de desempenho. O tempo de resposta da API é muito alto.
  • Erros/avisos inadequados para um chamador
  • Tratamento incorreto de valores de argumentos válidos
  • Os dados de resposta não estão estruturados corretamente (JSON ou XML)

Como fazer automação de testes de API

1) API pronta

API pronta é uma ferramenta líder para testes funcionais, de segurança e de carga de RESTful, SOAP, GraphQL e outros serviços da web. Em uma plataforma intuitiva, você obterá três ferramentas poderosas: ReadyAPI Test, ReadyAPI Performance e ReadyAPI Virtualization. Com essas ferramentas você pode realizar testes funcionais, de segurança e de desempenho/carga. Você também pode simular API e serviços da web com nossa ferramenta robusta de virtualização. Além disso, você pode integrar facilmente seu pipeline de CI/CD durante cada construção.

API pronta

Características principais

  • ReadyAPI pode ser integrado em qualquer ambiente.
  • Possui um recurso Smart Assertion que pode criar asserções em massa contra centenas de endpoints rapidamente.
  • Suporte nativo para Git, Docker, Jenkins, Azure, etc.
  • Suporta linha de comando para testes automatizados.
  • Suporta execução paralela de testes funcionais e enfileiramento de trabalhos.
  • Promoreutilização de código tes
  • Remove dependências durante testes e desenvolvimento.

Visite ReadyAPI >>

Avaliação gratuita de 14 dias (sem necessidade de cartão de crédito)

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

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

Desafios do teste de API

Os desafios dos testes de API incluem:

  • Os principais desafios nos testes de API da Web são 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 faz é 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 dos parâmetros devem ser conhecidas pelos testadores
  • Função de tratamento de exceções precisa ser testado
  • Conhecimento de codificação é necessário para testadores

Conclusão

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