image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Josiane Santos
Josiane Santos04/01/2023 18:45
Compartilhe

Preparando Postman com auxílio do Swagger UI

  • #Java

Bootcamp DIO – QA Quality Assurance Para Mulheres GFT

Preparação na Ferramenta Postman e no site Swagger UI

1º Criar uma Collection no Postman: na aba Collection / New / Collection / Nomear a Collection (PetStore-QA)

1.2º Será aberto uma janela de scopo (Aba => Authorization), tudo o que for executar para a collection criada será rodado dentro desse scopo

1.3º setar: clicar em No Auth / selecionar API Key

1.4º Preencher campos:

Key => api-key

Value => special-key

Vai funcionar para todas as requisições dessa collection

2º Na aba Pre-request Script => vai ser executado antes de cada request

3º Na aba Tests => efetivamente serão executados depois de cada requisição da collection em questão

4º Na aba Variable => nesta aba ficarão as variáveis a níveis de collection, que funcionarão para apenas a collection para qual foram criadas, estarão acessíveis como a variável global ou uma variável de ambiente.

Para acessar uma variável de ambiente, é preciso setar o ambiente (ícone no canto superior direito - folha com olho)

Será necessário criar um ambiente quando não se tem um, para isso:

1º Na aba Environments (lado esquerdo - abaixo de APIs);

1.2º Creat Environment

1.3º Nomear o ambiente com mesmo nome da collection

1.4º Clicar no campo abaixo de Variable - nomear com "base_url_environment"

1.5º Clicar no campo abaixo de Type - selecionar a opção default (aparecerá as opções defult - padrão - e secret - que são para dados sensíveis)

1.6º Clicar no campo abaixo de Initial Value - nomear com a URL no site Swagger, está disponível em "Base URL: petstore.swagger.io/v2", adicionar "https://" antes da url selecionada, deixando assim: "https://petstore.swagger.io/v2"

1.7º Salvar.

É observado o "INITIAL VALUE (valor inicial) e "CURRENT VALUE" (valor concorrente), mas qual a diferença entre eles?

* O valor inicial - é o valor que será compartilhado

* O valor concorrente - é um valor dinâmico, é um valor gerado quando está sendo enviado uma requisição, não é sincronizado com servidores do Postman (que pode ser alterado em tempo de execução), se deixar sem fazer nada, esse valor assume o valor inicial.

Setando também o global, clicar em "Globals" do lado esquerdo, acima de "PetStoreQA"

1º Variable -> nomear => base_url_global

2º Type -> selecionar => default

3º Initial Value -> nomear => https://petstore.swagger.io/v2

4º Salvar.

Voltando para aba Collection

Clicar em PetStore => selecionar a aba Variables

1º Variable -> nomear => base_url_collection

2º Initial Value -> nomear => https://petstore.swagger.io/v2

3º Salvar.

Se a api-key é criada para uma collection específica, não há necessidade de compartilhar a nível global, o que pode ser feito:

Na aba Variables

1º Variable -> nomear => api-key

2º Initial Value -> nomear => special-key

3º Salvar.

Voltar na aba Autorization: no campo "Value" apagar "special-key" e já irá apresetar todas as variáveis acessíveis daquele ambiente:

1º Digitar { e abrirá as possibilidades de variáveis, selecionar {{api-key}}

2º Salvar.

Criando agora as requisições

1º Clicar em "Add a request"

2º Clicar em (...) ao lado de "New Request" / Duplicate (criar 4 requisições)

3º Clicando sobre "New Request", será criadio um usuário

4º No campo onde está GET, selecionar POST;

5º Nomear => Create user

6º Salvar.

Voltando no site Swagger para verificar o que precisa, em USER, POST, ele vai dizer que precisa de um "body", vamos copiar o código, voltando no Postman na aba body:

1º Selecionar -> raw => clicar em "text" e selecionar JSON

2º Dentro da caixa abaixo das opções => colar o código copiado no Swagger

3º Fazer as alterações necessárias:

Código copiado:

Created user object

{

"id": 0,

"username": "string",

"firstName": "string",

"lastName": "string",

"email": "string",

"password": "string",

"phone": "string",

"userStatus": 0

}

Código com alterações:

{

"id": 2,

"username": "josichs",

"firstName": "Josiane",

"lastName": "Santos",

"email": "email@teste.com",

"password": "abc123",

"phone": "99999999999",

"userStatus": 0

}

5º Setar o ambiente => cliclar em No Environment (canto superior direito), para acessar o ambiente criado, selecioná-lo.

6º Acessar nossa url -> como ela já cadastrada nas variáveis, só é preciso colocar { , selecionar {{base_url_environment}}, adicionar /user, fica assim=>{{base_url_environment}}/user

7º Copiar URL {{base_url_environment}}/user e colar nas requests criadas, salvando sempre.

Identificando as requests

1º request => POST (nomeado como Create user que ficará com a url {{base_url_environment}}/user)

2º request => GET (nomeado como Login que ficará com a url {{base_url_environment}}/user/login)

3º request => GET (nomeado como Get by username que ficará com a url {{base_url_environment}}/user/criarnomeusuario)

4º request => DELETE (nomeado como Delete by username que ficará com a url {{base_url_environment}}/user/deletarnomeusuario)

Todos os links de url foram copiados do site Swagger.

Após nomear e classificar cada request, será necessário organizar, porque quando juntar com o Pet, ficará um monte de requisições juntas que não estarão diretamente relacionadas.

O que pode ser feito?

Pode ser criada uma pasta (clicando nos três pontos em frente do nome PetStore :

image

• clicando em “add folder”

• Nomear: User + Enter

Na tela da pasta criada é possível níveis de autorização, scripts a níveis de pasta (não é o escopo a nível de pasta), não é possível setar uma variável diretamente na tela de variável, mas consegue fazer testes a níveis somente daquela pasta.

Clicar e arrastar cada request para pasta criada, assim ficará tudo organizado.

Clicar em:

• Na request Creat user para conferir preenchimento de cada aba:

o Aba Body foi feito preenchimento manual;

o Aba Headers, tem um autopreenchimento;

o Aba Authorizantion pode-se setar a autorização a nível de requisição, clicando na caixa a frente da palavra “Type”, mas neste caso vamos deixar como está, que já está selecionado “Inherit auth from pather” (que está herdando do pai que é “Collection”)

Após toda configuração e conferência, clicar no botão “Send” e verificar se está tudo certo ou ocorrerá algum erro.

Para a configuração realizada, retornou um erro de URI, agora corrigindo o erro, é muito importante verificar o “Console”, porque nele aparecerá todas as informações para depurar;

O erro identificado é que o POST enviado, não está conseguindo identificar o valor da variável de ambiente, que não está preenchido a valor concorrente, para corrigir esse erro iremos voltar em “Environment” (do lado esquerdo abaixo de API):

• Copiar a URL de Initial Value e cola em Current Value

• Salvar.

Voltando para Collections (lado esquerdo superior), e clicar novamente no botão Send.

O retorno esperado é:

image

ID retorna 200

Se fosse Created, retornaria 201

É possível salvar as respostas como exemplo:

image

Aparecerá uma cópia abaixo da request Creat user, será possível acessar de forma separada e ainda colocar em uma documentação por exemplo;

image

No Body é possível fazer algumas alterações:

image

No console ele trará o retorno de erro e de acerto:

image

image

Caso necessário depuração no Postman, clicar em “All Logs”:

image

Trabalhando agora na request “GET Get Login”:

• Clicar sobre a request GET Get Login;

• Voltando no Swagger, na guia “GET /user/login, ele mostra que será necessário “username” e “password”, é importante se atentar que ele mostra que será em forma de paramêtros;

o Clicando em executar, ele apresentará o código de como deve ficar:

O exemplo acima, é apenas para título de aula, na atividade real, nunca se deve passar a senha e username dentro da rota;

• Copiar “?username=”nome adicionado”&password=”senha adicionada””

image

• Voltando ao Postman,

• Colocar “?username=”nome adicionado”&password=”senha adicionada”” na linha GET {{base_url_environment}}/user/login?username=nome adicionado&password=senha adicionada

o Exempo de como poderá ficar:

image

o Na aba Params;

▪ no campo KEY, digitar: username, enter, password;

▪ no campo VALUE, digitar: O nome do usuário, enter, e a senha

o As abas restantes não haverá necessidade de preenchimento;

• Clicar no botão Send e verificar o retorno;

image

• Podendo salvar como anteriormente já feito;

• E verificar no console a descrição do retorno:

image

Trabalhando agora na request “GET Get by username”:

• Clicando sobre a request Get by username;

• Voltando no Swagger, verificar a guia GET /user/{username}

o Aqui ele pede para cadastrar o nome do usuário (username);

• Voltando para Postman, na linha GET {{base_url_environment}}/user/nomedousuário

o Exemplo da aula:

image

• Clicar no botão Send e observar o retorno;

o Exemplo da aula:

image

• Salvar como anteriormente já feito;

Trabalhando agora na request “DEL Delete by username”:

• Clicando sobre a request DEL Delete by username;

• Voltando no Swagger, verificar a guia DELETE /user/{username}

o É necessário apenas o nome do usuário (username);

• Voltando para Postman, na linha DELETE {{base_url_environment}}/user/nomedousuário

o Exemplo da aula:

image

• Clicar no botão Send e observar o retorno;

o Exemplo da aula:

image

• Salvar como anteriormente já feito;

Aula: Testes manuais com endpoints de usuários

Josiane Cristina Henrique dos Santos

Bootcamp DIO – QA Quality Assurance Para Mulheres GFT

Compartilhe
Comentários (2)
Christiane Gozza
Christiane Gozza - 04/01/2023 20:16

Boa noite e muito obrigada por compartilhar, muito bom.

Thiago Henrique
Thiago Henrique - 04/01/2023 19:34

Boa noite!

Obrigado pelo artigo, excelente conteúdo, sempre uso o POSTMAN para testar meus end-points.