Skip to content

Steven9821/reto-tecnico-api-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reto Técnico API - Testing con Karate

Proyecto de testing automatizado de APIs usando Karate Framework con BDD (Behavior Driven Development).

📋 Requisitos Previos

  • Java 17 o superior
  • Maven 3.6.0 o superior
  • Git (opcional)

🔧 Instalación

1. Clonar o descargar el repositorio

git clone <repository-url>
cd reto-tecnico-api

2. Instalar dependencias

mvn clean install

Este comando descargará todas las dependencias necesarias (principalmente Karate Framework 1.3.1).

▶️ Ejecución

Ejecutar todos los tests

mvn test

Ejecutar tests de un feature específico

mvn test -Dtest=TestRunner

Ejecutar tests por tag

# Ejecutar solo tests con @getOrder
mvn test -Dtest=TestRunner#*getOrder*

Ejecutar tests sin compilar

mvn surefire:test

🎯 Acciones / Funcionalidades

El proyecto contiene los siguientes test scenarios:

Feature: Creación del flujo de órdenes

Archivo: src/test/java/bdd/petstore/order.feature

1. Obtención de órdenes (@getOrder)

  • Descripción: Obtiene los detalles de una orden existente
  • Endpoint: GET /store/order/{id}
  • Validaciones:
    • Status 200
    • Verifica que el ID retornado coincida con el solicitado

2. Creación de órdenes (@createOrder)

  • Descripción: Crea una nueva orden en el sistema
  • Endpoint: POST /store/order/
  • Datos: Lee desde src/test/resources/json/order/order.json
  • Validaciones:
    • Status 200
    • Verifica que la respuesta cumpla con el schema definido en src/test/resources/schema/order.json

3. Eliminación de orden (@deleteOrder)

  • Descripción: Elimina una orden existente y verifica que ya no sea accesible
  • Endpoint: DELETE /store/order/{id}
  • Validaciones:
    • Status 200 en la eliminación
    • Verifica que GET posterior retorne 404
    • Valida mensaje de error: "Order not found"

📁 Estructura del Proyecto

reto-tecnico-api/
├── pom.xml                          # Configuración Maven
├── README.md                        # Este archivo
├── src/
│   └── test/
│       ├── java/
│       │   ├── karate-config.js     # Configuración de Karate
│       │   └── bdd/
│       │       ├── ConfigTest.java  # Clase de configuración
│       │       ├── TestRunner.java  # Ejecutor de tests
│       │       └── petstore/
│       │           └── order.feature # Feature file principal
│       └── resources/
│           ├── json/
│           │   └── order/
│           │       └── order.json   # Datos de prueba para órdenes
│           └── schema/
│               └── order.json       # Schema de validación
└── target/                          # Archivos compilados y reportes
    └── karate-reports/              # Reportes de ejecución HTML

📊 Reportes

Después de ejecutar los tests, se generan reportes en:

target/karate-reports/

Puedes abrir el archivo karate-summary.html en un navegador para ver un resumen visual de los resultados.

🔧 Configuración

La configuración base se realiza en:

  • karate-config.js: Define variables globales como urlBase
  • logback-test.xml: Configuración de logging

📝 Notas Importantes

  • Los tests requieren que el API de Petstore esté disponible en la URL configurada
  • Todos los tests utilizan BDD (Gherkin syntax) para mejor legibilidad
  • Los datos de prueba están en formato JSON y pueden ser fácilmente modificados

🚀 Comandos Útiles

Comando Descripción
mvn clean Limpia archivos compilados
mvn compile Compila el código
mvn test Ejecuta todos los tests
mvn clean test Limpia e ejecuta tests
mvn package Empaqueta el proyecto
mvn clean package Limpia y empaqueta

🤝 Contribución

Para contribuir al proyecto:

  1. Crea un feature nuevo en src/test/java/bdd/petstore/
  2. Asegúrate de seguir el patrón BDD (Gherkin)
  3. Ejecuta los tests localmente
  4. Envía un pull request

📞 Soporte

Para más información sobre Karate Framework:


Versión: 1.0-SNAPSHOT
Última actualización: Febrero 2026

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors