Skip to content

Guss182/Teste-Api-Modulo14-EBAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automação de Testes de API com Cypress

Este repositório foi desenvolvido como parte dos meus estudos em Qualidade de Software, com foco em automação de testes de API.

Neste projeto, utilizei o Cypress para automatizar requisições e validar o comportamento da API ServeRest, praticando cenários de autenticação, consulta, cadastro, edição e exclusão de registros.

A ideia foi construir uma base simples, mas organizada, para reforçar conceitos importantes de testes de API durante minha transição para a área de QA.

Objetivo do projeto

O objetivo deste projeto foi praticar os fundamentos da automação de testes de API, incluindo:

  • envio de requisições HTTP;
  • validação de status code;
  • verificação de mensagens e campos da resposta;
  • automação de cenários positivos e negativos;
  • uso de dados dinâmicos;
  • reutilização de comandos customizados;
  • validação de contrato com Joi.

Tecnologias utilizadas

  • JavaScript
  • Node.js
  • Cypress
  • Joi
  • @faker-js/faker
  • cypress-plugin-api
  • ServeRest

O que foi desenvolvido

Neste projeto, foram automatizados testes para os endpoints de:

  • Login
  • Usuários
  • Produtos

Também foram criados:

  • contratos de validação com Joi;
  • comandos customizados para reaproveitar ações frequentes;
  • dados dinâmicos para reduzir dependência de massa fixa.

Estrutura do projeto

.
├── cypress
│   ├── contracts
│   │   ├── produtos.contract.js
│   │   └── usuarios.contract.js
│   ├── e2e
│   │   ├── exercicio-api.cy.js
│   │   ├── login.cy.js
│   │   └── produtos.cy.js
│   ├── fixtures
│   │   └── example.json
│   └── support
│       ├── commands.js
│       └── e2e.js
├── cypress.config.js
├── package.json
└── README.md

Cenários automatizados

Login

  • realizar login com sucesso com usuário administrador;
  • capturar o token de autenticação retornado pela API.

Usuários

  • validar o contrato da listagem de usuários;
  • listar usuários cadastrados;
  • cadastrar um novo usuário com sucesso;
  • validar a mensagem de erro ao tentar cadastrar um e-mail já utilizado;
  • editar um usuário existente;
  • deletar um usuário previamente cadastrado.

Produtos

  • validar o contrato da listagem de produtos;
  • listar produtos cadastrados;
  • cadastrar um novo produto com sucesso;
  • validar a mensagem de erro ao tentar cadastrar um produto com nome repetido;
  • editar um produto já existente;
  • editar um produto criado durante o teste;
  • deletar um produto previamente cadastrado.

Comandos customizados

Para deixar os testes mais organizados e evitar repetição de código, foram criados comandos customizados para:

  • obter token de autenticação;
  • cadastrar produto;
  • cadastrar usuário;
  • editar usuário;
  • deletar usuário.

Isso ajudou a deixar os cenários mais legíveis e reaproveitáveis.

Validação de contrato

Além das validações funcionais, o projeto também possui validação de contrato utilizando Joi para os endpoints de:

  • usuários;
  • produtos.

Esse tipo de validação ajuda a conferir se a estrutura da resposta da API está de acordo com o esperado.

Geração de dados dinâmicos

Foi utilizado o Faker para gerar dados dinâmicos em alguns cenários, como:

  • nome de usuário;
  • e-mail;
  • nome de produto.

Isso ajuda a evitar conflitos com massa fixa e torna a execução dos testes mais flexível.

Pré-requisitos

Antes de executar o projeto, é necessário ter instalado na máquina:

Instalação

Clone o repositório:

git clone https://github.com/Guss182/Teste-Api-Modulo14-EBAC.git

Acesse a pasta do projeto:

cd Teste-Api-Modulo14-EBAC

Instale as dependências:

npm install

Como subir a API

Para iniciar o servidor da API localmente:

npm start

A aplicação será executada em:

http://localhost:3000/

Como executar os testes

Para rodar os testes em modo headless:

npm run cy:run

Para abrir o Cypress em modo interativo:

npx cypress open

Configuração da base URL

A URL base da API está configurada no arquivo cypress.config.js:

baseUrl: "http://localhost:3000/"

O que pratiquei com este projeto

Com este projeto, pratiquei principalmente:

  • automação de testes de API com Cypress;
  • organização básica de um projeto de testes;
  • criação de comandos customizados;
  • uso de autenticação via token;
  • validação de status code e mensagens da API;
  • uso de dados dinâmicos;
  • validação de contrato com Joi.

Pontos de melhoria

Como este é um projeto de estudo, ainda existem melhorias que podem ser feitas no futuro, como:

  • adicionar mais cenários negativos;
  • separar melhor as massas de dados;
  • melhorar o reaproveitamento entre os testes;
  • adicionar relatórios de execução;
  • integrar a execução em pipeline CI.

Considerações finais

Este projeto representa uma etapa importante do meu aprendizado em QA, principalmente no estudo de testes de API.

Meu objetivo aqui foi construir uma base sólida nos conceitos fundamentais da automação, priorizando clareza, organização e entendimento do fluxo de testes antes de avançar para estruturas mais complexas.

Autor

Gustavo Alves Moreno

Em transição de carreira para a área de Qualidade de Software, com foco em testes manuais e automação.


Projeto desenvolvido para fins de estudo e prática em automação de testes de API.

About

Automação de testes de API com Cypress no ServeRest, cobrindo cenários positivos e negativos com validação de schema e dados dinâmicos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors