Amarengo

Articles and news

Humilde Bits

testes de API usando o Carteiro, Newman e Jenkins

testes de API é um tipo de teste de software em que um engenheiro de testes e não apenas a funcionalidade, mas o desempenho, a confiabilidade e a segurança de um aplicativo. As APIs são testadas para examinar se o aplicativo funcionaria da maneira que se espera, pois as APIs são o núcleo das funcionalidades de um aplicativo.

testes de API durante o desenvolvimento podem revelar problemas com API, servidor, outros serviços, Rede e muito mais, aqueles que não se pode descobrir ou resolver facilmente após a implantação.

no entanto, testar APIs é difícil. Em vez de apenas verificar a resposta de um endpoint, pode-se ter testes de integração com o Postman para examinar e validar as respostas. As equipes atualmente também podem querer automatizar a execução desses testes assim que uma implantação for concluída. Uma abordagem que podemos adotar é fazer com que nossos testes de integração sejam executados sempre que um desenvolvedor verifique o código no repositório.

Adicionar esta camada de verificação de Qualidade, pode garantir que as funcionalidades existentes, ainda funcionam da maneira que eles esperavam, com um benefício adicional para os desenvolvedores para garantir que o seu código está fazendo exatamente o que ele pretendia.

Ferramentas para automação de teste API em CI

CI refere-se à integração contínua. Integração de scripts de teste e uma ferramenta de teste com a contínua construção do sistema onde os scripts de teste pode ser executado junto com cada nova implantação ou em uma base regular (diária, semanal ou quinzenal)

  1. Carteiro: Testes de integração com Postman.
  2. Newman: crie um arquivo PowerShell que execute esses testes de integração via linha de comando.Jenkins: adicione uma etapa Post Build no Jenkins para executar o script PowerShell sempre que uma compilação for iniciada.

seleção de API

implementei este procedimento em nosso projeto usando as APIs GPS, mas para instanciar aqui, vamos pegar as seguintes APIs:

mapa de tempo aberto: APIs públicas gratuitas.

eu escolhi isso, pois é uma coleção gratuita de APIs que qualquer pessoa pode assinar e ter suas próprias chaves de API para operar.

criar testes de integração

para o primeiro teste, vamos fazer uma solicitação GET simples para obter o clima por ID. Para interagir por meio das APIs, certifique-se de usar a chave de API recebida ao assinar os Serviços OWM.

passos para o primeiro teste de integração

faça um ambiente no carteiro dizer, ‘mapa meteorológico’ e definir as variáveis de ambiente nele. .

adicione os pré-requisitos na guia pré-Req para configurar o teste.

var cityIds =; / / obtenha um número aleatório entre 0-9var randomCityId = Math.chão ((Matemática.Aleatório() * 9) + 1);// Defina uma variável de ambiente para o valor do ID da cidade therandom de arraypostman.setEnvironmentVariable("CITYID",cityIds)

Agora, na guia de Teste de adicionar o script de teste da seguinte maneira:

var jsonData = JSON.analisar(responseBody); //Salvando theresponse valor de "nome" em um ambiente variablepostman.setEnvironmentVariable("CITYNAME",jsonData.nome);pm.test("código de Status 200", function () {pm.resposta.para.de ter.status(200); });

o script de teste acima obtém a resposta e nosso script envolve a resposta em uma variável chamada ‘jsonData’. Agora, o valor da propriedade name é salvo em uma variável de ambiente.

assim, o primeiro teste é criado que falha se o código de status HTTP for diferente de um 200.

coleções

como os testes de API acima, pode-se ter vários scripts de teste para vários endpoints. E esses vários scripts de teste podem ser executados em sequência para ter um conjunto de testes de ponta a ponta. A maneira de ter um conjunto de testes é manter vários scripts de teste em um titular de lugar chamado como uma coleção no carteiro.

essas coleções podem ser executadas ainda mais por meio do executor da coleção na ferramenta.

Collection Runner

um collection runner pode ser usado para ter uma coleção de endpoints de API com seus scripts de teste em um só lugar e, portanto, executá-los um por um de maneira sequencial. O Usuário só precisa executar a coleção apenas uma vez com todos os dados de teste necessários, scripts de teste e para quantas iterações quiser. O resultado da execução da coleção é um relatório de teste, abrangente o suficiente para monitorar o desempenho das APIs e também para tentar executar novamente os scripts de teste com falha.

para um estudo elaborado sobre corredores de coleta, consulte Link.

embora a interface do usuário do postman’s collection runner seja boa o suficiente, ainda assim, para integrar o sistema ao Jenkins, precisamos executar nossas coleções via linha de comando. Portanto, uma maneira de executar coleções por meio da linha de comando é por meio de Newman.

Newman

Newman é um pacote node Package Manager (NPM) que nos permite executar e testar coleções diretamente da linha de comando.

Pré-requisitos:

  • NodeJS e
  • NPM já instalado.

Comandos para ser executado no Windows Powershell

  • node-v
  • npm -v
  • $npm install-g newman

uma Vez que o requerido instalações são feitas, a pessoa precisa ter a sua colecção e de Ambiente exportadas para JSON arquivos no sistema local. Esses arquivos podem ser passados como argumentos para Newman.

passos para obter o ambiente e coleções no sistema local:

  • clique no botão Baixar e Exportar no carteiro.
  • baixe a coleção
  • baixe o ambiente
  • abra o prompt de comando e aumente seus privilégios. Isso é importante para você executar o script. Execute o seguinte comando:
Set-ExecutionPolicy-Scope CurrentUserExecution Policy: Unrestrictedconfirm esta alteração: Y

Agora abrir um outro prompt de comando e execute o seguinte comando:

newman executar e 

Adicionar Carteiro Testes para Jenkins

primeiro precisamos de exportar o nosso Carteiro arquivos (Ambiente e Coleções) e adicioná-los para o GIT, junto com o nosso script do Powershell para executar os testes através de Jenkins construir.

“adicione os arquivos carteiro à raiz do projeto.”

dizendo Jenkins para executar Newman

para isso, escrevemos um script que chama Newman e passa o ambiente e coleta arquivos JSON.

#powershell.exe -executionpolicy ignorar -comando "&'%do espaço de trabalho%\Jenkins_PostmanDemo.ps1'"echo "Dentro do script do Powershell"$SourceFilePath = $env:área de trabalho$FilenamePostfix = "*.postman_collection.como baixar e instalar Minecraft.postman_ambiente.json" # Get all Postman test files$JsonFiles = Get-ChildItem-Path $SourceFilePath-name-Filter $FilenamePostfix / Sort-Object-Property CreationTime-Descending# Change to directory where we have NodeJs installed. Caso contrário, o comando 'newman' não será reconhecido.# Você pode instalar o NPM e o Newman como usuário e copiar o diretório ~Roaming\npm no theC:\ drive.#cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Loop através de json arquivos e executar newman para executar o Carteiro testsforeach ($Arquivo $JsonFiles) {$collectionfilepath = "$SourceFilePath\$Arquivo"$environmentfilepath = "$SourceFilePath\$EnvironmentFile"nó newman executar $collectionfilepath -e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ‘exit $LASTEXITCODE’: Ao digitar este comando, você verá o resultado do último comando. Fazemos isso para garantir que, em cada loop, o comando Newman seja bem-sucedido. Se algum dos testes falhar, temos que parar o script e sair 1. Isso resultará em uma compilação com falha no Jenkins.

adicionando Script ao Jenkins

etapas:

  • faça Login no Jenkins e crie um projeto Freestyle.
  • comece configurando este projeto para extrair seu código repo do Git.
  • na guia geral, vá para a seção construir e adicione o seguinte comando:
powershell.exe-executionpolicy bypass-command "& '% WORKSPACE% \ Jenkins_PostmanDemo. ps1'

**pode-se configurar a seção de notificação de E-mail para configurar um alerta de E-mail sobre falhas de compilação também.

executando os resultados de compilação e monitoramento

tente executar o projeto e examine os resultados.

pode-se fazer uma entrada bem-sucedida no script powershell com a instrução ‘Inside Powershell script’ na saída Jenkins.

conclusão

melhorar a integração contínua utilizando Postman, Newman e Jenkins adiciona outra camada de garantia de qualidade em nosso ciclo de vida de desenvolvimento. Embora este seja um grande passo na automação, precisamos enfatizar o fato de que nossa cobertura de teste depende da qualidade de nossos scripts de teste.

Deixe uma resposta

O seu endereço de email não será publicado.