GUÍA RÁPIDA: Tu primer test de API con Karate y AS400

📌 1. ¿Por qué probar APIs si mi Core está en AS400?

Muchos piensan que para probar un AS400 hay que lidiar obligatoriamente con la “pantalla verde”. Sin embargo, la arquitectura moderna dicta que las empresas coloquen una capa de Servicios Web (REST o SOAP) frente al AS400 para que otros sistemas puedan hablar con él.

Automatizar las pruebas en esta capa de API con Karate es la forma más rápida, estable y económica de garantizar que las transacciones en tu Core funcionen como deben.


🔑 2. Lo que necesitas para empezar

Para replicar este ejemplo en tu máquina, asegúrate de tener:

  • Java JDK (Versión 11 o superior).
  • Un editor de código (VS Code o IntelliJ son excelentes opciones).
  • Karate Framework configurado en tu proyecto (puedes usar Maven o simplemente el archivo karate.jar ejecutable).

🔍 3. El Escenario de Prueba

Imagina que trabajas en un banco o una empresa de logística. Tienen una API que sirve como “puente” (bridge) hacia el AS400.

Tu misión es validar que, al consultar un cliente específico, la API vaya al AS400, busque en la librería correspondiente y devuelva los datos correctos del usuario.


🛠️ 4. Manos a la obra: El Código

Crea un archivo llamado consultar_cliente_as400.feature y pega el siguiente código. Es un ejemplo 100% funcional que puedes adaptar con las URLs de tu empresa:

Gherkin

Feature: Validación de consulta de clientes en Core AS400

Background:
  # Definimos la URL de la API que conecta con el AS400
  * url 'https://api-gateway.tuempresa.com'
  * header Accept = 'application/json'

Scenario: Consultar un cliente activo en el sistema legado
  # 1. Definimos la ruta específica y el ID del cliente a buscar
  Given path '/api/v1/core-as400/clientes/881047'
  
  # 2. Ejecutamos la petición GET
  When method get
  
  # 3. Validamos que el servidor responda con éxito (HTTP 200)
  Then status 200
  
  # 4. Validamos que los datos devueltos por el AS400 sean los correctos
  And match response == { id: '881047', nombre: 'Juan Perez', estado: 'ACTIVO', zona: 'NORTE' }
  
  # 5. Validación avanzada: El AS400 suele devolver códigos específicos
  # Validamos que el código de respuesta interno del AS400 sea exitoso
  And match response.codigoRespuestaAs400 == '00'

🚀 5. El “Súper Poder”: Validación Cruzada con la Base de Datos (Db2)

A veces, no basta con lo que la API responde; necesitas verificar que el AS400 realmente guardó o leyó los datos de la tabla física en su base de datos Db2.

Karate te permite mezclar código Java para hacer esto. Mira cómo quedaría un escenario donde consultas la API y luego le preguntas directamente a la base de datos del AS400 si el registro está ahí:

Gherkin

Scenario: Validación cruzada entre API y Base de Datos AS400
  # Parte A: Consultamos la API
  Given path '/api/v1/core-as400/clientes/881047'
  When method get
  Then status 200
  
  # Parte B: Validamos directo en la DB2 del AS400 usando una función Java
  * def DbUtils = Java.type('com.tuempresa.utils.DbAs400Helper')
  * def query = "SELECT ESTADO FROM LIBRERIA_PROD.TABLA_CLIENTES WHERE ID = '881047'"
  
  # Ejecutamos la query directamente en el AS400
  * def resultadoDb = DbUtils.ejecutarQuery(query)
  
  # Comparamos que lo que dio la API sea igual a lo que está en la base de datos física
  And match response.estado == resultadoDb.ESTADO

Aprende mas sobre Karate Framework

JEscorcia
JEscorcia