Protractor - Guia de estilo
Esse projeto exemplifica como deve ser a estrutura de uma automação feita com Protractor de forma com que seja organizado, limpo e de fácil manutenção.
Instalação e execução
Pré-requisitos
Clonando o repositório
Todos os comandos abaixo são feitos no terminal
1 - Faça um clone do repositório e acesse o diretório criado pelo clone:
git clone https://github.com/PauloGoncalvesBH/protractor-style-guide.git && cd protractor-style-guide
2 - Instale as dependências do projeto:
npm ci
O comando npm ci instala as dependências do projeto de forma limpa. Uma diferença importante para o npm install é que remove o diretório node_modules e instala as versões listadas no package.json e package-lock.json.
Executando os testes
Para executar os testes no Chrome, execute:
npm run test:chrome
Para executar no Firefox, execute:
npm run test:firefox
Para executar em ambos os navegadores, execute:
npm test
No início da execução o driver do navegador a ser executado é atualizado utilizando o comando webdriver-manager update
. Verifique a seção scripts no package.json.
Sobre o projeto
Dependências utilizadas
- Protractor: Biblioteca de automação E2E.
- Protractor-helper: Biblioteca de ações/asserções que ajuda a tornar os testes robustos.
- Faker: Gera dados aleatórios para serem utilizados nos testes.
- Jasmine-spec-reporter: Imprime resumo da execução no terminal de acordo com o configurado no arquivo de configuração.
As dependências estão definidas no package.json.
Estrutura de diretórios
protractor-style-guide/
|
├─ e2e/
| ├─ configs/
| ├─ page_objects/
| └─ spec/
|
├─ .gitignore
├─ package.json
└─ package-lock.json
- 📁 e2e/: Dir com todos os arquivos da automação.
- 📁 e2e/configs/: Dir com os arquivos de configuração de quais testes devem ser executados, navegadores, report, etc.
- 📁 e2e/page_objects/: Dir com todos os métodos que interagem com o navegador e elementos mapeados. É consumido pelos arquivos em spec/.
- 📁 e2e/spec/: Dir com todos os casos de testes, consome os page_objects, é executado pelo conf em configs e realiza asserções.
- 📃 .gitignore: Arquivo que define quais diretórios e arquivos devem ser ignorados pelo Git.
- 📃 package.json: Arquivo com informações das dependências do projeto, licença, scripts, autor, etc. Para saber mais clique aqui.
- 📃 package-lock.json: Arquivo gerado automaticamente quando são instaladas as dependências com
npm install
. Instalação feita comnpm ci
não o modifica. Para saber mais clique aqui.
Qualquer apoio que precisar me procure. 🐫