A menudo se observa que las pruebas de webservices es simplemente la ejecución de una petición que nos tiene que devolver una respuesta exitosa para terminar de validar su correcto funcionamiento, muy lejos de esto podemos enriquecer nuestra calidad de pruebas incorporando muchas cuestiones que no dejan de ser cuestiones funcionales a tener en cuenta. A continuación algunos tips para API Testing.
Tabla de Contenido
Cada campo es un mundo
Cada campo en una petición tiene características que lo puede convertir en único respecto a los demás campos y nosotros como tester tenemos que validarlos, no es lo mismo un campo que permita números a que permita strings, booleanos o timestamp, inclusive en el caso de los campos tipo número uno puede validar si se trata de un número entero, real, positivo, negativo, flotante, etc. Por otra parte el backend de nuestros servicios puede indicar que solo un grupo de este tipo de datos sea el válido, con lo cual podríamos separarlos en 2 tipos de pruebas: pruebas de tipos y pruebas de conjunto de datos. Por Cada campo también tiene la característica de determinar si es un campo obligatorio o si se trata de un campo opcional, cada una de todas estas cuestiones nos ayudan a validar no solo el camino feliz de un caso si no de las posibles aristas de casos rechazados.
Pruebas de orquestación
En una lista de tips para API Testing no podemos nunca olvidarnos de las pruebas de orquestacion. Las pruebas de webservices no solo se limitan a la validación y verificación de cada campo, tampoco a la ejecución individual de cada servicio, los webservices son el corazón del negocio, son el núcleo de una funcionalidad, pero como todo negocio nada se divide en una única pieza y es por eso que para lograr extensibilidad en los negocios de un producto se vea involucrado en muchas oportunidades más de un servicio. Cuando nosotros definimos un escenario de prueba también se lo tiene que concebir desde el punto de vista de los webservices, es decir si hay casos en donde se involucra más de un servicios, tenemos que ejecutar los servicios de la misma manera que haría el cliente, este tipo de casos puede detectar problemas que no se podrían reproducir si se ejecuta los servicios individualmente.
Código de estados y cabeceras
Muchos se concentran en que el cuerpo del mensaje de una respuesta resuelva la funcionalidad encomendada, no está nada mal controlar esa cuestión, pero no es lo único que existe en una respuesta. Con cada mensaje de respuesta también se devuelve un código de estado http de 3 dígitos, donde su primer dígito determina el tipo resultado obtenido:
- 1xx: Respuestas informativas
- 2xx: Peticiones correctas
- 3xx: Redirecciones
- 4xx: Errores del cliente
- 5xx: Errores de servidor
Porque es importante este código? Cada código podrá determinar qué mensaje puede mostrar el aplicativo que consuma estos servicios, de nada sirve que el cuerpo del mensaje muestre la información correcta si el código estado no es el correcto.
Smoke Testing
Las pruebas de humo fueron concebidas para determinar de una manera rápida que lo esencial siga funcionando, la diferencia desde el punto de vista de la regresión es que el smoke tiende a verificar estabilidad de ambientes, es decir ningún error grotesco, como un 500 error en sistemas o un 404 not found, sirve para descartar rápidamente una versión, si dichos controles están ok, damos paso a la regresión correspondiente.
Introducción a la automatización
La automatización de webservices tiene muchas ventajas, automatizar la capa API es un buen punto de partida para comenzar una carrera en automatización, el feedback temprano a otras áreas se consigue en tiempo récord frente a una automatización de front end, por último pero no por ello menos importante el hecho de tener automatizada la capa api nos permite a los tester dedicarnos en la elaboración de nuevos enfoques de pruebas ayudados de nuevas tecnologías como la inteligencia artificial o el aprendizaje profundo y a la posibilidad de abrir nuestras mentes para desarrollar nuestra creatividad como testers.
Espero que te hayan gustado estos tips para API Testing. Nos vemos en el siguiente artículo.