Projeto de automação de testes funcionais na interface de E-commerce para os seguintes requisitos:
- Cadastro de usuário
- Login
- Adicionar produto ao carrinho
- Finalização de compra
Esses testes foram desenvolvidos em JS com Cypress e Cucumber
- Cypress: Pasta Raiz do projeto
- Integration:
- Arquivos .feature com os cenários de testes
- Steps: Passo-a-passo dos testes de acordo com as features
- Support:
- Elements: Elementos da página
- Pages: Implementações das funções de cada feature
- Integration:
Para a execução dos teste é necessário instalar as ferramentas abaixo:
- Node > Ultima versão LTS - instalação Node
- Cypress > versão 9.7.0
npm install cypress@9.7.0- Cucumber > Ultima versão
npm install cypress-cucumber-preprocessorApós instalação do cucumber, é necessário configurar o cypress para aceitar os arquivos .feature como padrão.
Adicione ao arquivo cypress/plugins/index.js:
const cucumber = require('cypress-cucumber-preprocessor').default
module.exports = (on, config) => {
on('file:preprocessor', cucumber())
}Por fim, adicione no arquivo cypress.json:
{
"testFiles": "**/*.feature"
}Para realizar a execução dos testes, basta roda o comando abaixo:
npx cypress run
Os resultados serão apresentados no terminal ao fim da execução e um vídeo será disponibilidado para maiores detalhes.
No ultimo teste, finalização da compra, eu não consegui fazer funcionar porque durante a execução do cypress a sessão logada no site era perdida, então sempre ficava um carrinho vazio. Não consegui contornar a situação para obter um resultado positivo.

O ideal para identificação dos elementos da página seria utilização de ids de testes, porém muitos elementos não haviam ids que não fossem dinâmicos.
Além disso, o site muitas vezes apresentou uma tela de espera de em média 4 minutos, causando timeout nos testes e dificultando a navegação.
