Cuando trabajas en un proyecto de gobierno de APIs, da igual que sea con Azure API Management o Google Apigee, es importante la definición de un proceso adecuado de ALM que incluya despliegue y testing. Toda la parte de despliegue dependerá, en cierta medida, del gateway con el que estemos trabajando. Sin embargo, para el proceso de testing podemos utilizar Postman y una serie de herramientas que os contamos en este post.
Facilitar el desarrollo de APIs
Postman es una herramienta para facilitar el desarrollo de APIs permitiendo hacer pruebas de peticiones, documentar las APIs y compartir las colecciones de peticiones para que otros o nuestro TFS pueda hacer uso de ellas.
El objetivo es tener una colección de Postman, con todos los métodos que están expuestos en la API y que necesitas probar haciendo peticiones HTTP, para garantizar que nuestros despliegues son satisfactorios.
Además, para cada una de estas peticiones, vamos a escribir una prueba en la pestaña de Tests que Postman tiene habilitada para estos menesteres.
Este test, escrito en JavaScript, se encargará de validar la petición que realizamos, además de comprobar la respuesta y/o los datos que recibimos en la petición.
Ejecutar los test
Ahora que tenemos todos nuestros métodos en Postman y las pruebas necesarias para poder probar, vamos a utilizar Newman, un compañero CLI para Postman, que es capaz de recorrer una colección de Postman, realizar todas las peticiones y ejecutar los test de forma desatendida.
Automatizar procesos
Ya tenemos nuestros métodos, nuestras pruebas y una herramienta CLI que nos permite hacer las pruebas, ahora toca irnos a TFS para automatizar este proceso con cada despliegue o con cada CheckIn, ya es cuestión de gustos y necesidades.
Como podemos ver en la imagen anterior, necesitaremos una tarea NPM que instale el CLI de Newman (npm install newman -g) y una tarea cmd que ejecuta el Newman que tiene como parámetro la colección de postman.
Newman run "$(build.artifactstagingdirectory)\Tests\ApiDelivered.postman_collection.json" --environment "$(build.artifactstagingdirectory)\Tests\test-dev-environment.postman_environment.json" --reporter-html-export
Conclusión
Las pruebas en un proyecto de APIs son fundamentales, nos garantizan que podemos hacer cambios de versiones, actualizaciones, corrección de bugs o nuevas implementaciones garantizando que la especificación coincide con el método y que cualquier cliente que va a consumir nuestras APIs lo puede hacer sin ningún problema 🙂