Skip to content

DiegoJOFernandes/starter-cypress

Repository files navigation

Starter Cypress

Software automation

Cypress Javascript Cucumber Prettier

Configuração

  1. Após clonar este repositório, execute o comando no terminal:
npm i
  1. Para executar os testes em modo headless(oculto):
npm run e2e:headless
  1. Para executar os testes no modo interativo com a interace gráfica do cypress:
npm run e2e
  1. Para executar os testes de API:
npm run api

Estrutura

O projeto de automação desktop possui a seguinte estrutura:

  • fixtures - Armazenamos dados que vão ser utilizados em nossos testes ex.: .json, .yml, .txt, .jgp. Os arquivos de fixture ficam localizados na pasta cypress/fixtures por padrão. mais sobre...
  • e2e - Contém todos os arquivos de teste .feature e os steps do gherkin.
  • common - Aqui podemos adicionar tags com @before e @after para preparar dados antes da execução dos cenários. Também adicionamos steps que são comuns em mais de um cenário de automação para reutilizar código e fazer mais com menos esse é o commons steps.
  • nameFeature - Para padronizar nosso projeto no modelo POM(Page Object Model) e escrever cenários utilizando o gherkin temos que criar uma pasta com o nome da feature que vamos trabalhar e dentro dessa pasta criamos outro arquivo nomeado de steps.js nele vamos gerar os steps a partir do nosso BDD(.feature).
  • .feature - Descrevemos cenários com a sintaxe gherkin, afim de explorar uma funcionalidade e atraves de ações chegar a um resultado esperado.
  • support - Esta pasta contém commands.js. É possível personalizar comandos e chama-los em qualquer linha de código das pages objects e steps do cucumber.
  • pages - Criamos pastas para organizar classes e métodos que vamos utilizar em nossas steps, para interagir com os elementos das WebPages.
  • cypress.config.js - Arquivo de configurações relacionadas ao Cypress, por exemplo: URL base, tempo de limite de execução, configuração de diretórios e etc. O comportamento padrão do Cypress pode ser modificado fornecendo parâmetros de configuração. mais sobre....

Para entender melhor como um projeto de automação cypress é estruturado, consulte a documentação oficial.

challenge K/
    ├──cypress/
    |   ├──api/
    |   |   └──nameApi/
    |   |       └──steps.spec.js
    |   ├──e2e/
    |   |   ├──hooks/
    |   |   |    └──steps.js
    |   |   ├──nameFeature
    |   |   |    └──steps.js
    |   |   └──nameFeature.feature/
    |   ├──fixtures/
    |   └──support/
    |       └──pages/
    |           └──namePageFeature/
    |               └──index.js
    ├──api.config.js
    └──cypress.config.js

Fontes e plugins

Cenários

e2e

Checkout
Usuário verifica produto adicionado ao carrinho na tela de pagamentos

API

Trello Api
Validar chave e valor de list.name