Este projeto é uma suíte de automação de testes para a aplicação web testautomationpracticee, utilizando Playwright com Java e Cucumber.
Para configurar e executar este projeto, você precisará ter instalado:
- Java JDK (versão 11 ou superior)
- Maven (versão 3.6 ou superior)
- Google Chrome ou outro navegador compatível (para testes não headless)
- Instalar Java JDK:
- Faça o download e instale o Java JDK da página oficial da Oracle ou de outra fonte confiável.
- Configure a variável de ambiente
JAVA_HOME
para apontar para o diretório de instalação do JDK. - Adicione o caminho do JDK ao
PATH
do sistema.
- Instalar Maven:
- Baixe e instale o Maven seguindo as instruções da página oficial do Maven.
- Adicione o diretório
bin
do Maven aoPATH
do sistema.
- Clonar o Repositório do Projeto:
- Utilize o comando
git clone https://github.com/Rodscaloppe/testautomationpracticee
para clonar o repositório do projeto em sua máquina local.
- Utilize o comando
- Instalar Dependências:
- Navegue até o diretório do projeto clonado e execute
mvn install
para instalar todas as dependências necessárias.
- Navegue até o diretório do projeto clonado e execute
Para executar os testes, siga estas etapas:
- Abrir o Terminal ou Prompt de Comando:
- Navegue até o diretório do projeto.
- Executar os Testes:
- Execute o comando
mvn test
para iniciar a execução dos testes. - Os testes automatizados serão executados, e os resultados serão exibidos no terminal.
- Execute o comando
src/main/java
: Contém o código-fonte da suíte de testes.src/test/java
: Contém os arquivos de step definitions do Cucumber e classes auxiliares.src/test/resources
: Contém os arquivos.feature
do Cucumber com os cenários de teste.pom.xml
: Arquivo de configuração do Maven com as dependências e plugins do projeto.
testautomationpractice/
├── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── automationpractice/
│ │ ├── ui/ # Código relacionado a testes de UI
│ │ └── api/ # Código relacionado a testes de API
│ ├── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── automationpractice/
│ │ │ ├── steps/
│ │ │ │ └── CompraSteps.java # Step definitions para Cucumber
│ │ │ ├── ui/
│ │ │ ├── api/
│ │ │ │ └── ApiTest.java # Testes de API com Rest-Assured
│ │ │ └── RunCucumberTest.java # Classe de execução do Cucumber para testes de UI
│ │ └── resources/
│ │ ├── features/ # Arquivos .feature do Cucumber
├── target/
│ └── index.html # Relatório do projeto
└── pom.xml # Arquivo de configuração do Maven
Obs:
- Porque não usar o Padrão Page Object Model (POM)
Na escolha entre usar o Padrão Page Object Model (POM) ou uma estrutura mais simples depende do tamanho e a complexidade do projeto. O POM é mais apropriado para projetos de automação maiores e complexos, e na estrutura simplificada pode ser preferida para projetos menores e mais diretos, oferecendo maior flexibilidade e simplicidade.
- Porque não usei cucumber para automatizar API
Sem o uso pode ser mais eficiente devido à complexidade desnecessária e à sobreposição de funcionalidades. O Cucumber sendo uma ferramenta BDD, adiciona uma camada extra de abstração que pode não ser necessária para testes de API diretos, e manter testes em Gherkin pode ser mais trabalhoso comparado a usar ferramentas específicas para API, como RestAssured, que são mais diretas e menos abstratas.