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;
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 abao
herramienta 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
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
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
Cartero
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.
Runscope
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
Swagger Diff
Conclusión
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.
0 Comentarios
Dejanos tu comentario para seguir mejorando!