Testes automatizados de API REST escritos em Java com RestAssured, JUnit 5 e relatórios visuais via Allure.
| Tecnologia | Versão | Função |
|---|---|---|
| Java | 17 | Linguagem principal |
| RestAssured | 5.4.0 | Chamadas HTTP nos testes |
| JUnit 5 | 5.10.2 | Framework de testes |
| Allure Report | 2.27.0 | Relatório visual dos testes |
| Maven | 3.x | Build e gerenciamento de dependências |
JSONPlaceholder — API pública e gratuita. Não requer autenticação nem configuração extra.
| Método | Endpoint | Cenário |
|---|---|---|
| GET | /users |
Lista todos os usuários e valida campos obrigatórios |
| GET | /users |
Valida Content-Type da resposta |
| GET | /users/1 |
Busca usuário por ID existente |
| GET | /users/999 |
Retorna 404 para ID inexistente |
| POST | /users |
Cria novo usuário e retorna 201 com os dados enviados |
| POST | /users |
Valida que a resposta contém um ID gerado |
| PUT | /users/1 |
Atualiza dados do usuário e retorna 200 |
| DELETE | /users/1 |
Deleta usuário existente e retorna 200 |
Os testes seguem o padrão given / when / then, que separa claramente a configuração da requisição, a chamada e a validação da resposta:
given()
.contentType("application/json")
.body(novoUsuario)
.when()
.post("/users")
.then()
.statusCode(201)
.body("name", equalTo("Maria Souza"));A classe BaseTest centraliza a configuração da URL base e dos logs, evitando repetição em cada arquivo de teste.
Pré-requisitos: Java 17+ e Maven 3.x
git clone https://github.com/unludoj/api-testing-qa.git
cd api-testing-qa
mvn testApós rodar os testes, abra o relatório no navegador:
allure serve target/allure-resultsOu gere como arquivo estático:
mvn allure:report
# Relatório gerado em: target/site/allure-maven-plugin/index.htmlO Allure CLI precisa estar instalado para o comando
allure serve.
api-testing-qa/
├── src/
│ └── test/
│ └── java/
│ └── com/qaportfolio/
│ ├── BaseTest.java # Configuração base do RestAssured
│ └── UsersTest.java # Testes do endpoint /users
├── .github/
│ └── workflows/
│ └── ci.yml # Pipeline CI/CD com GitHub Actions
└── pom.xml
O projeto conta com pipeline no GitHub Actions que executa os testes automaticamente a cada push ou pull request na branch main.
O relatório Allure é publicado automaticamente no GitHub Pages após cada execução, mesmo que algum teste falhe.
- Testes para
/postse/comments - Cenários negativos com payloads inválidos
- Parametrização com
@ParameterizedTest - Cenários avançados com WireMock