Te va a interesar!

6/recent/ticker-posts

Duelo de herramientas: Postman vs Rest Assured.


Que hay muchas herramientas para hacer nuestro trabajo no lo vamos a negar. Que los recorders, que extensiones para mandar requests a WebServices, que páginas para hacer UI Automation sin necesidad de bajar ningún programa, que Katalon Studio que hace un poco (mucho) de todo...

Por eso es importante comparar las diferentes opciones que tenemos a la hora de hacer nuestro trabajo para, así, tomar la mejor decisión sobre qué nos conviene, qué es un overkill y qué se va a quedar corto el día de mañana cuando necesitemos escalar la solución de Automation debido a que fue un gran éxito.

También es importante resaltar que, aunque no hagamos Automation, hay muchas herramientas que pueden ayudar a la labor de un tester manual. No todo es 100% automation o 100% manual en la vida del tester. Como dice este muchacho Richard Bradshaw en www.automationintesting.com ...Automation está ahí para ayudar a los testers. A veces no es automatizar en su totalidad un proceso, sino ayudar a testing automatizando la parte repetitiva y que no tiene valor agregado en hacerlo de forma manual, para poder después realizar las pruebas con la mente fresca como una lechuga.

Así que hoy voy a hablarles, teniendo en cuenta todo ésto que les dije, sobre dos de las maneras más populares de testear APIs en la actualidad: Postman y Rest Assured.

Qué es Postman?

Postman nació hace ya sus buenos años como una extensión para navegadores. Te daba la posibilidad de hacer requests a APIs con una interfaz amigable que acercaba este tipo de testing a los testers menos técnicos. La popularidad fue tal que terminó creciendo en lo que es hoy en día: Una aplicación standalone con más funcionalidades e integraciones para trabajar con los nombres grandes de la industria. 

Podemos, de manera muy sencilla, agarrar un endpoint, elegir qué tipo de consulta le vamos a enviar, el body, unas variables por aquí y por allá, tocar el botón y recibir la respuesta del servidor. Todo esto de forma intuitiva y relajada para usuarios, como les decía antes, sin mucho background técnico. Entonces, cuando estás en tus tareas de Tester Manual, considero que Postman es una herramienta indispensable para hacer esos Tests de Integración que hasta ahora solo creías posibles de realizar para los muchachos de Automation. Bastante interesante, no?

Como todo lo bueno, existe lo no tan bueno. Postman fue consciente de su creciente popularidad y decidió subirse al tren del SAAS. Si, hay un modelo de suscripción en el que hay que gatillar si queremos tener toda la funcionalidad que nos ofrece Postman. No es tan grave, sobre todo para el escenario que les cuento de un Tester Manual usándolo como soporte de sus tareas. Con la versión gratis vamos a poder realizar hasta 1000 Requests por mes. Unas 40 y monedas llamadas por día al mes no suena mal para el caso del que les hablaba.
Si quieren más, van a tener una suscripción de 8 USD para el siguiente tier, Postman PRO y 18 USD para el Enterprise. El pro nos ofrece 100.000 llamadas por mes, mientras que el Enterprise nos da 1 millón...osea, vamos a poder tirar requests al techo. También hay features de colaboración y mejor soporte para las versiones pagas.

Ahora...yo actualmente realizo 500 requests diarias con un solo set de automation que tengo hecho para un cliente. Imaginen que no me sería de mucha utilidad la versión gratis. Otra cosa es que, al ser un producto empaquetado y hecho para su disfrute, la personalización de reportes o cosas que necesitemos cambiar sobre su ejecución no van a ser algo posible. Vamos a tener lo que nos ofrece y listo. La limitación técnica está ahí. Por lo que si tenés casos complejos en los que lo que ofrece Postman se queda corto, es momento de mirar para otro lado.

Afortunadamente es una herramienta muy completa que va a ofrecer lo necesario al 80% de los testers. No tanto así para un equipo de Automation que tiene que lidiar con otras problemáticas que requieran arremangarse y meterse a hacer ingeniería para sacar andando un caso complejo que se quiere probar.

Qué es Rest Assured?

Rest Assured es una librería para Java (su hermanito CSharpiano es RestSharp, pero es menos bonito de usar) para realizar llamadas y hacer lo que tengamos que hacer con las respuestas recibidas. Es, yo diría, el estándar hoy por hoy para automatizar WebServices en el mundo de Automation Testing.

Siendo Java, van a contar con toda la versatilidad que necesiten para validar prácticamente cualquier cosa en cualquier contexto. Pero...eso si, van a tener que hacer todo a pulmón. El reporte, configurar lo que haya que configurar, cómo manejar la respuesta, cómo setear los requests...pero es justamente lo que hace que Rest Assured sea la solución definitiva para proyectos grandes, a largo plazo y que tengan una complejidad moderada a alta.
Además, no vamos a tener que pagar por nada, afortunadamente. También, al ser la norma para Automation de WebServices (pueden hacer tanto REST como SOAP!), la comunidad es enorme y encuentran muchísima documentación, información y preguntar algo generalmente lleva a una respuesta pronta en StackOverflow y el resto de las comunidades. 

Se complementa muy bien con Cucumber, aunque no lo necesita (cuenta con un DSL muy Gherkin para hacer los tests ya de por si), nos permite manejar todo lo que sea certificados, Keystores, Truststores, OAuth, autenticación básica, llamadas a dBs y todo lo que se les ocurra. Para que se den una idea, en el cliente actual creé un template con Rest Assured para todo lo que es APIs y viene siendo usado tanto para testing normal de REST Services, como para un caso con SOAP, comunicaciones con la API de Confluence, Jenkins y mucho más. La versatilidad de esta librería es absoluta. 

Casualmente hoy pasé toda la lógica que se estaba haciendo con la librería de InfluxDB a lo mismo pero hecho con Rest Assured. Adivinen qué? El template se pudo escalar a todas las necesidades para los diversos proyectos. De nuevo, uno tiene que configurar todo y eso requiere más conocimiento, pero una vez que sabés cómo usarlo, no hay motivo para no hacerlo. 

Conclusión: Una herramienta para resolver un problema. 

Bueno, llegó el momento de concluir en algo, sino para qué tanta comparativa, no? Primero y principal diría que, si no sos un Test Engineer, es decir...si no tenés conocimientos de Automation y realizás tareas diarias que involucran (o podrían involucrar) integration testing de WebServices, Postman es tu mejor opción entre estas dos. 

Por otro lado, si tenés conocimientos de programación o estás en un proyecto que es grande y complejo, vas a necesitar una herramienta más personalizable. Postman te va a dejar a medio camino y en el largo término no vas a poder responder a todos los cambios y necesidades que se te puedan plantear. En ese caso la mejor opción es Rest Assured. 

Y ustedes? Qué opinan? Han usado ambas y opinan diferente? Los leo!

Publicar un comentario

0 Comentarios