Newman Report

Collection
ServeRest - ADM
Description
**O ServeRest é uma API REST gratuita que simula uma loja virtual com intuito de servir de material de estudos de testes de API.** **Não deixe de seguir o** [<b>autor do projeto</b>](https://github.com/PauloGoncalvesBH) **e deixar um star no repositório:** [<b>github.com/ServeRest/ServeRest</b>](https://github.com/ServeRest/ServeRest) Essa página documenta todas as rotas e como acessá-las. Para mais detalhes do ServeRest (como executar localmente utilizando Docker ou NPM, alterar timeout de autenticação, etc) acesse [o repositório do ServeRest](https://github.com/serverest/serverest). Está utilizando Postman? Importe o [JSON do Swagger](https://raw.githubusercontent.com/ServeRest/ServeRest/trunk/docs/swagger.json) para ter acesso às collections. Vai fazer teste de carga? Leia a seção '[Teste de Carga](https://github.com/ServeRest/ServeRest#teste-de-carga)'. Muito obrigado ♥ a todos que apoiam o projeto [financeiramente](https://opencollective.com/serverest#section-contributors) ou [com código, ideias e divulgação](https://github.com/ServeRest/ServeRest#contribuidores-), graças a vocês **mais de R$ 2000,00 foram doados para a ONG** [<b>Todas as letras</b>](https://todasasletras.org/) até o momento. O ServeRest possui um front, com status em beta, não deixe de conhecer: [front.serverest.dev](https://front.serverest.dev). Precisa de apoio? [Abra uma issue](https://github.com/ServeRest/ServeRest/issues) ou contate o mantenedor do projeto: Contact Support: Name: Paulo Gonçalves [https://serverest.dev](https://serverest.dev) 
Time
Wed Nov 26 2025 04:49:32 GMT+0000 (Coordinated Universal Time)
Exported with
Newman v6.2.1
 
 
Total
Failed
Iterations
1
0
Requests
20
0
Prerequest Scripts
52
0
Test Scripts
52
0
Assertions
127
0
 
Total run duration
2.1s
Total data received
181.79KB (approx)
Average response time
59ms
 
Total Failures
0

Requests


Description
**Título:** Gerar massa de dados de usuário para testes automatizados **Objetivo:** Esta requisição realiza um GET em [https://randomuser.me/api/](https://randomuser.me/api/) para gerar, de forma dinâmica, dados de usuário que serão consumidos por outros testes da coleção. A resposta serve como massa de dados temporária para cenários de cadastro, autenticação e fluxo de compra. **Scripts automáticos:** **1)** Limpeza e definição de variáveis globais (Pré-requisição) - Remove variáveis globais previamente definidas: schema, userAPIName, userAPIEmail, userAPIPassword. - Define uma variável global "schema" (JSON Schema) para validação do contrato da resposta. **2)** Extração de dados e status (Testes pós-resposta) - Valida o código de status 200. - Quando a resposta é 200, extrai e armazena nas variáveis globais: - userAPIName: primeiro nome do usuário (results\[0\].name.first) - userAPIEmail: email do usuário (results\[0\].email) - userAPIPassword: senha do usuário (results\[0\].login.password) - Executa a validação de contrato (schema) usando AJV. Em caso de falha, registra os erros no console e falha o teste. **Estrutura esperada da resposta (exemplo):** Exemplo simplificado do payload retornado pelo Random User API, com destaque para os campos extraídos: { "results": \[ { "gender": "female", "name": { "title": "Ms", "first": "Sthefany", "last": "Ricardo" }, "location": { /\* ... _/ },__"email": "_[<i>sthefany.ricardo@example.com</i>](https://mailto:sthefany.ricardo@example.com)_",__"login": {__"uuid": "...",__"username": "...",__"password": ""__},__/_ demais campos omitidos \*/ } \], "info": { "seed": "...", "results": 1, "page": 1, "version": "1.4" } } **Campos extraídos para uso posterior:** - results\[0\].name.first -> userAPIName - results\[0\].email -> userAPIEmail - results\[0\].login.password -> userAPIPassword **Regras de uso e observações:** - Esta requisição não possui corpo (GET) e pode ser executada isoladamente para renovar a massa de dados. - As variáveis globais definidas (userAPIName, userAPIEmail, userAPIPassword) ficam disponíveis em todo o workspace e podem ser referenciadas com {{userAPIName}}, {{userAPIEmail}} e {{userAPIPassword}}. - Utilize essas variáveis em outros requests da coleção (ex.: cadastro de usuário, login, criação de carrinho/produto) para evitar dados estáticos e reduzir flakiness. - Caso precise forçar novos dados, basta reenviar a requisição; novas credenciais aleatórias serão geradas. **Validação automática do contrato (schema):** - O schema JSON é carregado no pré-requisito e validado via AJV nos testes. - Em caso de divergência com o contrato, os erros são exibidos no console do Postman e o teste "Validar o contrato (schema) retornado" falha, sinalizando problema de compatibilidade da API. **Notas:** - Esta requisição faz parte do fluxo de preparação de dados da coleção e deve ser executada antes dos cenários que dependem de credenciais dinâmicas.
 
Method
GET
URL
 
 
Mean time per request
98ms

Mean size per request
1.1KB

 

Total passed tests
3
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Status code is 20010
Capturar os dados de usuario retornados10
Validar o contrato (schema) retornado10

Description
A duração do token retornado em authorization é de 600 segundos (10 minutos). Caso esteja expirado irá receber status code 401 (Unauthorized).
 
Method
POST
URL
 
 
Mean time per request
232ms

Mean size per request
82B

 

Total passed tests
5
Total failed tests
0

 

Status code
201

 
Tests
NamePass countFail count
Validar status code 20110
Validar a mensagem de sucesso retornada10
Usuário criado possui ID válido10
Capturar o ID de criação do usuario10
Validar o contrato (schema) retornado10

Description
# Requisição: Realizar login ## Propósito Este endpoint realiza a autenticação de um usuário administrador na API, retornando um token JWT para acesso aos demais endpoints protegidos. ## Regras e Comportamento - **Método:** POST - **URL:** `https://serverest.dev/login` - **Headers obrigatórios:** - `Content-Type: application/json` - `Accept: application/json` - **Body:** ``` json { "email": "Stephania.Emard83@hotmail.com", "password": "mui9KAuMcHfft7T" } ``` - **Duração do token:** O token retornado no campo `authorization` é válido por 600 segundos (10 minutos). - **Expiração:** Após expirar, qualquer requisição autenticada retorna status 401 (Unauthorized). ## Respostas Esperadas ### 1\. Sucesso (200) ``` json { "message": "Login realizado com sucesso", "authorization": "Bearer <token_jwt>" } ``` - O campo `authorization` contém o token JWT no formato Bearer. - O token JWT possui 3 partes separadas por ponto. ### 2\. Falha de autenticação (401) ``` json { "message": "Email e/ou senha inválidos" } ``` ## Validações Automatizadas (Testes) - Verificação do status code 200 para sucesso. - Validação da mensagem de sucesso. - Checagem do formato do token (`Bearer ...`). - Captura automática do token em variável global (`ApiKeyAuthAdm`). - Validação de que o token JWT possui 3 partes. - Validação do contrato de resposta via schema (AJV). - Para falha, validação da mensagem de erro específica. ## Observações - Utilize o token retornado para autenticar requisições protegidas, enviando-o no header `authorization`. - O endpoint aceita apenas usuários administradores previamente cadastrados. - O schema de resposta é validado automaticamente nos testes. --- A documentação foi aprimorada para refletir as regras, exemplos de resposta, validações automáticas e observações relevantes para o uso deste endpoint.
 
Method
POST
URL
 
 
Mean time per request
42ms

Mean size per request
300B

 

Total passed tests
6
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar a mensagem de sucesso retornada10
Token possui formato Bearer10
Capturar o token de autorização para o usuario autenticado10
Token JWT possui 3 partes10
Validar o contrato (schema) retornado10

Description
Não é permitido cadastrar usuário com email já utilizado
 
Method
POST
URL
 
 
Mean time per request
45ms

Mean size per request
82B

 

Total passed tests
5
Total failed tests
0

 

Status code
201

 
Tests
NamePass countFail count
Validar status code 20110
Validar a mensagem de sucesso retornada10
Usuário criado possui ID válido10
Capturar o ID de criação do usuario10
Validar o contrato (schema) retornado10
Method
GET
URL
 
 
Mean time per request
85ms

Mean size per request
103.49KB

 

Total passed tests
5
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Quantidade corresponde ao número de usuários10
Todos os usuários possuem campos obrigatórios10
Email possui formato válido10
Validar o contrato (schema) retornado10
Method
GET
URL
 
 
Mean time per request
42ms

Mean size per request
160B

 

Total passed tests
7
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar que _id retornado corresponde ao solicitado10
Usuário possui ID válido10
Email possui formato válido10
Campo administrador é true ou false10
Verificar se o usuario é administrador10
Validar o contrato (schema) retornado10
Description
Não é permitido cadastrar usuário com email já utilizado. Caso não seja encontrado usuário com o ID informado é realizado novo cadastro ao invés de alteração.
 
Method
PUT
URL
 
 
Mean time per request
43ms

Mean size per request
50B

 

Total passed tests
3
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar a mensagem de sucesso retornada10
Validar o contrato (schema) retornado10
Description
Não é permitido excluir usuário com carrinho.
 
Method
DELETE
URL
 
 
Mean time per request
42ms

Mean size per request
51B

 

Total passed tests
3
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar a mensagem de sucesso retornada10
Validar o contrato (schema) retornado10

Description
Não é permitido cadastrar produto com nome já utilizado
 
Method
POST
URL
 
 
Mean time per request
48ms

Mean size per request
82B

 

Total passed tests
6
Total failed tests
0

 

Status code
201

 
Tests
NamePass countFail count
Validar status code 20110
Verificar se token está presente no header10
Validar mensagem de sucesso10
Produto criado possui ID10
Capturar o ID de criação do produto10
Validar o contrato (schema) retornado10
Method
GET
URL
 
 
Mean time per request
69ms

Mean size per request
69.15KB

 

Total passed tests
6
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Quantidade corresponde ao número de produtos10
Todos os produtos possuem preço positivo10
Todos os produtos possuem quantidade não-negativa10
Todos os produtos possuem campos obrigatórios10
Validar o contrato (schema) retornado10
Method
GET
URL
 
 
Mean time per request
43ms

Mean size per request
138B

 

Total passed tests
8
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar que _id retornado corresponde ao solicitado10
Produto possui ID válido10
Preço é maior ou igual a 110
Quantidade é não-negativa10
Nome não está vazio10
O produto retornado possue todos os campos obrigatórios10
Validar o contrato (schema) retornado10
Description
Não é permitido cadastrar produto com nome já utilizado. Caso não seja encontrado usuário com o ID informado é realizado novo cadastro ao invés de alteração.
 
Method
PUT
URL
 
 
Mean time per request
45ms

Mean size per request
50B

 

Total passed tests
4
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Verificar se token está presente no header10
Mensagem de alteração com sucesso10
Validar o contrato (schema) retornado10
Description
Não é permitido excluir produto que faz parte de carrinho.
 
Method
DELETE
URL
 
 
Mean time per request
45ms

Mean size per request
51B

 

Total passed tests
4
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Verificar se token está presente no header10
Validar a mensagem de sucesso retornada10
Validar o contrato (schema) retornado10

Description
Não é permitido cadastrar produto com nome já utilizado
 
Method
POST
URL
 
 
Mean time per request
44ms

Mean size per request
82B

 

Total passed tests
6
Total failed tests
0

 

Status code
201

 
Tests
NamePass countFail count
Validar status code 20110
Verificar se token está presente no header10
Validar mensagem de sucesso10
Produto criado possui ID10
Capturar o ID de criação do produto10
Validar o contrato (schema) retornado10
Method
GET
URL
 
 
Mean time per request
43ms

Mean size per request
137B

 

Total passed tests
8
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar que _id retornado corresponde ao solicitado10
Produto possui ID válido10
Preço é maior ou igual a 110
Quantidade é não-negativa10
Nome não está vazio10
O produto retornado possue todos os campos obrigatórios10
Validar o contrato (schema) retornado10

Description
O carrinho é vinculado ao usuário do token enviado no header `Authorization`, sendo possível cadastrar apenas 1 carrinho por usuário. Ao cadastrar carrinho com sucesso é feita a redução da quantidade no cadastro de cada produto inserido no carrinho.
 
Method
POST
URL
 
 
Mean time per request
46ms

Mean size per request
82B

 

Total passed tests
7
Total failed tests
0

 

Status code
201

 
Tests
NamePass countFail count
Validar status code 20110
Content-Type is application/json10
Verificar se token está presente no header10
Validar mensagem de sucesso10
Validar o contrato (schema) retornado10
Carrinho criado possui ID válido10
Capturar ID do carrinho criado10
Description
Os carrinhos retornados são únicos por usuário
 
Method
GET
URL
 
 
Mean time per request
41ms

Mean size per request
6.3KB

 

Total passed tests
11
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Validar o contrato (schema) retornado10
Quantidade corresponde ao número de carrinhos10
Cada usuário possui apenas um carrinho10
Todos os carrinhos possuem preços válidos10
Validar cálculo de preço total10
Todos os preços são positivos10
Validar cálculo de quantidade total10
Todos os carrinhos possuem campos obrigatórios10
Todos os produtos possuem campos obrigatórios10
Não há produtos duplicados em nenhum carrinho10
Method
GET
URL
 
 
Mean time per request
43ms

Mean size per request
282B

 

Total passed tests
14
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar status code 20010
Content-Type is application/json10
Validar o contrato (schema) retornado10
Carrinho possui ID válido10
Carrinho está vinculado a um usuário10
Carrinho possui pelo menos um produto10
PrecoTotal não é negativo10
QuantidadeTotal é positiva10
Validar cálculo do preço total10
Validar cálculo da quantidade total10
Todos os produtos possuem campos obrigatórios10
Não há produtos duplicados no carrinho10
Validar que _id corresponde ao solicitado10
Capturar os dados no carrinho do usuario10
Description
Ao cancelar uma compra o carrinho é excluído e o estoque dos produtos desse carrinho é reabastecido. O carrinho excluído será o vinculado ao usuário do `token` utilizado.
 
Method
DELETE
URL
 
 
Mean time per request
46ms

Mean size per request
86B

 

Total passed tests
8
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar o status da resposta10
Verificar se token está presente no header10
Accept is application/json in request header10
Content-Type is application/json in response header10
Validar o contrato (schema) retornado10
Resposta possui campo 'message'10
Validar mensagem retornada na resposta da requisição10
Compra cancelada com sucesso10
Description
Ao concluir uma compra o carrinho é excluído. O carrinho excluído será o vinculado ao usuário do `token` utilizado.
 
Method
DELETE
URL
 
 
Mean time per request
47ms

Mean size per request
68B

 

Total passed tests
8
Total failed tests
0

 

Status code
200

 
Tests
NamePass countFail count
Validar o status da resposta10
Verificar se token está presente no header10
Accept is application/json in request header10
Content-Type is application/json in response header10
Validar o contrato (schema) retornado10
Resposta possui campo 'message'10
Validar mensagem retornada na resposta da requisição10
Usuário não possui carrinho ativo10