Automação de testes em uma API: carteiro, Newman e Jenkins

publicado em 2 de agosto de 2016.

Qual é a automação de testes?

A automação de teste é usar um programa para controlar a execução de testes e verificar se os resultados obtidos são o que estávamos esperando. Para explicar como obter a automação de teste sobre uma API, três programas serão necessários: carteiro, Newman e Jenkins.

postman

O primeiro programa que vamos usar para obter testes de automação O carteiro que pode ser definido da seguinte forma:

“O objetivo principal do carteiro está ajudando a construir APIs rapidamente permitindo a criação ágil de solicitações e fluxos de trabalho por meio de coleções”

ambiente h2 h2

A primeira coisa que temos que fazer antes de começar a criar testes é preparar um ambiente para o servidor no qual os testes serão executados. Para criar um ambiente, vamos para gerenciar ambientes → Adicionar. Então podemos começar Adicionando pares de valor chave correspondendo a variáveis que usaremos em várias ocasiões em solicitações.

Como um exemplo, escolhi a próxima API para explicar como funciona: Swapi.co/api, então estamos vai salvá-lo em uma variável para a qual vamos chamar host:

Esta API não precisa do usuário autenticar, mas, se necessário, poderemos salvar o usuário e a senha no ambiente.

coleção

postman permite que você crie coleções para armazenar solicitações, então a primeira coisa que precisamos é criar uma coleção, fornecendo seu nome (obrigatório) e uma descrição.

Então podemos criar uma solicitação, que terá mais ou menos o seguinte aspecto:

Neste exemplo, tentamos obter uma lista de espaçonaves, de modo que na captura de tela você pode ver:

  1. nome da solicitação.
  2. método: pode ser get, post, colocar, excluir …
  3. api: o endereço completo seria Swapi.co/api/constars, mas como mantivemos Swapi.co/api na variável de ambiente de host nós apenas temos que escrever {{host} } Para usá-lo.
  4. ambiente.

A segunda parte da criação de uma solicitação é a seção de testes, projetada para criar declarações que confirmam que as informações retornadas O servidor é aquele que estávamos aguardando e você também pode atribuir valores a novas variáveis de ambiente ou globais para usar mais tarde. Por exemplo:

Neste teste, temos uma afirmação que verifica que o código de estado é um 200 e também, um loop para armazenar em uma variável de informações sobre um determinado navio de todos os retornos. No lado direito, temos uma série de peças de código que ajudam o usuário na criação de testes.

A próxima etapa seria salvar a solicitação pressionando o botão “Salvar” e escolher onde salvá-lo. Temos a opção de salvá-lo diretamente na coleta:

ou em um pasta. Armazenar-los em pastas tem a vantagem de ser capaz de isolar sua execução do restante das solicitações.

Execução de testes

para executar a solicitação criada primeiro, você terá que salvá-lo (importante!) E, em seguida, enviá-lo clicando em “Enviar”. A partir da resposta, estamos interessados em duas partes: corpo, onde vemos o JSON retornado pelo servidor com todas as informações e testes, onde o resultado dos assertos será visto.

neste caso, um dos 2 testes falhou porque foi especificado nos testes que deveram receber mais de 100 navios e se Observamos as informações recebidas lá é menor.

Uma vez que temos todas as solicitações que desejamos junto com seus testes podem ser executadas em conjunto. Para que precisamos abrir o “Runner Collection”:

para executar o Testes, devemos seguir as seguintes etapas:

  1. Escolha entre executar a coleção inteira ou apenas uma pasta.
  2. Escolha o ambiente onde nós armazenamos as variáveis.
  3. Número de vezes Queremos executar os testes.
  4. Teste de início

Uma vez que a execução é termina, você pode ver os resultados no lado direito da tela. Acima de tudo, um resumo aparecerá no qual você pode ver quantos testes falharam, quantos E quanto tempo demorou o exemplo. Abaixo da mesma aparência, mas para cada solicitação feita.

newman

carteiro tem uma versão de linha de comandos Chamado de Newman que tem muitos utilitários, mas só precisamos de um: permite a integração das coleções criadas no carteiro com um sistema de integração contínua, como Jenkins, que é um passo fundamental para obter a automação de teste.

Instalar Newman é muito fácil:

Antes de começar a executar o teste Primeiro, devemos exportar o ambiente do carteiro.

e coleção:

vai ficar um JSON do ambiente e outro da coleção em uma pasta, que temos que nos começar de um comando Console a governar Newman.

Agora, podemos escolher entre executar a coleta completa:

ou apenas uma pasta (adicionando o argumento -f):

A saída retorna quase o mesmo que o carteiro retornou: a execução de cada solicitação e Resumo Indicando quantos testes falhou e quantos não.

jenkins

a última etapa para concluir a automação de teste na API escolhida é instalar o Newman no mesmo servidor no qual Jenkins é e instalar alguns plugins:

    plugin do parser de log: para analisar a saída sintaticamente.

    • configurações:
      • descrição: análise de erros.
      • Arquivo de regras de análise: Arquivo com as regras e com o seguinte conteúdo:
  • Plugin de extensão de e-mail: para receber um e-mail se um teste falhar.

Uma vez que tenhamos os plugins instalados e configurados, criamos um novo trabalho (novo trabalho) com as seguintes informações:

Nome do projeto: Star Wars (por exemplo)

Build → Adicionar Etapa de Construção → Executar Shell e escrevemos o mesmo Ries de comandos Qui Escrevemos para Regra Newman em local:

pós-compilação Ações → Adicionar ação pós-compilação → Saída do console (log de construção) Analising

e em regras de análise de seleção Selecionamos “análise de erros” (descrição)

Ações pós-compilação → Adicionar ação pós-compilação → notificação de e-mail editável

e preencher Nas seguintes informações:

    lista de destinatários do projeto: Endereços de correio que você deve receber e-mail.

  • Configurações avançadas → Adicionar acionador → script – após a construção
    • Script de gatilho:

Salvar (salvar) e construir (construir agora ) …

O console de saída mostrará o mesmo que quando executamos Newman em locais, juntamente com algumas linhas que indicam que Jenkins fez suas verificações.

Eu executei a pasta “Starships” por caminho porque sei que um teste falhará e, assim, fará com que você envie um e-mail. O e-mail recebido será:

Nele podemos ver que o assunto indica que o assunto indica que algo não foi bom (algo deu errado …) e no corpo da mensagem que Jenkins executou o trabalho corretamente e um link para a saída de execução para ver os resultados.

Uma vez que estamos em O console de saída do trabalho que podemos acessar “saída do console analisado” para ver sublinhado as linhas em que os testes que falharam os testes aparecem.

Obtendo a automação de teste em qualquer API é tão fácil quanto se siga as etapas indicadas em Este post, só precisamos configurar três programas e não teremos que nos preocupar com mais nada. Jenkins será cobrado para nos enviar um e-mail se um teste falhar

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *