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 :
• 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 é:
ID retorna 200
Se fosse Created, retornaria 201
É possível salvar as respostas como exemplo:
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;
No Body é possível fazer algumas alterações:
No console ele trará o retorno de erro e de acerto:
Caso necessário depuração no Postman, clicar em “All Logs”:
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””
• 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:
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;
• Podendo salvar como anteriormente já feito;
• E verificar no console a descrição do retorno:
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:
• Clicar no botão Send e observar o retorno;
o Exemplo da aula:
• 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:
• Clicar no botão Send e observar o retorno;
o Exemplo da aula:
• 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