Karate: Automatización de pruebas simples

Karate es la única herramienta de código abierto que combina la automatización de pruebas de API, simulaciones, pruebas de rendimiento e incluso la automatización de la interfaz de usuario en un marco único y unificado.

La sintaxis BDD popularizada por Cucumber es un lenguaje neutro y fácil incluso para los no programadores. Se incorporan poderosas afirmaciones JSON y XML, y puede ejecutar pruebas en paralelo para aumentar la velocidad.

La ejecución de pruebas y la generación de informes se sienten como cualquier proyecto Java estándar. Pero también hay un ejecutable independiente para los equipos que no se sienten cómodos con Java. No es necesario compilar código.

Simplemente escriba las pruebas en una sintaxis simple y legible, cuidadosamente diseñada para HTTP, JSON, GraphQL y XML. Y puede combinar la automatización de pruebas de API y UI en el mismo script de prueba.

Caracteristicas de Karate

  • No se requieren conocimientos de Java e incluso los no programadores pueden escribir pruebas
  • Los scripts son de texto sin formato, no requieren ningún paso de compilación o IDE, y los equipos pueden colaborar utilizando Git / SCM estándar.
  • Basado en el popular estándar Cucumber / Gherkin, con soporte IDE y opciones de coloración de sintaxis.
  • La elegante sintaxis DSL admite ‘nativamente’ JSON y XML, incluidas las expresiones JsonPath y XPath.
  • Elimine la necesidad de ‘Java Beans’ o ‘código auxiliar’ para representar cargas útiles y puntos finales HTTP, y reduzca drásticamente las líneas de código necesarias para una prueba.
  • Ideal para probar las respuestas altamente dinámicas de GraphQL API-s debido a la manipulación de texto incorporada de Karate y las capacidades de JsonPath.
  • Las pruebas son súper legibles, ya que los datos del escenario se pueden expresar en línea, en tablas JSON , XML , Cucumber Scenario Outline o un enfoque de generador de carga útil exclusivo de Karate.
  • Exprese los resultados esperados como JSON o XML legibles y bien formados, y afirme en un solo paso que toda la carga útil de la respuesta (sin importar cuán compleja o profundamente anidada sea) es la esperada
  • Capacidades de afirmación integrales , y las fallas informan claramente qué elemento de datos (y ruta) no es el esperado, para una fácil solución de problemas incluso de grandes cargas útiles.
  • Depurador con todas las funciones que puede retroceder e incluso reproducir un paso mientras lo edita : un gran ahorro de tiempo.
  • Alternativa más simple y poderosa al esquema JSON para validar la estructura y el formato de la carga útil , que incluso admite la lógica de validación entre campos / dominios.
  • Los scripts pueden llamar a otros scripts , lo que significa que puede reutilizar y mantener fácilmente la autenticación y ‘configurar’ los flujos de manera eficiente, a través de múltiples pruebas.
  • Motor de JavaScript integrado que le permite crear una biblioteca de funciones reutilizables que se adapten a su entorno u organización específicos.
  • La reutilización de los datos de carga útil y las funciones definidas por el usuario en las pruebas es tan fácil que se convierte en un hábito natural para el desarrollador de pruebas.
  • Soporte incorporado para cambiar la configuración en diferentes entornos (por ejemplo, desarrollo, control de calidad, preproducción)
  • El soporte para pruebas basadas en datos y la posibilidad de etiquetar o agrupar pruebas está integrado, no es necesario depender de un marco externo.
  • Soporte nativo para leer archivos YAML e incluso CSV , y puede usarlos para pruebas basadas en datos.
  • Estructura de proyecto estándar Java / Maven e integración perfecta en canalizaciones de CI / CD, y compatibilidad con JUnit 5.
  • Opción para usar como un ejecutable independiente liviano : conveniente para equipos que no se sienten cómodos con Java.
  • Ejecución en paralelo de subprocesos múltiples , que ahorra mucho tiempo, especialmente para la integración y las pruebas de extremo a extremo.
  • Una función de prueba de informes compatible con pepino para que tenga la opción de uso de terceros (de código abierto)-plugins Maven para incluso informes de mejor aspecto.
  • Los informes incluyen HTTP de solicitud y respuesta registros en línea , lo que hace que la solución de problemas y la depuración más fácil.
  • Invoque fácilmente clases JDK, bibliotecas Java o reutilice el código Java personalizado si es necesario, para una máxima extensibilidad.
  • Sistema de complemento simple para autenticación y administración de encabezados HTTP que manejará cualquier escenario complejo del mundo real.
  • La abstracción de cliente HTTP ‘conectable’ a prueba de futuro es compatible con Apache y Jersey para que pueda elegir qué funciona mejor en su proyecto y no ser bloqueado por conflictos de biblioteca o dependencia.
  • Automatización de la interfaz de usuario web entre navegadores para que pueda probar todas las capas de su aplicación con el mismo marco.
  • Automatización de escritorio multiplataforma (experimental) que se puede combinar con flujos de automatización web si es necesario.
  • Opción para invocar a través de una API de Java, lo que significa que puede mezclar fácilmente Karate en proyectos de Java o suites de automatización de UI heredadas.
  • Ahorre un esfuerzo significativo al reutilizar los conjuntos de pruebas de Karate como pruebas de rendimiento de Gatling que afirman profundamente que las respuestas del servidor son precisas bajo carga.
  • La integración de Gatling puede conectarse a cualquier código Java personalizado, lo que significa que puede realizar pruebas de rendimiento incluso en protocolos que no sean HTTP, como gRPC.
  • Una función de distribución de pruebas de la capacidad de que las obras de API, interfaz de usuario e incluso la carga de pruebas de la infraestructura sin necesidad de ningún “rejilla” complejo.
  • API simuladas o duplicadas de prueba que incluso mantienen el ‘estado’ CRUD en múltiples llamadas, lo que permite TDD para microservicios y contratos impulsados ​​por el consumidor.
  • Soporte asíncrono que le permite integrar sin problemas el manejo de eventos personalizados o escuchar colas de mensajes.
  • Servlet HTTP simulado que le permite probar cualquier servlet de controlador como Spring Boot / MVC o Jersey / JAX-RS, sin tener que arrancar un servidor de aplicaciones, y puede usar sus pruebas de integración HTTP sin cambios.
  • Soporte integral para diferentes tipos de llamadas HTTP:
    • Solicitudes SOAP / XML
    • HTTPS / SSL : sin necesidad de certificados, almacenes de claves o almacenes de confianza
    • Soporte de servidor proxy HTTP
    • Datos de formulario HTML codificados en URL
    • Carga de archivos de varias partes , incluidos multipart/mixedymultipart/related
    • Manejo de cookies similar al navegador
    • Control total sobre encabezados HTTP , rutas y parámetros de consulta
    • Vuelva a intentarlo hasta que la condición
    • Soporte de Websocket

? Comienza con Karate

Relacionados

Deja un comentario

Salir de la versión móvil