Esta documentação tem como objetivo auxiliar na compreensão da arquitetura do framework de automação.
Seções:
- Instalação e Execução do Projeto
- Sobre Padrão Page Object ("Serviços")
- Arquitetura do projeto e framework de automação
Para realizar nossa automação, usamos o Cypress que é um framework de automação de testes E2E que usa como base o Javascript para a escrita do seu código. Com ele é possível configurar, escrever, rodar e debuggar os testes de forma simples e prática.
Para utilizar o Cypress, é necessário realizar as seguintes instalações:
- NodeJs (versão LTS)
- Visual Studio Code
- Cypress
1. Acessar página https://nodejs.org/en/ e recomenda-se baixar a versão mais estável; 2. Após download, abrir o instalador e clicar nos botões de Next até o final e, por último, nos botões de Install e Finish. Pronto, o NodeJs foi instalado!
1. Acessar https://code.visualstudio.com/download e baixar a versão para Windows;
2. Após download, abrir o instalador e clicar nos botões de Next até o final e, por último, no botão de Finish. O Visual Studio Code abrirá automaticamente e pronto. Instalação concluída!
Após as instalações do NodeJs e do VScode, vamos baixar o projeto do git.
1. Copiar o link para clonar esse repositório;
2. Na pasta de sua preferência, abrir o Prompt de Comando e executar o comando git clone + url copiada;
3. Dentro do VScode, abrir a pasta clonada, acessar a raiz do projeto e executar no terminal o comando npm install;
Isso fará com que, na nossa estrutura de pastas, seja criado um node_modules com várias dependências, incluindo o cypress.
4. A próxima etapa é executar o comando ./node_modules/.bin/cypress open ou npx cypress open para abrir o Cypress.
Pronto!
Abaixo seguem alguns plugins que nos auxiliam na nossa automação. São eles:
- JavaScript (ES6) code snippets
- Commit Message Editor - Formatador de commits
- Markdown Preview Enhanced - Visualizador de arquivos .md
- Prettier - Code formatter - Formatador de código
- Material Icon Theme
- Cucumber (Gherkin) Full Support
- Cypress-cucumber-generator
- Snippets and Syntax Highlight for Gherkin (Cucumber)
- Bracket Pair Colorizer 2
- Add Only
- Cypress Snippets
- ES6 Mocha Snippets
O padrão Page Objects é muito utilizado nos projetos de automação de testes como uma forma de organizar melhor nosso código.
Ele serve para separar responsabilidades, ou seja:
-
Vamos ter um local onde ficará descrita a ação da página que estamos trabalhando.
-
E um outro local para os elementos dessa página.
- integration/specs: Nessa pasta guardaremos nossas specs como features, de acordo com a metodologia BDD.
- integration/step_definitions: Nessa pasta guardaremos os métodos steps associados ao BDD.
- fixtures: Arquivos de massas a serem usadas na automação, sendo estáticas ou dinâmicas.
- Services: Representa abstração de páginas, com métodos e seus elementos.