Software automation
- Após clonar este repositório, execute o comando no terminal:
npm i
- Para executar os testes em modo headless(oculto):
npm run e2e:headless
- Para executar os testes no modo interativo com a interace gráfica do cypress:
npm run e2e
- Para executar os testes de API:
npm run api
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
Checkout |
---|
Usuário verifica produto adicionado ao carrinho na tela de pagamentos |
Trello Api |
---|
Validar chave e valor de list.name |