Projeto desenvolvido com proposito de ser um modelo base para teste de API
Requisitos de software e hardware necessários para executar este projeto de automação
- Java 1.8 SDK
- Maven 3.5.*
- Intellij IDE
- Plugins do Intellij
- Cumcuber for java
- Lombok
- Ideolog
Diretório | finalidade |
---|---|
src\main\java\core | Metodos genéricos que apoiam as classes de testes |
src\main\java\data | Metodos do tipo models, para trabalhar com objetos de dados |
src\main\java\request | Metodos do tipo models, que representa objetos a serem serealizado em json para as requisições de apis |
src\main\java\respose | Metodos do tipo models, que representa objetos que recebem a deserializaçao do json de reposta das apis |
src\main\java\services | Local onde deve ser criado os objetos que executam requisições e validações das respotas |
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 cenarios de teste escritos em linguagem DSL (Gherkin language) |
src\test\resources\schema | Local para armazenamento dos arquivos de schema do json utilizados para validação de contrato |
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.
Abaixo está a lista de frameworks utilizados nesse projeto
- Jackson - Responsável pela leitura de dados de arquivo yaml file
- Gson - Responsável pela serializacao e deserializacao de objetos
- Allure - Responsável pelo report em HTML
- Java Faker - Responsável pela geracao de dados sintéticos
- Rest Assured - Responsável pelos interação com a camada HTTP para teste de API (Json, Soap, Xml)
- Cucumber - Responsável pela especificação executável dos cenários
- AssertJ - Especializado em validações com mais tipos e formatos de verificação
- Lombok - Otimizacao de classes modelos
- Log4j - Responsável pelo Log do projeto
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
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
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
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
Configurações necessárias para rodar o pipeline no Jenkins
- Java e Maven no contexto do jenkins
- Execução dos testes
- Geração do Report com Allure
- Upload dos arquivos junit.xml e exec_logs.log
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