Testando APIs usando Postman e Excel

Olá pessoal, sou o chefe do departamento de testes e, recentemente, apareceu uma tarefa para testar a API. Para resolvê-lo, dominei a nova ferramenta Postman e JavaScript para mim.

Inicialmente, para cada API, escrevi minhas coleções e preparei dados de teste no formato JSON. Isso é bastante conveniente, mas com um grande número de testes e coleções, torna-se inútil manter. E não é conveniente validar dados em JSON.

Para resolver esses problemas, escrevi uma macro para o Excel e uma coleção no Postman. Agora, no Postman, tenho uma coleção para todas as APIs e um conjunto padrão de funções para processar dados recebidos e validar os resultados retornados. Consegui transferir o gerenciamento de dados de teste e a sequência de execução de consultas para o Excel.

O que foi


1. JSON com dados


Anteriormente, o kit de teste era armazenado neste formulário

2. 2. A sequência de execução da consulta com manipuladores JS foi armazenada nas coleções do Postman.



O que se tornou


1. Conjunto de testes movido para o Excel



Todos os dados são inseridos no Excel (caracteres das teclas de controle: R, H, I, etc., escreverei abaixo) e, em uma macro, eles são transferidos para o formato json:



2. No Carteiro



O experimento foi conduzido em um conjunto padrão de operações CRUD, que podem ser expandidas ainda mais.

Como no Postman todas as operações são executadas apenas dentro da estrutura da solicitação, eu tive que inserir uma solicitação get vazia no final da qual a próxima solicitação da sequência é determinada. Execute o código JS antes da solicitação e determine a primeira solicitação sem falha em branco.

Em todas as solicitações, as seções Script de pré-solicitação e Teste estão vazias, todo o código é unificado para solicitações e é armazenado nas seções gerais do script de Pré-solicitação e Teste da pasta Coleção de API.



Em todas as solicitações, é importante prestar atenção ao URL e à seção Corpo nas solicitações POST e PUT, seus valores são determinados por variáveis, cujos valores são inseridos no JSON com dados.



Agora sobre os próprios testes




Como ler o excel . A primeira linha não vazia é o número do caso de teste, ou seja, o caso de teste é armazenado verticalmente e nesta página há 9 casos de teste. No conjunto atual, em cada caso de teste, uma solicitação POST será executada primeiro e, em seguida, Excluir.

Como iniciar a geração Json a partir do Excel . No Excel, pressione F11 e vá para "EtaBook", execute a macro.

Palavras-chave


R - solicitação, significa o início de uma nova solicitação; na segunda célula da linha, o tipo de solicitação é armazenada; na terceira, o endereço com o qual você precisa entrar em contato. Observe que em url você pode especificar variáveis ​​Postman


O valor da variável será puxado

H - Dados para verificação no cabeçalho; até agora, apenas o código de resposta foi inserido; o Postman apenas o verifica no carteiro. É importante que no Excel o nome seja o mesmo "código de resposta" ou corrigido no Postman



I, I2 ... - A seção de dados de entrada suporta o armazenamento de modelos de dados de qualquer aninhamento, a figura à direita de I é responsável pelo nível de aninhamento. O próximo conjunto de dados é agrupado em JSON assim. Se a variável que armazena os dados estiver vazia, ela não será adicionada. Ou seja, se não houver valor na variável inn, ela não será adicionada e a variável principal será adicionada, pois armazena o modelo. Além disso, se o modelo inteiro estiver vazio, ele também não será adicionado.


Os dados nesta seção serão enviados no corpo da solicitação.



O, O2 ... - Seção dos parâmetros de saída, eles serão comparados com os retornados por resposta. Como a seção Entrada, ele suporta armazenamento de modelo.


Ao comparar, os dados são convertidos em string, eu também limitei adicionalmente o nível de recursão, isso pode ser removido

PO - Saída do Postman, os valores desta seção serão obtidos do corpo da resposta da solicitação pelo nome da variável e gravados na variável Postman.


No Excel, basta colocar qualquer caractere, o valor da resposta, e não o Excel, é gravado na variável


Esta seção é necessária para armazenar dados entre scripts, por exemplo, para excluir um objeto com o ID criado na solicitação anterior

O comando PC - Postman, introduziu apenas um comando "encerrar", é usado para forçar o encerramento após a execução da solicitação atual. Útil para um teste negativo, para não causar uma etapa para excluir o objeto criado.


A inserção desse comando permitiu armazenar testes positivos e negativos em uma folha



PI - Entrada do Postman, os valores desta seção serão gravados nas variáveis ​​do Postman antes da definição do URL


Pode ser útil se você precisar substituir as variáveis ​​especificadas no URL da solicitação.

A propósito, você pode usar dados das variáveis ​​Postman nos dados fornecidos, para isso é necessário usar um design especial



No caso 1, inserimos o valor obtido em uma variável, no caso 2, usamos. Pode ser usado não apenas no próximo caso, mas também no atual na próxima solicitação. Por exemplo, pode ser necessário se a definição do objeto para a alteração não seguir o URL, mas de acordo com o valor da variável na solicitação.

Preparação para a corrida


E agora, execute, execute o Postman runner, selecione a coleção desejada e faça o upload do arquivo com dados de teste:



Serviremos o seguinte conjunto:



15 testes são descritos aqui, com as etapas de 1 a 11, 13 e 15 sendo positivas com um resultado de 200 para uma solicitação POST e as etapas 12 e 14 são negativas com um resultado de 400. As informações não serão inseridas no banco de dados e, portanto, a seção Saída estará vazia e o comando será indicado. terminar. Este comando interromperá a execução da sequência e a solicitação para excluir "Excluir" não será enviada.

Após os casos de 1 a 11, 13 e 15, lembramos o ID que foi atribuído ao novo objeto e depois o excluímos.

Lançamos



Todos os 15 testes foram bem-sucedidos, a imagem mostra o teste 14, no qual Excluir não é chamado após o POST

Nos testes 1-11,13,15 após o POST, a exclusão do objeto criado é chamada:



Sumário


  • A sequência de solicitações para testar a API é feita no Excel e processada no Postman.
  • Todos os dados de teste também são renderizados no Excel; é conveniente gerenciá-los e validá-los. Pelo menos mais conveniente do que no formato JSON.
  • A coleção Postman é padronizada e não precisa ser aprimorada ao testar APIs semelhantes.

Referências


  1. Repositório GitHub, existe o Excel e a coleção Postman
  2. No desenvolvimento, foi usada uma ferramenta VBA-JSON, de autoria de Tim Hall.


Atualização de 15/10/2019

1. Aprimorou a capacidade de gerar arquivos json sem executar o excel, coloque-o no GenerateAll.cmd git, que executa o script vb GenerateJsonFiles.vbs. O script chamado percorrerá a pasta atual e todas as subpastas e gerará arquivos json
2. RunAll.cmd run para executar todos os arquivos de dados json gerados, também a pasta atual e todas as subpastas. Ao lado de cada um deles, será exibido o output-report.log com os resultados da execução.

Agora, parafusar no CI não deve ser um problema. Você também pode fixar a geração json no git deploy e comparar dados no excel para alterações nos arquivos json.

Source: https://habr.com/ru/post/pt467127/


All Articles