Este proyecto contiene una suite de pruebas automatizadas para la API de Usuarios de ServeRest utilizando Karate DSL.
Se validan las operaciones CRUD de usuarios:
- GET /usuarios
- POST /usuarios
- GET /usuarios/{_id}
- PUT /usuarios/{_id}
- DELETE /usuarios/{_id}
La automatización incluye validaciones funcionales, validaciones de esquema JSON, manejo de datos dinámicos y escenarios positivos y negativos.
- Java 17
- Maven 3.9+
- Karate DSL 1.5.1
- JUnit 5
Verificar las versiones instaladas:
java -version
mvn -versionVersiones recomendadas:
Java 17
Apache Maven 3.9+
git clone https://github.com/usuario/karate-serverest-api.gitcd karate-serverest-apimvn clean installkarate-serverest-api
│
├── src
│ └── test
│ └── java
│ │
│ ├── features
│ │ └── usuarios
│ │ ├── getUsuarios.feature
│ │ ├── createUsuario.feature
│ │ ├── getUsuarioById.feature
│ │ ├── putUsuario.feature
│ │ └── deleteUsuario.feature
│ │
│ ├── helpers
│ │ ├── usuario-generator.js
│ │ └── schemas.js
│ │
│ ├── runners
│ │ └── TestRunner.java
│ │
│ └── karate-config.js
│
├── pom.xml
├── README.md
└── target
La URL base se configura en:
function fn() {
return {
baseUrl: 'https://serverest.dev'
};
}mvn testmvn test -Dkarate.options="classpath:features/usuarios/getUsuarios.feature"@smoke
Scenario: Obtener usuariosmvn test -Dkarate.options="--tags @smoke"- Obtener lista de usuarios
- Validar estructura de respuesta
- Validar cantidad de usuarios
- Crear usuario con datos válidos
- Crear usuario con email duplicado
- Validar campos obligatorios
- Buscar usuario existente
- Buscar usuario inexistente
- Actualizar usuario existente
- Actualizar usuario inexistente
- Validar campos obligatorios
- Eliminar usuario existente
- Eliminar usuario inexistente
Los contratos JSON se centralizan en:
helpers/schemas.js
Ejemplo:
var usuarioSchema = {
nome: '#string',
email: '#string',
password: '#string',
administrador: '#string',
_id: '#string'
};Se utiliza un generador dinámico para evitar colisiones de email:
function() {
var timestamp = new Date().getTime();
return {
nome: 'Usuario ' + timestamp,
email: 'usuario' + timestamp + '@mail.com',
password: '123456',
administrador: 'true'
};
}Después de ejecutar las pruebas, Karate genera reportes automáticamente.
Ubicación:
target/karate-reports/
Abrir:
target/karate-reports/karate-summary.html
El reporte incluye:
- Casos ejecutados
- Casos exitosos
- Casos fallidos
- Request y Response
- Tiempo de ejecución
- Logs
Cada escenario genera sus propios datos para evitar dependencias entre pruebas.
Se utilizan:
- Generadores de datos
- Schemas compartidos
- Configuración centralizada
La suite cubre:
- Operaciones CRUD completas
- Casos positivos
- Casos negativos
- Validaciones funcionales
- Validaciones de contrato
La solución se organiza por funcionalidades y permite escalar fácilmente a nuevos endpoints de ServeRest.
Nombre: Luis Mena
Fecha: Junio 2026