Te va a interesar!

6/recent/ticker-posts

Maneras de probar tus API!


Todos estamos seguros sobre cómo se prueba una aplicación front end desde la perspectiva del usuario y sobre la interfaz: Un click en un botón debe hacer tal cosa, un dropdown tiene que tener determinados valores, etc. Pero...cómo enfrentamos un la estrategia de testing contra una API?

Explorando los requerimientos en el request.


Lo primero que tenemos que tener presente es qué métodos están permitidos y sobre qué endpoints. Saber si podemos hacer un POST, GET, PUT o DELETE y sobre qué endpoints va a ser la primer pieza del rompecabezas.

También, vamos a necesitar saber qué formato y atributos son requeridos en los requests, especialmente en lo que refiere al cuerpo para POST y PUT. Esto va a abrirnos un sinfín de posibilidades a la hora de crear tests, tanto positivos como negativos.

En esta etapa va a ser fundamental tener una buena comunicación con los desarrolladores para facilitarnos lo que la API expuesta que vamos a estar utilizando puede y no puede hacer. Las reglas del negocio acá van a ser diferentes en el sentido que solemos escribirlas para frontend. Vamos a hablar de cómo el detrás de escenas debería funcionar y qué esperamos de él. Tokens, certificados de cliente y servidor, headers y otros atributos y propiedades van a empezar a aparecer en nuestros tests.

Ya tengo los requerimientos, pero...qué pruebo?


Dependiendo lo obtuvimos de los desarrolladores y de nuestra propia exploración por la API, vamos a ver qué escenarios vamos a probar.

Validar que usuarios pueden acceder según sus privilegios y devuelven un HTTP 200 es un buen comienzo por ejemplo en caso que probemos un login. También probar usuarios bloqueados, deshabilitados, con la contraseña incorrecta y otras combinaciones para ver que obtenemos el código HTTP de turno.

Qué no podemos hacer un POST sin los permisos necesarios, que no podemos hacer un GET y leer cosas que no deberían estar expuestas... todos son escenarios válidos dependiendo qué tengamos en los requerimientos de nuestros tests.

Lo que es mejor, muchos de estos tests tienen mucho más sentido ser realizados al nivel de API en lugar de UI. Sin ir más lejos, el caso de los login. Para qué hacer login a través de la UI si podemos hacer un par de requests y validar la respuesta de manera mucho más consistente frente a cambios en el FE y además, mucho más rápido?

Es importante dejar volar la imaginación y ponerse el sombrero de Tester en esta instancia, para poder llegar a una buena cobertura con los casos que creamos necesarios para informar el estado de la aplicación.


Herramientas...qué uso?


A muchos les resulta abstracto el concepto de probar APIs al principio. Supongo que es debido a que no hay una interfaz visible y eso, al principio, puede parecer desafiante. Lo cierto es que es mucho más sencillo de testear que la UI, debido principalmente a la poca mutabilidad que tiene el funcionamiento de una API.

Pero, donde muchos encuentran una pared difícil de flanquear es en el cómo testear. Acá hay muchas opciones y va a depender del contexto en el que te encuentres.

Para API Testing manual mucha gente se decanta por POSTman, una herramienta sencilla de usar y que nos permite realizar requests y validar responses de manera intuitiva. También vamos a poder usar herramientas en la línea de comando como es el caso de cURL (mi favorito para cosas rápidas).

Si van a automatizar, lo cual recomiendo fervientemente, lo ideal es usar alguna librería para este fin en el lenguaje de su preferencia. Rest-Assured para Java/Groovy, Request para Python, etc.

En mi caso, yo uso una extensión de VSCode que es un caño y de la que les voy a hablar en próximos posts y videos ya que, para mi, reemplaza a POSTman de una patada ninja. Esta herramienta la uso para explorar la API y empezar a crear mapas mentales de qué quiero probar. Esto me permite generar un documento visual en el que veo qué estoy probando, qué me estoy perdiendo, qué tan al divino botón es probar eso que creía importante, etc.


Conclusión.


Como siempre les digo: Hay todo un mundo fuera de la UI. Y es un mundo en el que es muy importante que, como testers, se sientan cómodos y cómodas. Perderle el miedo al testing de APIs es un hito que siempre consideré mucho a la hora de contratar testers o hacer entrevistas.

Y vos... cómo te llevás con las APIs? Las testeás? No terminás de entender de qué van? El curso de Automation para API con Rest-Assured y Java está pronto a ser publicado en Udemy! Te recomiendo chequear la sección Cursos y Tutoriales para ver si ya está disponible!

Publicar un comentario

0 Comentarios