Skip to content

luismena2020/Severest-BackEnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QA Automation Backend Challenge - ServeRest API con Karate DSL

Descripción

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.


Tecnologías Utilizadas

  • Java 17
  • Maven 3.9+
  • Karate DSL 1.5.1
  • JUnit 5

Requisitos Previos

Verificar las versiones instaladas:

java -version
mvn -version

Versiones recomendadas:

Java 17
Apache Maven 3.9+

Instalación

Clonar el repositorio

git clone https://github.com/usuario/karate-serverest-api.git

Ingresar al proyecto

cd karate-serverest-api

Descargar dependencias

mvn clean install

Estructura del Proyecto

karate-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

Configuración

La URL base se configura en:

function fn() {
    return {
        baseUrl: 'https://serverest.dev'
    };
}

Ejecución de Pruebas

Ejecutar todas las pruebas

mvn test

Ejecutar una feature específica

mvn test -Dkarate.options="classpath:features/usuarios/getUsuarios.feature"

Ejecutar por tags

@smoke
Scenario: Obtener usuarios
mvn test -Dkarate.options="--tags @smoke"

Casos de Prueba Implementados

GET /usuarios

Positivos

  • Obtener lista de usuarios
  • Validar estructura de respuesta
  • Validar cantidad de usuarios

POST /usuarios

Positivos

  • Crear usuario con datos válidos

Negativos

  • Crear usuario con email duplicado
  • Validar campos obligatorios

GET /usuarios/{id}

Positivos

  • Buscar usuario existente

Negativos

  • Buscar usuario inexistente

PUT /usuarios/{id}

Positivos

  • Actualizar usuario existente

Negativos

  • Actualizar usuario inexistente
  • Validar campos obligatorios

DELETE /usuarios/{id}

Positivos

  • Eliminar usuario existente

Negativos

  • Eliminar usuario inexistente

Validación de Esquemas

Los contratos JSON se centralizan en:

helpers/schemas.js

Ejemplo:

var usuarioSchema = {
    nome: '#string',
    email: '#string',
    password: '#string',
    administrador: '#string',
    _id: '#string'
};

Generación de Datos de Prueba

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'
    };
}

Reportes

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

Estrategia de Automatización

Independencia de Pruebas

Cada escenario genera sus propios datos para evitar dependencias entre pruebas.

Reutilización

Se utilizan:

  • Generadores de datos
  • Schemas compartidos
  • Configuración centralizada

Cobertura

La suite cubre:

  • Operaciones CRUD completas
  • Casos positivos
  • Casos negativos
  • Validaciones funcionales
  • Validaciones de contrato

Mantenibilidad

La solución se organiza por funcionalidades y permite escalar fácilmente a nuevos endpoints de ServeRest.


Autor

Nombre: Luis Mena

Fecha: Junio 2026

About

Automatizacion con Karate

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors