Automatizando o Postman
Automatizando o Postman
E ae, também é um amante do Back-End como eu? Se sim, aposto que adora usar o Postman ou o Insomnia para explorar as possibilidades da sua API. Estes são só dois dos vários REST Clients do mercado atualmente, e o meu preferido é sem dúvidas o Postman! Acho muito bom as formas como podemos tratar cada API independentemente, com processos pré-definidos, interações entre diferentes endpoints, declaração de variáveis com diferentes níveis de escopo — por WorkSpace, pasta ou endpoint e muito mais!
Vamos começar criando nossos WorkSpaces!
Agora que você está com seu Postman instalado e com a sua conta já criada na plataforma, vamos dar o primeiro passo para ter um ambiente organizado e o melhor de tudo, com a sua cara! Vamos criar um WorkSpace.
- Na tela inicial da aplicação, clique em WorkSpaces.

- Clique em Create Workspace

- Então somos apresentados a essa tela!
Ela nos apresenta diversos recursos e templates de Workspaces pré definidos pela aplicação! Eu considero a pratica de
dividir meus Workspaces no Postman por 'ambiente' uma boa pratica não só por quesito de organização, mas também
para definir os limites da responsabilidade de cada Collection que eu trabalho, tornando mais claro o que cada
variável pode fazer em determinado escopo. Por exemplo, eu tenho um Workspace para as minhas aplicações pessoais,
um para estudos e cursos, e um para o trabalho. - Vamos criar um Workspace em branco. Depois de clicar em
NEXTna parte inferior esquerda da tela, somos apresentados a tela onde podemos escolher o nome do Workspace, seu tipo e sua visibilidade.
Depois disso você será apresentado a uma tela onde deve criar um nome para um time, e mais algumas informações que no
momento não são importantes. Basta preenche-las e então criar o Workspace! Após isso você será apresentado a essa tela:
Como pode ver, destaquei as áreas de interesse para que possamos finalmente colocar a mão na massa e automatizar alguns
endpoints! - Agora será necessário que você tenha o Docker instalado na sua maquina, para que possamos
fazer juntos os proximos passos.
Certifique-se de que o Docker esteja rodando na sua maquina, ai basta rodar o seguinte comando:
docker run -p 3000:3000 guilhermeabroncari/mini-api-rest-client- É uma boa entender o que a flag -p com as portas 3000:3000 representam neste comando, pois se a porta 3000 na sua maquina está ocupada, você pode simplesmente apontar para outra porta que esteja live na sua maquina, como por exemplo a porta 8765:3000!
- Caso não tenha o Docker mas tenha o Node.js instalado na sua maquina, pode clonar o repositório e rodar a mini-api-rest-client que criei localmente.
- Agora basta criar a nossa primeira Collection e dar um nome. Então vamos adicionar uma nova pasta.
- A forma como você vai organizar as suas pastas e chamadas vai do seu próprio gosto, e a forma como eu gosto de fazer
é dividir da seguinte forma:
- Pastas => Recursos oferecidos pela API
- Requests declaradas dentro da pasta => Verbos HTTP separados por tipo, seguindo o fluxo CRUD, ou seja:
- POST ---------- (Create)
- GET ----------- (Read)
- PUT/PATCH --- (Update)
- DELETE ------- (Delete)
- Demais verbos (HEAD, OPTIONS, etc...)
- A forma como você vai organizar as suas pastas e chamadas vai do seu próprio gosto, e a forma como eu gosto de fazer
é dividir da seguinte forma:
- Nossa api de teste, possui apenas um pequeno CRUD de items, mas só porquê ela é pequena, não significa que seja bagunça!
Caso tente fazer qualquer chamada que não seja um post para a rota
http://localhost:3000/authvocê será barrado por não estar devidamente autenticado!- Dito isso, vamos criar a pasta
authcom uma request do tipoPOSTmandando o seguinte objeto no corpo da requisição:
{ "username": "user", "password": "123" }- Por se tratar de uma api de testes, o usuário e a senha podem ser qualquer coisa, desde que os campos não estejam vazios.
- Dito isso, vamos criar a pasta
- Após fazer isso sua resposta será:
E com isso vamos finalmente poder fazer as requisições para os endpoints! E para começar a otimizar as coisas, vamos colocar esse token numa variável de ambiente Global no Postman!{ "token": "meu-token-super-seguro" } - Você pode colocar variáveis de ambiente em vários lugares e em vários níveis diferentes no Postman. Com um pouco de
discernimento e pratica vai acabar encontrando o lugar ideal para cada situação ideal no seu dia a dia. Vamos colocar o
nosso token super seguro a nivel global, assim ele poderá ser referenciado em qualquer lugar no nosso Workspace.
- Você ainda pode defini-las na pasta que agrupa seus endpoints.

- E no endpoint em si.

- Você ainda pode defini-las na pasta que agrupa seus endpoints.
- Como pode reparar, já adicionei duas novas variáveis para os nossos testes. a
base_urlque guarda o valorhttp://localhost:3000/, e recomendo que faça o mesmo para que possamos continuar. Aproveite e já crie a seguinte variável a nivel de Collection com sem preencher seu valor ainda:last_created_item_id - Agora vamos guardar variáveis de ambiente para os outros endpoints de forma dinâmica. Como exemplo, vamos escrever
nosso endpoint que cria novos items e recebe o item criado como resposta no payload. Então vá para a sessão de
Scripts que é onde a magica acontece.

- Nessa sessão, pode-se perceber que existem duas abas laterias, a Pré-REQ e a Post-REQ! Os nomes são bem
auto-explicativos. Vamos trabalhar com o
Post-reqneste exemplo. Aqui no script trabalhamos com o objetopm, que apresenta todas as funcionalidades das requests que o Postman está executando pra gente.
- Como pode ver, estamos atribuindo a variável a nivel de Collection. Explore as opções e se aprofunde mais usando a documentação oficial.
- Agora podemos simplesmente usar essa variável que foi preenchida no passo anterior na nossa proxima chamada!
- Agora você já tem a base para poder praticar em todos os endpoints dessa mini-api! Manda bala!!!
Com estes conhecimentos, você já é capaz de reduzir bastante a carga repetitiva de testes manuais em suas API's! Espero que até aqui você já tenha adquirido conhecimento util para o seu dia a dia. Como esse artigo já está se estendendo mais do que eu esperava, vou dividi-lo em mais partes.