karate framework tutorial
Este tutorial es una introducción a las pruebas de API usando Karate Framework. Conozca la estructura del guión de prueba de Karate y los pasos para crear el primer guión de prueba:
API es un acrónimo de Interfaz de programación de aplicaciones. En términos simples, podemos definirlo como un software intermediario que permite la comunicación entre aplicaciones.
Necesitamos pruebas de API porque:
- Los resultados se publican más rápido, por lo que no hay que esperar más para ver si la API funciona bien.
- Con la respuesta más rápida, la implementación de estas API también se vuelve más rápida, por lo que permite un tiempo de respuesta más rápido.
- La detección temprana de fallas, incluso antes de que se cree la interfaz de usuario de la aplicación, nos permite mitigar riesgos y corregir fallas.
- Entrega a gran escala posible en un período más corto.
Para poder trabajar en API Testing, tenemos varias herramientas disponibles en el mercado como Postman, Mocha y Chai. Estos han demostrado buenos resultados y un uso efectivo para probar API, sin embargo, estos están fuertemente influenciados por el código. Para poder utilizarlos, uno debe ser técnicamente sólido y estar familiarizado con los lenguajes de programación.
Karate Framework resuelve maravillosamente este problema de sus herramientas de software anteriores.
Lo que vas a aprender:
¿Qué es el marco de Karate?
¿Kárate? Hablemos de Karate. ¿Es el de Japón? ¿Qué piensas? Podría ser que el gran Bruce Lee hubiera desarrollado esto en su tiempo libre.
Aunque nos gustaría ahondar en las interesantes raíces del Karate, por ahora, hablemos de la Herramienta de karate que ha sido desarrollado por Peter Thomas , una de las grandes herramientas que vienen al rescate de los probadores de API.
El marco de Karate sigue el estilo Pepino de escribir el programa que sigue el enfoque BDD. La sintaxis es fácil de entender para quienes no son programadores. Y este marco es la única herramienta de prueba de API que ha combinado la automatización de API y las pruebas de rendimiento en una única herramienta independiente.
Proporciona a los usuarios la capacidad de ejecutar los casos de prueba en paralelo y realizar las comprobaciones JSON y XML.
Con esta información, se pueden deducir ciertos puntos clave para comprender mejor la herramienta de Karate en detalle:
- Karate es un marco de prueba BDD en lugar de TDD.
- Está diseñado para que sea fácil para quienes no son programadores. Esta función cambia las reglas del juego, ya que permite un mayor uso y acceso a muchas personas, independientemente de su experiencia técnica o capacidad.
- Utiliza el archivo de características de Cucumber y el lenguaje Gherkins para escribir la prueba, que es muy fácil de entender.
Todas estas características la convierten en una de las herramientas de automatización más favorables disponibles en la actualidad.
Historia del marco de Karate
Creado por ' Peter Thomas ’ en 2017, este software tiene como objetivo hacer que las funciones de prueba estén disponibles para todos. Estaba escrito en Java y la mayoría de la gente esperaba que sus archivos también estuvieran en el mismo idioma, sin embargo, afortunadamente, ese no es el caso.
Más bien, utiliza archivos Gherkins, que es el resultado de su relación con el marco Cucumber. El software de automatización es una extensión de Cucumber, por lo tanto hereda el uso del archivo Gherkins en su funcionamiento. La gran diferencia entre los dos es que Karate no usa Java durante las pruebas, pero Cucumber sí.
Esta es la razón por la que se adapta a los no programadores, ya que la sintaxis de Gherkins es súper legible y completa. Esta es la razón por la que Karate es más adecuado y recomendado para ingresar al mundo de las pruebas API automatizadas.
Las siguientes son algunas de las características del marco de pruebas de Karate:
- Hace uso del lenguaje Gherkins fácil de entender.
- No requiere conocimientos de programación técnica como Java.
- Se basa en los estándares populares de pepino.
- Fácil de crear un marco.
- Las pruebas paralelas son la funcionalidad principal que proporciona el mismo Karate, por lo tanto, no necesitamos depender de Maven, Gradle , etc.
- Interfaz de usuario para depurar la prueba.
- Llamar a un archivo de características desde otro archivo.
- Proporciona soporte para las pruebas de controladores de datos que se construyen internamente, por lo que no es necesario depender de marcos externos.
- Informes de descanso nativos integrados. Además, se puede integrar con Cucumber para obtener mejores informes de IU y más claridad.
- Proporciona soporte interno para cambiar la configuración en diferentes entornos de prueba (QA, Stage, Prod, Pre-Prod).
- Soporte perfecto para la integración de CI / CD que puede resultar útil.
- Capaz de manejar varias llamadas HTTP:
- Soporte Web Socket
- Solicitud SOAP
- HTTP
- Manejo de cookies del navegador
- HTTPS
- Datos en formato HTML
- Solicitud XML
Comparando Karate Vs Descansado
Está seguro : Es una biblioteca basada en Java para probar los servicios REST. Utiliza el lenguaje Java para escribir las líneas de código. Ayuda a probar numerosas categorías de solicitudes, lo que además da como resultado la verificación de diferentes combinaciones de lógica empresarial.
Marco de Karate : Una herramienta basada en pepinos / pepinillos, que se utiliza para realizar pruebas de servicios SOAP y REST.
La siguiente tabla enumera algunas diferencias más destacadas entre Rest-Assured y Karate Framework:
S.No | Base | Marco de Karate | Está seguro |
---|---|---|---|
7 | Reportando | Proporciona informes internos, por lo que no es necesario depender de complementos externos. Incluso podemos integrarlo con el complemento de informes Cucumber para una mejor interfaz de usuario. | Necesita depender de complementos externos como Junit, TestNG |
1 | Idioma | Utiliza una combinación de pepino y pepinillos. | Hace uso del lenguaje Java |
2 | Tamaño del código | Por lo general, la línea de código es menor, ya que sigue una estructura similar a la de Pepino | La línea de código es más, ya que implica el uso del lenguaje Java. |
3 | Conocimientos técnicos requeridos | Los no programadores pueden escribir fácilmente el código de Gherkins | Se requieren conocimientos técnicos para escribir código Java |
4 | Pruebas basadas en datos | Necesita hacer uso de TestNG o equivalente para soportar el mismo | Las etiquetas internas se pueden utilizar para respaldar las pruebas de datos |
5 | ¿Proporciona soporte para llamadas SOAP? | Sí, proporciona | Solo está relacionado con una solicitud de REST |
6 | Prueba paralela | Sí, las pruebas en paralelo también se admiten fácilmente con la generación de informes en paralelo | No en gran medida. Aunque la gente ha intentado hacer esto, la tasa de fracaso es mayor que la tasa de éxito. |
8 | Soporte CSV para datos externos | Sí, de Karate 0.9.0 | No, tengo que usar código Java o biblioteca |
9 | Automatización de la interfaz de usuario web | Sí, desde Karate 0.9.5 la automatización de la interfaz de usuario web es posible | No, no es compatible |
10 | Muestra GET | |_+_| | |_+_| |
Por lo tanto, como lo demuestran las diferencias anteriores, es seguro decir que Karate es una de las cosas más fáciles que cualquiera puede hacer.
Herramientas necesarias para trabajar con Karate Framework
Ahora, dado que tenemos nuestro conocimiento básico sobre Karate Framework en el punto, veamos los procesos y herramientas requeridos para configurar el entorno de Karate.
#1) Eclipse
Eclipse es un entorno de desarrollo integrado utilizado en el campo de la programación informática. Se utiliza principalmente para la programación Java. Como se mencionó anteriormente, Karate está escrito en Java, por lo que tiene más sentido por qué Eclipse es el IDE de referencia para el software de prueba API. Otra razón es que es una herramienta de código abierto, y esta es una razón bastante sólida para optar por esta herramienta.
Nota: Incluso podríamos usar IntelliJ, Visual Studio y otros editores diferentes disponibles en el mercado.
# 2) Maven
Esta es una herramienta de automatización de compilación que se utiliza principalmente para compilar proyectos Java. Es una forma de configurar un entorno de Karate y escribir el código. Para configurar su Eclipse con los requisitos de Maven, puede hacer clic en aquí para la instalación de Maven.
Mientras trabaja en Maven, use las dependencias de Maven que lo ayudarían a admitir Karate Framework.
Las siguientes dependencias se utilizarán con Maven en pom.xml.
|_+_|Nota: Las últimas versiones pueden estar disponibles en el repositorio de Maven.
ejemplos de aplicación cliente-servidor y aplicación basada en web
# 3) Gradle
Gradle es una alternativa a Maven y se puede utilizar con la misma capacidad. Tienen sus similitudes y diferencias, pero pueden usarse igualmente para configurar un entorno para nuestros códigos de Karate.
Es más fácil de usar, flexible y se recomienda su uso cuando nuestra aplicación tiene algunos requisitos de modularización y administración con un montón de complementos. El código de configuración de Gradle se vería así:
|_+_|Nota: Podrías usar MAVEN o GRADLE.
# 4) Configuración del entorno Java en su sistema
Necesita configurar el entorno JDK y JRE para comenzar con los scripts de Karate Framework.
Estructura del guión de la prueba de Karate
Un guión de prueba de Karate es conocido por poseer la extensión '.feature'. Esta propiedad se hereda de Cucumber. La organización de archivos en la convención de Java también está permitida. Puede organizar sus archivos de acuerdo con las convenciones de paquetes de Java.
Sin embargo, las pautas de Maven indican que el almacenamiento de archivos que no sean de Java se realice por separado. Están hechos en un src / test / resources estructura. Y los archivos de Java se guardan bajo src / main / java .
Pero según los creadores de Karate Framework, creen firmemente que mantenemos los archivos Java y no Java uno al lado del otro. Según ellos, es mucho más fácil buscar los archivos * .java y * .feature cuando se mantienen juntos, en lugar de seguir la estructura estándar de Maven.
Esto se puede hacer fácilmente ajustando su pom.xml de la siguiente manera (para Maven):
|_+_|A continuación se muestra el esquema de la estructura general de Karate Framework:
Ahora, dado que este Karate Framework está usando el archivo Runner, que también es necesario en Cucumber para ejecutar los archivos de funciones, la mayor parte de la escritura seguirá los estándares de Cucumber.
Pero, a diferencia de Pepino, los pasos no requieren una definición clara en Karate y que, a su vez, mejoran la flexibilidad y facilidad de las operaciones. No necesitamos agregar el pegamento adicional que tenemos que agregar normalmente cuando seguimos el marco de Pepino.
La clase 'Runner' se llama la mayor parte del tiempo TestRunner.java.
Entonces el archivo TestRunner.java tomará la forma de:
|_+_|Y hablando de la .característica , contiene todos los escenarios de prueba que deben probarse para asegurarse de que la API esté funcionando según los requisitos esperados.
Un archivo * .feature general se parece a lo que se muestra a continuación:
|_+_|Creación del primer guión de prueba de kárate básico
Esta sección lo ayudará a comenzar con la creación de su primer script de prueba, que será útil para convertir API en forma de marco de Karate.
Antes de escribir los scripts de prueba básicos de Karate, instale los siguientes requisitos en su máquina:
- Eclipse IDE
- Maven. Establezca la ruta de Maven adecuada.
- JDK y JRE. Establezca la ruta adecuada.
Echemos un vistazo al enfoque paso a paso:
#1) Crear un nuevo MAVEN Proyecto en Eclipse Editor
- Eclipse abierto
- Haga clic en Archivo. Seleccione Nuevo proyecto.
- Seleccione Proyecto Maven
- Elija la ubicación del espacio de trabajo.
- Seleccione el arquetipo (normalmente elegimos ' Maven-arquetipo-inicio rápido 1.1 ”Para proyectos sencillos de Maven).
- Proporcione el ID de grupo y el ID de artefacto (hemos utilizado los siguientes valores en nuestro ejemplo).
- Identificación del grupo : Karate
- ID de artefacto: KarateTestScriptsSample
- Haga clic en Finalizar para completar la configuración.
#2) Una vez creada, ahora podrá ver la siguiente estructura en la ventana del Explorador de proyectos.
#3) Incluya todas sus dependencias.
Nuestro primer paso, después de la instalación, será incluir todas las dependencias que será necesario para la ejecución. Mantendremos toda la etiqueta en POM.xml (suponiendo que ya conozca el uso de POM.xml).
- Abra POM.xml y copie el siguiente código debajo de la etiqueta de dependencia y guarde el archivo.
Hacer clic aquí por fuente.
#4) Hagamos una lluvia de ideas sobre el escenario, qué vamos a probar en este guión de prueba básica de Karate.
Guión:
Probaremos una API con esto URL.
Camino: api / users / 2
Método: OBTENER
Y necesitamos validar , si la solicitud devuelve un Código de éxito (200) O no.
En términos simples, solo vamos a probar una API de muestra para ver si se está ejecutando con éxito o no.
Nota: Estamos tomando una API de muestra que está disponible para probar. Puede elegir cualquier RUTA o puede consultar su API.
Hacer clic aquí por fuente.
#5) Ahora nuestro siguiente paso sería crear un .característica expediente.
Como se discutió en la sección de introducción, el archivo .feature es la propiedad que se ha heredado de Pepino. En este archivo, escribiremos los escenarios de prueba que deben ejecutarse para realizar las pruebas de API.
- Ir a la carpeta src / test / java en su proyecto.
- Haga clic derecho sobre él y cree un nuevo archivo - userDetails.feature. Luego haga clic en el botón Finalizar.
Ahora verá el siguiente archivo en la carpeta src / test / java
los Icono de color verde se parece al .feature fi le en Pepino que acabamos de crear.
- Una vez que se ha creado el archivo, ahora escribiremos nuestros escenarios de prueba que se discutirán en la siguiente sección.
#6) Ya que tenemos el escenario y el espacio en blanco. característica archivo listo, ahora comencemos con nuestro primer script. Empecemos a codificar
Escriba la siguiente línea de código en el archivo userDetails.feature que creamos en el Paso # 5:
|_+_|Intentemos comprender los componentes que están escritos en el archivo anterior:
- Característica: La palabra clave explica el nombre de la función que estamos probando.
- Fondo: Esta es una sección opcional que se trata como una sección de requisitos previos. Esto se puede usar para definir todo lo que se necesita para probar la API. Contiene ENCABEZADO, URL Y PARAM opciones.
- Guión: Cada archivo de características que verá tendrá al menos una característica (aunque puede dar múltiple escenarios). Es la descripción del caso de prueba.
- Dado: Es el paso que debe ejecutarse antes de realizar cualquier otro paso de prueba. Es una acción obligatoria a realizar.
- Cuando: Especifica la condición que debe cumplirse para realizar el siguiente paso de prueba.
- Entonces: Nos dice qué debería suceder en caso de que la condición mencionada en el Cuando Está satisfecho.
Nota: Todas las palabras clave mencionadas anteriormente son del idioma Gherkins. Ésta es la forma estándar de escribir los scripts de prueba con Cucumber.
Y algunas palabras más utilizadas en el archivo de características son:
- 200: Es el código de estado / respuesta que estamos esperando (haga clic en aquí para la lista de códigos de estado)
- OBTENER: Es el método API como POST, PUT, etc.
Esperamos que esta explicación le haya resultado fácil de entender. Ahora podrá relacionarse con lo que está escrito exactamente en el archivo anterior.
Ahora necesitamos crear un archivo TestRunner.java
Como se explicó en la sección anterior, Cucumber necesita un archivo Runner que sería necesario para ejecutar el .característica archivo que contiene los escenarios de prueba.
- Ir a la carpeta src / test / java en tu proyecto
- Haga clic derecho sobre él y cree un nuevo archivo Java: TestRunner.java
- Una vez creado el archivo, coloque las siguientes líneas de código debajo de él:
- Test Runner es el archivo que ahora se ejecutará para realizar el escenario deseado que se ha escrito en el Paso # 5.
#7) Ahora estamos listos con ambos archivos. TestRunner.Java y userDeatils.feature. La única tarea que nos queda es Correr la secuencia de comandos.
- Vaya al archivo TestRunner.java y haga clic derecho en el archivo como se muestra en la imagen de abajo.
- Elija Ejecutar como -> Prueba de Junit
- Ahora, una vez seleccionado, comenzará a observar que el caso de prueba ha comenzado.
- Espere a que se ejecute el script de prueba. Una vez hecho esto, observará algo como se muestra en la imagen de abajo en su ventana.
las mejores empresas de big data para trabajar
- Finalmente, podemos decir que hemos creado con éxito nuestro primer básico Script de prueba utilizando la Marco de Karate.
#8) Por último, el marco de Karate también proporciona una presentación de informe HTML para la ejecución que se ha realizado.
- Vaya a Carpeta de destino -> surefire-reports-> Aquí verá su informe HTML que puede abrir.
** También le sugerimos que abra el mismo usando el navegador Chrome para una mejor apariencia.
- Se le mostrará el siguiente informe HTML que representa Escenarios y prueba que se ha ejecutado para el escenario mencionado:
Conclusión
En este tutorial, hemos discutido las pruebas de API, las diferentes herramientas de prueba disponibles en el mercado y cómo Karate Framework es una mejor opción en comparación con sus contrapartes.
Seguimos un enfoque paso a paso para crear nuestro primer script de prueba básico. Empezamos creando un básico Proyecto Maven en Eclipse IDE para crear un archivo .feature, que contiene todo el escenario de prueba y un archivo Runner para ejecutar el caso de prueba mencionado en el archivo .feature.
Al final de los múltiples pasos, pudimos ver el informe de ejecución de los resultados de la prueba.
Esperamos que este tutorial haya sido útil para que los principiantes aprendan a crear su primer script de prueba utilizando Karate Framework y a realizar pruebas API. Este enfoque detallado paso a paso es una forma maravillosa de ejecutar varias pruebas en la API.
Lectura recomendada
- Cómo configurar el marco de prueba de Node.js: Tutorial de Node.js
- Tutorial de Parasoft SOAtest: Herramienta de prueba de API sin script
- Tutorial de Mockito: Marco de Mockito para simular en pruebas unitarias
- Tutorial de pruebas de API: una guía completa para principiantes
- Tutorial de TestNG: Introducción al marco de TestNG
- Tutorial de Jest - Pruebas unitarias de JavaScript usando Jest Framework
- Tutorial de pruebas destructivas y no destructivas
- ¿Cómo utilizar Postman para probar diferentes formatos de API?