Proyecto de testing automatizado de APIs usando Karate Framework con BDD (Behavior Driven Development).
- Java 17 o superior
- Maven 3.6.0 o superior
- Git (opcional)
git clone <repository-url>
cd reto-tecnico-apimvn clean installEste comando descargará todas las dependencias necesarias (principalmente Karate Framework 1.3.1).
mvn testmvn test -Dtest=TestRunner# Ejecutar solo tests con @getOrder
mvn test -Dtest=TestRunner#*getOrder*mvn surefire:testEl proyecto contiene los siguientes test scenarios:
Archivo: src/test/java/bdd/petstore/order.feature
- 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
- 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
- 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"
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
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.
La configuración base se realiza en:
- karate-config.js: Define variables globales como
urlBase - logback-test.xml: Configuración de logging
- 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
| 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 |
Para contribuir al proyecto:
- Crea un feature nuevo en
src/test/java/bdd/petstore/ - Asegúrate de seguir el patrón BDD (Gherkin)
- Ejecuta los tests localmente
- Envía un pull request
Para más información sobre Karate Framework:
Versión: 1.0-SNAPSHOT
Última actualización: Febrero 2026