Header Ads Widget

Ticker

6/recent/ticker-posts

10 herramientas de integración continua para impulsar el desarrollo de API

 

Herramientas-de-integración-continua-para-estimular-el-desarrollo-api-chris-wood

El desarrollo de software en estos días se trata de iterar rápidamente y lanzar con frecuencia. En los 10 años transcurridos desde que Martin Fowler escribió su artículo original , la integración continua se ha convertido en la piedra angular del proceso de desarrollo de software. Es una parte fundamental del desarrollo ágil (siendo uno de los inquilinos principales de Extreme Programming ) y ha ayudado a generar un cambio organizacional con la creación del enfoque DevOps para el desarrollo de aplicaciones.

Dentro de la comunidad de API, las herramientas de integración continua ( CI ) generalmente se dividen en dos categorías. La primera ola de herramientas vio el papel de las API en CI como uno de los componentes básicos, y los servidores de CI disponibles tienden a reflejar esto. Soluciones como Jenkins , TeamCity , Travis CI y Bamboo proporcionan o consumen API para ayudar a impulsar el proceso de compilación, lo que permite que las compilaciones automatizadas invoquen acciones durante el curso de la ejecución: esta función persiste y aún se está expandiendo.

La segunda categoría de herramientas ayuda a las organizaciones a implementar CI para las API que están creando. Estas herramientas pueden realizar la ejecución de pruebas y la recopilación de métricas asociadas con la ejecución de un proceso de CI, lo que permite a las organizaciones introducir un mayor grado de automatización en su enfoque para probar las API.

En esta publicación, cubriremos la última de las dos categorías y veremos algunos ejemplos de las herramientas disponibles que ayudan a impulsar el desarrollo ágil de API . Si bien es posible crear pruebas para su API utilizando solo un script de shell y cURL, esto requiere tiempo y esfuerzo que puede no estar disponible, por lo que el uso de herramientas creadas con el propósito de probar API puede ser una excelente manera de acelerar sus esfuerzos. En el momento de escribir este artículo, existe un número creciente de soluciones comerciales y de código abierto disponibles que ofrecen una combinación de soluciones locales y basadas en SaaS. Idealmente, estas soluciones implementan algunas de las siguientes características:

  • Fácil integración con servidores de CI mediante complementos o webhooks;
  • Comprensión automática de API mediante la ingestión de especificaciones descriptivas como Swagger , RAML y API Blueprint ;
  • Soporte de políglota para la creación de pruebas, dando a los usuarios la elección del idioma que utilizan para construir sus pruebas de integración;
Tenga en cuenta que esto no pretende ser una revisión de producto, sino una lista de menciones honoríficas . Comente a continuación para proporcionar su propia vista de las herramientas mencionadas (¡o para hacer referencia a las herramientas que nos hemos perdido!)

Abao

Abao es un módulo de Node.js que permite a los desarrolladores probar la descripción de su API RAML contra una instancia de backend de su API. Para ejecutar pruebas, un desarrollador simplemente ejecuta la abaoherramienta de línea de comandos, pasando el archivo RAML y el punto final de la API como parámetros. Abao tampoco proporciona la integración de servidor de CI de la caja, pero no sería difícil realizar un script para su ejecución a partir de una definición de trabajo de construcción.

DHC

DHC es una herramienta ofrecida por Restlet que permite a los desarrolladores crear un conjunto de pruebas funcionales y unitarias para su propia API o la de un tercero. Incluye soporte para seguridad, autenticación e hipermedia . También incluye la capacidad de realizar pruebas basadas en escenarios, y cada escenario permite probar varias características de una API.

En términos de integración de servidor de CI, Restlet ofrece un complemento para Jenkins y también un complemento de Maven que se puede incorporar a otras soluciones, lo que permite a los desarrolladores incorporar sus pruebas en el proceso de compilación.

Dredd, por Apiary

Dredd

En 2015, Apiary introdujo funciones de integración continua en su plataforma de desarrollo, lo que permite a los desarrolladores probar de forma continua y automática sus API con definiciones de prueba generadas a partir de la descripción de su API Blueprint. Esta funcionalidad se implementa con Dredd , una " herramienta de línea de comandos independiente del lenguaje para validar la documentación de API escrita en API Blueprint ". Los desarrolladores usan Dredd para ejecutar sus pruebas, con los resultados publicados en la consola de desarrollo de Apiary.

Obviamente, el uso de Apiary y / o Dredd para la integración continua requiere el uso de API Blueprint para describir la API. Apiary tampoco proporciona integración de servidor CI lista para usar, pero de nuevo, no sería difícil lograr la ejecución de un script de Dredd a partir de una definición de trabajo de compilación.

APIMÁTICO

apimatic-logo

APIMATIC es una solución que permite a los desarrolladores generar automáticamente SDK a partir de descripciones de API, que se pueden importar desde descripciones de API Blueprint, Swagger y RAML existentes . APIMATIC proporciona la funcionalidad para iniciar el proceso de generación de código desde CI, proporcionando una API que se puede llamar desde una definición de trabajo de compilación, lo que permite que el SDK compilado siga el paso con el estado de la API automáticamente.

Vea nuestra publicación sobre el uso del transformador de API de APIMATIC para convertir entre formatos de descripción de API populares

Chakram

Chakram es un marco de prueba de API construido sobre Node.js y Mocha . Implementa un estilo de prueba de desarrollo impulsado por el comportamiento (aunque no usa definiciones de prueba al estilo Gherkin ). Chakram no proporciona integración de servidor CI de la caja, pero al igual que los otros ejemplos de secuencias de comandos, su ejecución desde una definición de trabajo de compilación no sería difícil.

Frisby.js

frisbyjs-feature

Frisby.js es un módulo de Node.js para probar API, lo que permite a los desarrolladores crear pruebas en JavaScript. Si bien Frisby no tiene integración incorporada con servidores CI, nuevamente se puede llamar desde una definición de trabajo de compilación basada en script utilizando su interfaz de línea de comandos. Una característica notable que implementa Frisby es la capacidad de generar informes de prueba en formato JUnit, compatible con varios servidores de CI, incluidos Jenkins y Bamboo, lo que facilita la visualización y la comprensión de los resultados de las pruebas.

Cartero

cartero-logo

Postman es un cliente de prueba de API bien conocido y popular, con soporte para importar descripciones de API en formatos RAML, Swagger y WADL . Los desarrolladores pueden crear pruebas utilizando JavaScript que se pueden agrupar en "colecciones" para ejecutar conjuntos de pruebas automatizados.

Postman viene acompañado de su cliente de línea de comandos Newman que se puede incorporar en una definición de trabajo de compilación basada en script en la mayoría de los servidores de CI. Postman proporciona un tutorial para implementar esto con Jenkins en su blog , donde utilizan la capacidad de scripting incorporada para llamar al cliente, pasando la colección Postman requerida como parámetro.

Relacionado:  5 beneficios de usar la virtualización para probar su API

Runscope

logotipo de runescope

Runscope se comercializa a sí misma como una herramienta de prueba y monitoreo de API capaz de ser utilizada durante todo el ciclo de vida de desarrollo de una organización , con capacidades como la generación automática de pruebas a partir de una descripción de Swagger o una colección de Postman.

Runscope parece ser una de las herramientas más maduras en este espacio con varias características para CI. Se puede conectar fácilmente a una compilación a través de un webhook, que se activa en cualquier punto para iniciar las pruebas de API , cuyo alcance incluye la validación de los datos devueltos en una respuesta de API. Runscope también proporciona información detallada sobre cómo configurar el webhook, lo que ellos llaman la "URL de activación" para una serie de servidores y plataformas de CI. También proporcionan una funcionalidad que ayuda a los usuarios a analizar los resultados al proporcionar integración a las plataformas de análisis , lo que permite una digestión detallada de los resultados de las pruebas. Finalmente, Runscope ha desarrollado un complemento para Jenkins que está disponible en el repositorio de complementos de Jenkins y ha proporcionado un tutorial de la implementación.

¡SmartBear listo! Plataforma API

listo api logo

SmartBear Software tiene una larga trayectoria en las pruebas de API de SOAP y REST y probablemente sea más conocido como los proveedores de la versión comercial de la interfaz de usuario de SOAP. SmartBear ha entrado en el mercado de CI con su Ready! Plataforma API , que proporciona a los desarrolladores los medios para crear pruebas API con sus productos TestRunner y TestServer. Al usar los productos SmartBear, las pruebas también se pueden integrar con Jenkins mediante un complemento, que permite que las pruebas se incluyan en la canalización de compilación para una API determinada. Para los servidores de CI que no sean Jenkins, SOAP UI viene con una herramienta de línea de comandos que se puede llamar usando un script de una definición de trabajo de compilación de la manera que ya mencionamos anteriormente.

Tutorial de SmartBear: Creación de un servicio virtual con Ready! API

Swagger Diff

análisis de civis

Swagger Diff es una herramienta de línea de comandos creada por Civis Analytics para probar la compatibilidad con versiones anteriores entre dos versiones de una descripción de Swagger para una API determinada, la idea es conectarla a un servidor CI utilizando una definición de trabajo de compilación basada en un script como se describe anteriormente. Al encontrar un cambio importante, la herramienta devolverá un error, proporcionando detalles de la diferencia que resalta la fuente de la incompatibilidad.

Conclusión

Integración-continua-nordic-apis

Integración continua: desarrollo, prueba, implementación

Esta colección destaca el hecho de que las herramientas de integración continua relacionadas con las API tienen una presencia cada vez mayor en la economía de las API . Con una combinación de soluciones comerciales y de código abierto disponibles, las empresas pueden impulsar su desarrollo de API a través de procesos de integración automatizados y efectivos.

Otra área que no hemos cubierto y que probablemente será cada vez más importante es desde la perspectiva del consumidor de API ; Las descripciones de API disponibles públicamente, ya sea alojadas en el proveedor de API o en un directorio de API, se convertirán en desencadenantes de la integración continua, lo que permitirá que los trabajos de compilación se ejecuten en función de los cambios publicados en el formato, generando nuevas bibliotecas cliente para la API en cuestión.

Los beneficios reales para las organizaciones radican en la práctica de la integración continua. Todos los proveedores de API deben considerar aprovechar la práctica para garantizar que sus esfuerzos para exponer las API tengan la mejor oportunidad de éxito.

Publicar un comentario

0 Comentarios