Introducción

Postman acelera el desarrollo y las pruebas evaluando las API a través de “Colecciones”. Estas colecciones pueden configurarse para pruebas automatizadas, incluida la generación automática de pruebas de integración. Esto garantiza que nuestro servicio permanezca intacto cuando se realicen nuevos cambios durante el desarrollo.

En este ejemplo, mostraremos una forma sencilla de crear pruebas de integración utilizando PostBot AI, una herramienta de Postman que utiliza ChatGPT para generar pruebas automáticamente. Utilizaremos FastAPI, un framework web de alto rendimiento para construir APIs con Python, para crear una API Pokemon básica con operaciones CRUD. A continuación, realizaremos pruebas con PostBot AI para comprobar si futuros cambios podrían alterar nuestro flujo de datos.

Definición de puntos finales

Configuraremos rutas para gestionar las operaciones CRUD de la API Pokemon, siguiendo esta estructura:

  • Crea Pokemon:
Method: POST
Path: /pokemons/
Payload: { "name": <string>, "type": <string>, "abilities": [ <string>, …, <string> ] }
Response: { "name": <string>, "type": <string>, "abilities": [ <string>, …, <string> ] }
Status Code: 201
  • Consigue Pokemon:
Method: GET
Path: /pokemons/{name}/
Payload: None
Response: { "name": <string>, "type": <string>, "abilities": [ <string>, …, <string> ] }
Status Code: 200
  • Consigue todos los Pokemon:
Method: GET
Path: /pokemons/{name}/
Payload: None
Response: { "name": <string>, "type": <string>, "abilities": [ <string>, …, <string> ] }
Status Code: 200
  • Actualizar Pokemon:
Method: PATCH
Path: /pokemons/{name}/
Payload: { "type": <string>, "abilities": [ <string>, …, <string> ] }
Response: { "name": <string>, "type": <string>, "abilities": [ <string>, …, <string> ] }
Status Code: 200
  • Borrar Pokemon:
Method: DELETE
Path: /pokemons/{name}/
Payload: None
Response: None
Status Code: 204

Configuración del proyecto

Comenzaremos instalando FastAPI y Uvicorn, para este ejemplo usaremos Python 3.10:

pip install fastapi uvicorn

Creación del código

Crea un archivo llamado `main.py`. En este archivo, configuraremos una instancia FastAPI y nuestra “base de datos” en memoria, representada como una lista de variables globales. Después, añadiremos nuestro endpoint inicial para crear un Pokemon.

Estos serían nuestros puntos finales GET:

Ahora vamos a añadir el punto final PATCH:

Y nuestro punto final DELETE:

Este es el aspecto que debería tener nuestro código completo en este punto:

Añadir una colección con Postman.

Añadiremos una nueva colección haciendo clic en el botón “Nueva”.

Y haciendo clic en el botón “Recogida”:

Llamaremos a esta colección “Pokemon”.

Ahora podemos empezar a añadir nuestras solicitudes. Este sería el punto final de Crear Pokemon:

Nuestro punto final GET para un solo Pokemon:

Nuestro punto final GET para recuperar todos los Pokemon:

Nuestro punto final PATCH para actualizar un Pokemon dado:

Y nuestro punto final DELETE para eliminar un Pokemon existente:

Añadir pruebas de integración con PostBot AI.

Podemos auto-generar pruebas usando PostBot AI para acelerar el desarrollo. Empecemos seleccionando nuestra nueva colección y haciendo clic en el botón “PostBot” de la parte inferior:

En la ventana emergente, podemos escribir nuestras instrucciones o hacer clic en la opción sugerida. Hagamos clic en el botón “Generar pruebas”.

Veremos una ventana como ésta:

Haga clic en el botón “Generar pruebas” y empezará la magia:

¡Genial! PostBot autogeneró esas pruebas, y si hacemos clic en el botón “Guardar pruebas” podremos editarlas más tarde. Una vez guardado, si hacemos clic en la pestaña “Pruebas”, veremos nuestras pruebas recién añadidas por endpoint.

Cuestiones a tener en cuenta

Si has seguido este tutorial, puede que hayas notado un error mostrado para la petición DELETE:

A día de hoy, PostBot está todavía en Beta por lo que en algunos casos tiene comportamientos inesperados. En este caso, estamos esperando que se devuelva una respuesta de la solicitud, pero para los códigos de estado 204 no necesitamos ninguna respuesta de vuelta, por lo que nuestra respuesta vacía es correcta pero PostBot falla al generar nuestros scripts cuando no ve una respuesta de vuelta. Arreglémoslo.

Vaya a nuestra solicitud de ELIMINACIÓN y haga clic en la pestaña “Pruebas”:

En el menú Snippets de la derecha, veremos una opción llamada “Código de Estado: El código es 200”. Haz clic en él:

Nuestra prueba base ya está añadida. Ahora sólo tenemos que cambiar el código de estado a 204:

Guarde el cambio, y haga clic de nuevo en el PostBot para generar de nuevo nuestras pruebas:

Esta vez veremos que nuestra prueba se ejecuta correctamente.

Conclusión

La sencillez y el rendimiento de FastAPI la convierten en la opción ideal para crear API. En unos pocos pasos, hemos creado una API Pokemon con operaciones CRUD. La integración de Postman y PostBot AI acelera el proceso de pruebas, garantizando la fiabilidad de su API. A medida que se embarca en su viaje de desarrollo de API, aproveche estas herramientas para agilizar su flujo de trabajo y crear aplicaciones sólidas y escalables.