Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Automação de Testes com Selenium + Java

Java Selenium JUnit 5 Maven Status

Projeto de estudo de automação de testes Web E2E com Selenium WebDriver, Java e JUnit 5, construído de forma incremental — dos fundamentos de Java e asserções até cenários de login automatizados e o padrão Page Object Model (POM).

Appium: o suporte a testes mobile está planejado (veja o Roadmap) e ainda não faz parte do código atual.


📋 Sumário


🛠 Tecnologias

Ferramenta Versão Uso
Java (JDK) 17+ Linguagem
Maven 3.9+ Build e gerenciamento de dependências
Selenium WebDriver 4.25.0 Automação do navegador
JUnit Jupiter 5.10.0 Framework de testes e asserções
Google Chrome Última estável Navegador alvo (driver gerenciado pelo Selenium Manager)

📁 Estrutura do projeto

src/test/java
├── base/
│   └── BaseTest.java           # Setup/teardown do WebDriver (@BeforeEach/@AfterEach)
├── pages/
│   └── LoginPage.java          # Page Object da tela de login (locators, ações e esperas)
├── tests/
│   ├── LoginTest.java          # Login com credenciais válidas
│   └── LoginInvalidoTest.java  # Login com credenciais inválidas
└── exercicios/                 # Exercícios de fundamentos (Java + JUnit + Selenium)
    ├── Chrome.java             # Primeira abertura do navegador
    ├── Exemplo.java            # Asserção básica (assertEquals)
    ├── Validacao.java          # Condicional if/else
    ├── ValidacaoIdade.java     # Asserção com assertTrue
    ├── Revisao.java            # Loop + asserções condicionais
    ├── LoopExemplo.java        # Estrutura de repetição (for)
    └── ValidacaoPage.java      # Validação de texto/título
  • tests/ — suíte principal de testes E2E.
  • pages/ — camada Page Object, isolando locators e ações da lógica de teste.
  • exercicios/ — histórico de aprendizado; não fazem parte da suíte principal.

✅ Cenários automatizados

Aplicação alvo: The Internet – Herokuapp (site público para prática de automação).

ID Cenário Dados Resultado esperado Classe
CT-01 Login com credenciais válidas tomsmith / SuperSecretPassword! Mensagem "You logged into a secure area!" tests.LoginTest
CT-02 Login com credenciais inválidas usuario_errado / senha_errada Mensagem "Your username is invalid!" tests.LoginInvalidoTest

As credenciais acima são públicas e fornecidas pelo próprio site de prática.


⚙️ Pré-requisitos

  • JDK 17+ — java -version
  • Maven 3.9+ — mvn -v
  • Google Chrome instalado

Não é necessário baixar o ChromeDriver: a partir do Selenium 4.6, o Selenium Manager resolve o driver automaticamente.


▶️ Como executar

# Clonar o repositório
git clone https://github.com/Nicolas-nsr/Automacao_Selenium-Appium-Java.git
cd Automacao_Selenium-Appium-Java

# Executar todos os testes
mvn clean test

# Executar apenas uma classe
mvn test -Dtest=LoginTest

# Executar em modo headless (sem abrir janela)
mvn test -Dheadless=true

# Executar apenas a suíte principal (pacote tests)
mvn test -Dtest="tests.*Test"

Pela IDE (Eclipse/IntelliJ): importe como projeto Maven, clique com o botão direito na classe de teste e escolha Run As → JUnit Test.


📊 Relatórios

Após mvn test, os resultados do Maven Surefire ficam em:

target/surefire-reports/

Para gerar um relatório HTML:

mvn surefire-report:report
# saída: target/site/surefire-report.html

🧭 Boas práticas aplicadas

  • Page Object Model — locators e ações da tela de login centralizados em LoginPage.
  • Classe base de testes — BaseTest cria e encerra o driver, garantindo quit() mesmo em falha.
  • Esperas explícitas (WebDriverWait) em vez de buscas diretas.
  • Execução headless configurável via -Dheadless=true.
  • Asserções explícitas com JUnit 5 validando a mensagem de retorno da aplicação.
  • Cenários positivos e negativos para o mesmo fluxo.

🗺 Roadmap

  • Refatorar LoginTest e LoginInvalidoTest para usarem a LoginPage
  • Mover setup/teardown do driver para @BeforeEach / @AfterEach (garante quit() mesmo em falha)
  • Substituir buscas diretas por esperas explícitas (WebDriverWait)
  • Adicionar junit-jupiter-engine e maven-surefire-plugin explicitamente no pom.xml
  • Execução headless
  • Parametrização de navegador (Chrome/Firefox/Edge)
  • Testes data-driven com @ParameterizedTest
  • Relatórios com Allure e captura de screenshot em falhas
  • Pipeline de CI com GitHub Actions
  • Testes mobile com Appium
  • Adicionar .gitignore (remover target/, .settings/, .project, .classpath do versionamento)

👤 Autor

Nicolas Seabra da Rosa — QA Analyst

GitHub

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages