PROJETO MODELO PARA TESTE WEB
Projeto desenvolvido com proposito de ser um modelo base para teste para interface web
PRÉ-REQUISITOS
Requisitos de software e hardware necessários para executar este projeto de automação
- Java 1.8 SDK
- Maven 3.5.*
- Navegador Web (Chrome, Opera, FireFox, Edge ou Safari)
- Intellij IDE
- Plugins do Intellij
- Cumcuber for java
- Lombok
- Ideolog
ESTRUTURA DO PROJETO
Diretório | finalidade |
---|---|
src\main\java\config | Interface com as propriedades dos arquivos de ambiente 'Properties' |
src\main\java\data | Reponsável por ler arquivos yaml file e retonar objeto HashMap com os valores dos campos |
src\main\java\dates | Metodos de suporte para trabalhar com datas |
src\main\java\driver | Responsável por fabricar os drivers para rodar local e remoto para varios navegadores |
src\main\java\pages | Local onde deve ser criado as pages objects para facilitar a manutenção do projeto |
src\main\java\report | Metodo responsável pela criação de screenshot anexada no Report Alure |
src\main\java\support | Metodos de suporte a interação com os elementos web fazendo ações de click e esperas explicitas |
src\main\resources\conf | Arquivos de configuração segregados por ambiente |
src\test\java\hooks | Metodos que executam antes e depois de cada teste (@Before, @After) |
src\test\java\runner | Metodo prinicipal que inicia os testes via cucumber |
src\test\java\steps | Local onde deve ser criado as classes que representam os steps definition do cucumber |
src\test\resources\data | Massa de dados segregada por ambiente, escritos em arquivos yaml |
src\test\resources\features | Funcionalidade e cenários de teste escritos em linguagem DSL (Gherkin language) |
DOWNLOAD DO PROJETO TEMPLATE PARA SUA MÁQUINA LOCAL
Faça o donwload do template no repositório de código para utilizar no seu projeto em especifico, feito isso, fique a vontande para usufruir dos recursos disponíveis e também customizar de acordo com sua necessidade.
FRAMEWORKS UTILIZADOS
Abaixo está a lista de frameworks utilizados nesse projeto
- Jackson - Responsável pela leitura de dados de arquivo yaml file
- Selenium - Responsável pela interação com páginas web
- Allure - report em HTML
- Java Faker - Geracão de dados sintéticos
- Cucumber - Responsável pela especificação executável de cenários
- Cucumber Junit - Responsável por validar as condições de teste
- Lombok - Otimização de classes modelos
- Log4j2 - Responsável pelo Log do projeto
- AeonBits - Responsável por gerenciar as properties
COMANDO PARA EXECUTAR OS TESTES
Com o prompt de comando acesse a pasta do projeto, onde esta localizado o arquivo pom.xml, execute o comando abaixo para rodar os testes automatizados.
mvn clean test
COMANDO PARA GERAR EVIDÊNCIAS EM HTML (ALLURE)
Com o prompt de comando acesse a pasta do projeto, onde esta localizado o arquivo pom.xml, execute o comando abaixo para gerar as evidências em HTML
mvn allure:report
MULTIPLOS COMANDOS
Você também pode mesclar a linha de comando maven com options do cucumber, sendo assim você pode escolher uma determinada tag que se deseja executar do cucumber, podendo escolher também a massa de dados que irá utilizar e juntamente aplicar o linha de comando para gerar o report HTML.
mvn clean test -Dcucumber.options="--tags @dev" -Denv=des allure:report
TESTES CONTINUOS
JENKINS
Executar testes de forma continua vem se tornado fundamental para agregar valor junto a seu time, para isto foi configurado o pipeline para ser aplicado ao jenkins chamando "Jenkinsfile" localizado na raiz do projeto
PRE-REQUISITOS
Configurações necessárias para rodar o pipeline no Jenkins
ETAPAS
- Java e Maven no contexto do jenkins
- Download do Zalenium como infraestrutura
- Execução dos containers do Zalenium
- Execução dos testes
- Geração do Report com Allure
- Encerramento da infraestrutura do Zalenium
- Upload dos arquivos junit.xml e exec_logs.log
EVIDÊNCIAS
Os arquivos com as evidências ficam localizados na pasta target do projeto, esta pasta só é criada depois da primeira execução.
Report HTML: target\site\index.html
Json Cucumber: target\json-cucumber-reports\cucumber.json
Xml Junit: tagert\xml-junit\junit.xml
LOG DE EXECUÇÃO
Os logs de execução gerados pelo Log4j2 ficam alocados na pasta target/log