Skip to content

jordipuigbou/behave-test

Repository files navigation

Test API and Behave

Quality Gate Status Coverage

Descripción

Proyecto para la prueba de desarrollo de una API y testing mediante Behave.

Pruebas

Para facilitar la ejecución de las pruebas se creado un Makefile con los comandos necesarios. Se puede comprobar el catálogo de comandos con:

    make help

Como pre-requisito se necesita tener instalado Docker y Docker Compose.

Tratamiento de datos en API

El código Python que se ha desarrollado para la prueba de la petstore se encuentra en la carpeta apis.

  • En la carpeta de petstore se encuentra el código para hacer las llamadas a la api de petstore con las distintas clases y métodos necesarios.
  • El fichero test.py contiene el código con el flujo de llamadas para probar la primera API.

Para ejecutar el código se puede hacer con los siguientes comandos:

    make build-apis
    make run-apis

Para terminar se puede limpiar el entorno con:

    make clean-apis

Desarrollo de una API (CRUD)

En la carpeta crud se encuentra el código para el desarrollo de una API con las operaciones CRUD. Concretamente, el código está en el fichero backend.py. Para crear la API se ha utilizar Flask y como base de datos se ha utilizado MongoDB.

Para levantar el servicio se ha montado un entorno con Docker Compose que tiene los siguientes servicios:

  • backend: servicio con la API desarrollada en Python.
  • mongo: base de datos MongoDB.
  • mongo-express: interfaz web para la base de datos MongoDB.
  • test: servicio para ejecutar los tests de aceptación de la API con Behave.

Para levantar el entorno se puede hacer con los siguientes comandos:

    make build-crud
    make run-crud

Con docker-compose se expone la api en el puerto 8888 de localhost:

  • http://localhost:8888

Los endpoints asociados son:

  • GET /health
  • GET /products
  • GET /products/{id}
  • POST /products
  • PUT /products/{id}
  • DELETE /products/{id}

Si se quiere ejecutar los tests de aceptación se puede hacer con:

    make run-crud-tests

Finalmente, si se quiere limpiar el entorno se puede hacer con:

    make clean-crud

De esta manera se ejecuta la feature crud.feature que contiene un set básico (happy path) de tests de aceptación de la API.

About

Test project for behave execution over created API

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published