Recientemente he hablado acerca de un framework de testing llamado Cypress. Pues bien, hoy os traigo otro: un framework de testing sencillo pero muy eficaz para API Automation llamado Karate. Para describirlo de la forma más precisa posible, aquí tenéis un fragmento de la fuente oficial:

Karate Framework es la única herramienta de código abierto que combina API test-automation, mocks y testeo de rendimiento en un solo framework. La sintaxis BDD popularizada por Cucumber es language-neutral, y fácil incluso para los no-programadores. Además de potentes aserciones JSON & XML, puedes ejecutar tests en paralelo para mejorar la velocidad – elemento crítico para testeos HTTP API.

Primero, comparemos Karate con Cucumber y REST-Assured.

Karate:

Karate Test

Cucumber: + debemos implementar pasos y POJO:

Cucumber Test

Rest-assured:

Rest Assured

Ventajas de Karate: BDD unificado (comparado con Cucumber + pasos + lógica de negocio + POJOs). Si necesitas complejidad, Karate ofrece soporte para Javascript.

Para las precondiciones, Karate propone usar otras feature files:

Karate Preconditions

Y ya que Karate está escrito en Java, ofrece integración con éste lenguaje.

Ejemplo de llamada a un método Java desde el testeo API, por ejemplo generar una uniqueId:

Generate uniqueId

Otra ventaja de usar Karate es sus capacidades asertivas:

Karate Assertion Capabilities

Validación Schema. Formato amigable de validación de respuestas. Reutilizar Json como variable. Karate markers. DDT. Similar a Cucumber, pero en comparación con este, donde las variables están estáticas en la tabla, con Karate podemos importar un archivo csv con información.

Boundary Testing Boundary Testing

Ejecución en paralelo con Junit5. En este ejemplo ejecutamos todos los tests/feature files con la etiqueta @regression.

Parallel Execution

Reporte. Allure, Cucumber report. Karate propone un test como este:

Karate API Test

Pero también se puede integrar fácilmente reports de Cucumber o Allure 😉

En caso de usar un report de Cucumber obtendremos algo tal que:

Karate Framework API Test

Otras características del Karate Framework: Json Path, debug UI paso a paso, Integración con CI, Build-in ENV switcher, etc.

Resumiendo: Pros y Contras de usar Karate Framework:

pros

contras

Integración con java, JS

No ‘find usage’, auto renombrar

Json, xml native support

TestNG support deprecated

Capacidades asertivas potentes

No tiene Auth Schemes out of the box

Ejecución en paralelo

 

No se requiere saber programar