advanced scripting complex testing workflows postman
Saiba mais sobre scripts avançados do Postman para fluxos de trabalho de teste complexos:
Neste tutorial, veremos alguns exemplos básicos de uso de scripts avançados com Postman que nos permitiriam executar fluxos de trabalho de teste complexos.
Discutiremos exemplos como transferência de dados de uma solicitação para outra, encadeamento de solicitações, ou seja, controlar a ordem de execução das solicitações dentro da coleção Postman, etc.
serviços da web de sabão grátis para teste
=> Leia a série de treinamento Easy Postman.
O que você aprenderá:
- Passando dados entre solicitações no carteiro
- Solicitar encadeamento no carteiro
- Encadeamento de fluxo de trabalho avançado com carteiro
- Dicas importantes
- Conclusão
- Leitura recomendada
Passando dados entre solicitações no carteiro
A passagem de dados entre as solicitações é uma extensão do uso de diferentes tipos de variáveis Postman. Não é muito incomum quando uma solicitação de API depende de dados da resposta da solicitação anterior.
Para construir esse tipo de recurso usando o Postman, podemos simplesmente usar as variáveis do Postman para definir o valor dependendo da resposta que foi recebida das solicitações anteriores ou anteriores.
Aqui está um tutorial em vídeo:
Vejamos um exemplo para ilustrar isso.
Estaremos usando a mesma API https://reqres.in com seus 2 pontos de extremidade, ou seja, registrar o usuário e obter detalhes do usuário.
Usaremos o valor do ID do usuário retornado do ponto de extremidade de registro e o usaremos para obter o método de detalhes do usuário. Isso será obtido armazenando o valor userId em uma variável de ambiente e usando essa variável de ambiente na solicitação consequente.
Observe que todos esses scripts farão parte da guia “Testes” do console do criador de solicitações do Postman.
Vamos ver como o script ficará:
# 1) Para Registrar endpoint de usuário, a resposta desta API será semelhante à mostrada abaixo.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Agora, para executar a solicitação GET usando o id do usuário da resposta, precisamos obter o valor do id da resposta acima. Usaremos o script abaixo para armazenar o valor do id deste JSON em uma variável de ambiente chamada ID do usuário.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)Com o script acima, o valor do ID agora será armazenado na variável de ambiente userId e o mesmo pode ser usado durante a execução do terminal de solicitação do usuário GET.
#dois) Portanto, a solicitação do usuário GET terá a aparência mostrada abaixo.
https://reqres.in/api/users/{(userId}}
Assim que a primeira solicitação for executada, ele buscará o valor do UserID na resposta e atualizará o valor da variável de ambiente, para que possa ser usado nas outras solicitações.
Solicitar encadeamento no carteiro
Vamos primeiro tentar entender um caso de uso básico de encadeamento de solicitações e, em seguida, nos aprofundaremos em como podemos alcançar o encadeamento de solicitações usando o Postman.
Considere um cenário do fluxo de login de um site de comércio eletrônico e valide o usuário conectado. Agora, para um usuário fazer login, ele ou ela deve primeiro estar registrado no site e só então poderá fazer o login. Essa é a ordem em que o site real do aplicativo móvel executa as chamadas de API.
Veja isso de uma perspectiva de teste de integração. Para um teste de API, primeiro precisamos:
- Chame o ponto de extremidade de registro da API para que o usuário se registre com êxito.
- Em seguida, chame o terminal de login e valide os detalhes do usuário conectado.
Com o Postman, controlar a ordem de execução do pedido não é simples. A ordem de execução padrão é de cima para baixo, ou seja, a ordem em que as solicitações são declaradas ou criadas na coleção Postman.
O encadeamento de solicitações ou a ordem de execução da solicitação é alterada usando o seguinte script:
postman.setNextRequest({{RequestName}});É importante observar aqui que esse script de encadeamento de solicitação precisa ser adicionado ao script de pré-solicitação ou ao script de pós-solicitação (ou à guia de testes no criador de solicitações Postman), que aciona o fluxo de trabalho assim que a solicitação em execução for concluída.
Aqui, {{RequestName}} é o nome real da solicitação que está configurado ou definido na coleção Postman.
Vamos configurar uma coleção Postman com 4 solicitações diferentes para ilustrar o conceito de encadeamento de solicitações. Crie uma nova coleção com 4 solicitações (usaremos a mesma API https://reqres.in para ilustrar isso).
As 4 solicitações da coleção serão as seguintes:
# 1) POSTAGEM pedido para registrar o usuário ( https://reqres.in/api/register ) com corpo JSON de amostra com campos com e-mail e senha conforme abaixo.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }#dois) Solicitação POST com ponto de extremidade de login ( https://reqres.in/api/login ) com o mesmo corpo de solicitação acima.
# 3) Solicitação GET com ID do usuário 4.
O fluxo de trabalho que tentaremos alcançar é:
Registrar (POST) -> Detalhes do usuário (GET) -> Login (POST)
Não importa como essas solicitações sejam configuradas, criaremos um fluxo de trabalho para executá-las nesta ordem.

Observe que as solicitações são nomeadas como Register User, Get User e Login User respectivamente. É importante ter esses nomes de solicitação especificados de maneira exata e correta no script, caso contrário, o fluxo de trabalho travará.
Vamos ver como os scripts se parecem agora.
# 1) Solicitação POST para registrar.
postman.setNextRequest('Login User'); 
#dois) Solicitação POST para fazer login.
postman.setNextRequest('Get User'); 
# 3) Solicitação GET para obter os detalhes do usuário. É importante aqui que não queremos que nada aconteça após este pedido. Se não adicionarmos nenhum script de fluxo de trabalho aqui, a coleção Postman é projetada para retomar a próxima solicitação em sua ordem lógica ou padrão.
Assim, suponha que a ordem original das solicitações na coleção seja Cadastre-se, obtenha usuário e Conecte-se e nosso fluxo de trabalho está em Obter usuário como o controle não sabe qual solicitação ir em seguida, ele irá para a próxima solicitação lógica que é Conecte-se e acabará resultando em um loop infinito.
Para evitar tal situação, é útil encerrar o fluxo de trabalho usando,
postman.setNextRequest(null) 
Sempre que o script acima for encontrado durante a execução de uma coleção, a execução do fluxo de trabalho será interrompida e o executor da coleção será encerrado.
Nos casos em que houver referências circulares da próxima solicitação, o executor de coleta ficará preso em um loop infinito, causando um vazamento de memória mais cedo ou mais tarde.
Observe que para executar o fluxo de trabalho, você precisará executar a primeira solicitação ou inicializar manualmente, postar isso, ele seguirá o fluxo de trabalho conforme definido nos scripts de pós-solicitação.
Em outras palavras, a primeira solicitação que deve ser executada como parte do fluxo de trabalho também deve ser a primeira solicitação na coleção ou pasta de coleção, de forma que a execução do fluxo de trabalho comece com a primeira solicitação, que também é a primeira solicitação do fluxo de trabalho .
Encadeamento de fluxo de trabalho avançado com carteiro
O exemplo acima que discutimos é mais um fluxo de trabalho linear, onde apenas configuramos o fluxo de trabalho entre um conjunto de solicitações na mesma coleção. A mesma técnica também pode ser usada para repetir uma solicitação várias vezes com base em alguns valores de resposta ou variáveis de ambiente.
Considere o teste de integração para um aplicativo de carrinho de compras, onde você precisa testar um cenário onde um usuário procura por um produto e o adiciona ao carrinho e tem que realizar a mesma operação 5 vezes, ou seja, até que o carrinho tenha um total de 5 itens e então finalmente checkout.
Então, se você fosse escrever um fluxo linear para esse tipo de teste, você teria repetido solicitações individuais na coleção e, essencialmente, a coleção teria 5 solicitações para pesquisar um item e 5 solicitações para adicionar produtos ao carrinho e 1 pedido para finalizar a compra.
Com essa funcionalidade de fluxo de trabalho, podemos evitar a repetição das mesmas solicitações na coleção e usar os fluxos de trabalho para fazer um loop entre as solicitações.
como remover um índice de um array java
Vamos ver uma sequência de fluxo para tal cenário (então isso pode ser usado / criado usando o fluxo de trabalho do Postman junto com uma combinação de variáveis de ambiente).

Também há um exemplo interessante de uso do fluxo de trabalho do Postman para criar uma lista de reprodução do Spotify. Referir aqui Para maiores informações.
Dicas importantes
A seguir, estão algumas dicas importantes para lembrar ao trabalhar na criação de fluxos de trabalho.
- Ao executar uma coleção, se poucas solicitações não tiverem postment.setNextRequest sendo definido, a execução continua na ordem padrão de coleção. Portanto, geralmente é recomendado ter Postman.setNextRequest em todas as solicitações ou em nenhuma delas.
- Ao executar com coleções, se houver pastas dentro de uma coleção, Postman.setNextRequest pode ser usado apenas para solicitações pertencentes à mesma pasta, ou seja, a seleção de solicitação não pode ir além da pasta atual.
- O Postman.setNextRequest é a última instrução executada no script de pós-solicitação ou pré-solicitação, independentemente de onde e em que ordem for mencionada.
No caso de vários valores encontrados para setNextRequest, aquele que é mencionado no último é eficaz.
Conclusão
Neste tutorial, cobrimos alguns tópicos de script avançados, como combinação de ambiente e variáveis locais para passar dados entre diferentes solicitações no Postman e como podemos controlar a ordem de execução das solicitações usando o encadeamento de solicitações do Postman que permite recursos avançados como looping e ramificação.
É um recurso legal imitar o comportamento de um aplicativo da maneira como ele interagiria com diferentes APIs e é útil para escrever fluxos de trabalho ponta a ponta usando testes de integração com terminais API.
=> Confira o guia de treinamento do carteiro perfeito aqui.
Leitura recomendada
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Download do e-book do Testing Primer
- Tutorial POSTMAN: Teste de API usando POSTMAN
- Teste de desempenho de serviços da Web usando script LoadRunner VuGen
- Como usar o Postman para testar diferentes formatos de API?
- Teste de carga com tutoriais HP LoadRunner
- Diferença entre Desktop, Teste de Servidor Cliente e Teste da Web
- Você é um testador novo ou avançado? Encontre neste jogo de cartas