Search
  • en
  • es
  • en
    Search
    Open menu Open menu

    Karate Framework: Testeo de APIs de Impacto

    Introducción

    ecientemente 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 TestingBoundary 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 😉

      Usando consola JS para testear mejor

    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