Estudos voltados para automação de teste Web com o uso do framework Selenide. Os exemplos deste repositório são executados no curso do QA Ninja - Selenide: Automação de ponta a ponta em Java.
Tecnologias utilizadas:
- Java 17
- Maven
- TestNG
- Selenide 6 (inclui Selenium 4)
- Allure TestNG
- SLF4J + Logback
- Docker
- PostgreSQL (banco de dados da aplicação testada)
- Java 17
- Maven 3.8+
- Docker Desktop
- IDE de sua preferência (IntelliJ IDEA recomendado)
1. Clone o repositório:
git clone https://github.com/felurye/java-selenide-test.git
2. Importe o projeto na sua IDE abrindo a pasta raiz do repositório. O pom.xml está na raiz, então a IDE deve reconhecer o projeto Maven automaticamente.
3. Configure o ambiente Docker seguindo o guia em notes/ConfigDocker.md.
Certifique-se de que todos os containers Docker estejam em execução antes de rodar os testes.
Rodar todos os testes:
mvn test
Gerar e abrir o relatório Allure:
mvn allure:serve
Os testes são organizados em três grupos no testng.xml:
| Suite | Descrição |
|---|---|
| Smoke Tests | Verifica se a aplicação está acessível |
| Login Tests | Cenários de autenticação |
| Movie Tests | Cadastro e pesquisa de filmes |
java-selenide-test/
├── src/
│ ├── main/
│ │ └── resources/
│ │ ├── config.properties # Configurações de browser, URL e banco
│ │ ├── cover/ # Imagens de capa para testes
│ │ └── sql/ # Scripts SQL para reset do banco
│ └── test/
│ ├── java/
│ │ ├── common/ # BaseTest com setup e teardown
│ │ ├── libs/ # Acesso ao banco de dados
│ │ ├── listeners/ # Listener TestNG para logging
│ │ ├── models/ # Modelos de dados dos testes
│ │ ├── pages/ # Page Objects
│ │ ├── tests/ # Classes de teste
│ │ └── utils/ # Utilitários (paths de recursos)
│ └── resources/
│ ├── testng.xml # Configuração da suite
│ └── logback-test.xml # Configuração de logging
├── notes/
│ └── ConfigDocker.md # Guia de configuração do Docker
├── pom.xml
└── README.md
A aplicação utilizada para a automação de teste é de autoria de Fernando Papito, utilizada no treinamento Selenide: Automação de ponta a ponta em Java.