{"id":7266,"date":"2021-07-21T16:35:59","date_gmt":"2021-07-21T20:35:59","guid":{"rendered":"http:\/\/cl.abstracta.us\/blog\/?p=7266"},"modified":"2024-02-15T17:24:43","modified_gmt":"2024-02-15T20:24:43","slug":"postman-automatizar-pruebas-api","status":"publish","type":"post","link":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/","title":{"rendered":"Postman: explorando una herramienta para automatizar pruebas de API"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? \u00bfC\u00f3mo utilizarla para realizar API Automation? \u00a1Desc\u00fabrelo en este post!<\/h3>\n\n\n\n<p>Postman es una de esas herramientas que a veces no entendemos bien del todo para qu\u00e9 sirve o c\u00f3mo la podemos aprovechar al m\u00e1ximo. Tiene esas cualidades que le hacen f\u00e1cil de aprender, pero dif\u00edcil de dominar. M\u00e1s a\u00fan considerando que existen varias maneras de utilizarla y las m\u00e1s interesantes no son necesariamente las m\u00e1s directas de ver o aprender.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Usos comunes de Postman<\/strong><\/h2>\n\n\n\n<p><strong>Uno de los usos m\u00e1s tradicionales de Postman es aprovecharlo por su interfaz gr\u00e1fica y la facilidad con la que nos permite analizar diferentes API<\/strong>. Sin olvidar que puede generar c\u00f3digo en variedad de lenguajes bas\u00e1ndose en los resultados (cURL, Python, Java, JavaScript, Go). Pero no es la mejor forma de sacar a relucir todo el potencial que posee.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pruebas con fragmentos Snippets<\/h3>\n\n\n\n<p>El siguiente uso com\u00fan es para realizar pruebas con sus fragmentos (<em>snippets<\/em>) de c\u00f3digo predefinidos, es sencillo y r\u00e1pido pero apenas roza la punta del iceberg de posibilidades que nos ofrece su Sandbox de JavaScript y Node.js. Sin dejar de lado la opci\u00f3n de tener c\u00f3digo antes de mandar al Request, al igual que poder procesar cualquier Response.<\/p>\n\n\n\n<p>Todo ello extendido un nivel m\u00e1s por la presencia de diferentes categor\u00edas de variables que permiten hacer visible todo tipo de dato entre llamadas que se complementan, o forman flujos de trabajo. O sea, una situaci\u00f3n donde la respuesta de una se vuelve los datos de ingreso para la siguiente. Global, Colecci\u00f3n, Carpeta, y de Entorno son m\u00e1s que suficientes para ayudar en casi cualquier situaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lodash, Faker y Chai<\/h3>\n\n\n\n<p>Por si lo anterior fuera poco, encontramos una extensa lista de librer\u00edas y m\u00f3dulos comunes preinstalados y listos para su uso. <strong>Lodash<\/strong>, <strong>Faker<\/strong> y <strong>Chai<\/strong> son apenas los m\u00e1s usados de una docena que est\u00e1n disponibles para extender nuestras ideas y soluciones.<\/p>\n\n\n\n<p>Dicho lo anterior, en este post veremos ejemplos sencillos de lo que se puede hacer, pero con suficiente idea del potencial que hay por detr\u00e1s. Sin embargo, antes habr\u00e1 que repasar algunos de los conceptos b\u00e1sicos de c\u00f3mo funciona Postman.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contexto de Trabajo<\/h2>\n\n\n\n<p>Para el c\u00f3digo presente a lo largo de este art\u00edculo, s\u00f3lo se ha trabajado con Postman en su versi\u00f3n de escritorio. De igual forma, toda la funcionalidad descrita y explicada no requiere suscripci\u00f3n puesto que ninguna de ellas califica como \u201cen la nube\u201d.<\/p>\n\n\n\n<p>Se asume cierto conocimiento de programaci\u00f3n con JavaScript y entendimiento de qu\u00e9 es y c\u00f3mo trabajan los API (<em>endpoints<\/em>, servicios, micro-servicios). Por obvias razones el idioma en el que est\u00e1 el c\u00f3digo es ingl\u00e9s, lo mismo ocurre con todo aquello af\u00edn a la tecnolog\u00eda en uso.<\/p>\n\n\n\n<p>Para los ejemplos, y ver c\u00f3mo crear algo funcional, se utiliza al Star Wars API (swapi.dev) que es de s\u00f3lo lectura, uso p\u00fablico y abierto, y posee estructuras sencillas y f\u00e1cilmente predecibles tanto para sus Request como sus Response.<\/p>\n\n\n\n<p>Lo que vamos a ver aqu\u00ed son casos de uso puntuales que ayudan a reflejar la funcionalidad que es posible por detr\u00e1s. Al final, mucho de lo que se pueda hacer (o no), extender (o no), automatizar, flexibilizar, o hacer m\u00e1s din\u00e1mica, depende en gran medida de los API con los que se est\u00e9 trabajando. Sin olvidar el objetivo del testeo o la raz\u00f3n por la cual se usa Postman.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Estructura JSON<\/h3>\n\n\n\n<p>La siguiente gr\u00e1fica da una buena idea de la estructura JSON que vuelve con el Response de los Request en SWAPI. No es complicada, no posee objetos dif\u00edciles de armar o manipular, esto permite que sea sencillo de generalizar y aprovechar de su hipermedia<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"808\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/estructura-json-postman.jpg\" alt=\"Estructura JSON en Postman\" class=\"wp-image-7268\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/estructura-json-postman.jpg 767w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/estructura-json-postman-285x300.jpg 285w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Breve Vistazo de GUI<\/h2>\n\n\n\n<p>La interfaz de Postman es bien tradicional, tiene cierto aire de editor de texto al igual que ciertas caracter\u00edsticas de IDE. A la izquierda destaca su despliegue de \u00e1rbol con las Colecciones, Carpetas, y Request. En la parte superior derecha se encuentran las diferentes pesta\u00f1as de los llamados a API con los que estamos trabajando.<\/p>\n\n\n\n<p>Dependiendo el tipo de objeto de trabajo el mismo va presentar variedad de opciones con las cuales trabajar, tales como:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>En Colecci\u00f3n<\/strong>: autorizaci\u00f3n, Pre-request Script, Tests, y Variables.<\/li><li><strong>En Carpeta<\/strong>: autorizaci\u00f3n, Pre-Request Script, y Tests.<\/li><li><strong>En Request<\/strong>: t\u00edtulo, verbo y URL, Params, autorizaci\u00f3n, Headers, Body, Pre-request Script, Tests, y Settings.<\/li><li><strong>En la parte inferior<\/strong>: es donde recibimos la respuesta, momento en el cual aparecen Pretty, Raw, Preview, y Visualize (entre otras opciones).<\/li><\/ul>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f9f9f9\">Si bien hay men\u00fas y botones adicionales por todo lado, afortunadamente se pueden minimizar u ocultar hasta requerirlos. Esto permite s\u00f3lo exponer aquellos componentes que estamos utilizando o queremos tener al alcance. <\/p>\n\n\n\n<p>En la Barra de Estado (bien abajo) encontramos otros elementos incluyendo acceso a la Consola y al Runner. El siguiente gr\u00e1fico destaca los diferentes componentes m\u00e1s usados.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman-1024x578.jpg\" alt=\"Componentes m\u00e1s usados en Postman\" class=\"wp-image-7269\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman-1024x578.jpg 1024w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman-300x169.jpg 300w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman-768x433.jpg 768w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman-1536x867.jpg 1536w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/componentes-mas-usados-postman.jpg 1572w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Jerarqu\u00eda<\/h2>\n\n\n\n<p>Al momento de ejecutar un API, Postman sigue una jerarqu\u00eda que ayuda a organizar las ideas al igual que el contexto en el cual va existir nuestro c\u00f3digo. Empezando por los Pre-Script y terminando con la pesta\u00f1a de Test. Iniciando a nivel de la Colecci\u00f3n, luego las Carpetas, para terminar con los Request mismos.<\/p>\n\n\n\n<p>Esa secuencia de ejecuci\u00f3n permite generalizar y modularizar nuestro c\u00f3digo al igual que el alcance que va tener al momento de ser interpretado. Primero todo lo que se encuentra dentro una Colecci\u00f3n, luego todo lo que est\u00e1 a nivel Carpeta(s), para finalmente llegar al Request. El mismo camino lo sigue cuando hay que procesar la Response. C\u00f3mo se puede observar en el siguiente gr\u00e1fico.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"268\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/jerarquia-postman-1024x268.jpg\" alt=\"Niveles de Jerarqu\u00eda en Postman\" class=\"wp-image-7271\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/jerarquia-postman-1024x268.jpg 1024w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/jerarquia-postman-300x79.jpg 300w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/jerarquia-postman-768x201.jpg 768w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/jerarquia-postman.jpg 1085w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>La naturaleza de las jerarqu\u00edas nos permite pensar en utilidades, creaci\u00f3n y preparaci\u00f3n de contexto, luego hablar de pruebas globales, al igual que de visualizaciones gen\u00e9ricas que van a lo particular, seg\u00fan c\u00f3mo sea necesario por el API o el flujo. Casi al terminar la secuencia se puede capturar y mantener aquellos datos requeridos por la siguiente llamada.<\/p>\n\n\n\n<p>No hay que olvidar que <strong>una buena pr\u00e1ctica, en lo que concierne a API, es tener una idea de sus relaciones y representar la misma en la estructura de Colecci\u00f3n y las Carpetas. <\/strong>Esto ayuda a ver con claridad los posibles flujos, al igual que las dependencias, y sirve mucho al momento de usar los Runner para ejecutar iteraciones (por c\u00f3digo, n\u00famero de ciclos, o Data Driven).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3digo Utilitario<\/h2>\n\n\n\n<p>Uno de los inconvenientes que encontramos en Postman es tener que repetir funciones y c\u00f3digo en cada Request que queramos hacer. Lo que no tarda en volverse tedioso y una pesadilla de mantenimiento. Pero, esto se puede evitar aprovechando de ciertas caracter\u00edsticas del Sandbox que permite crear objetos en los niveles superiores de la jerarqu\u00eda cuyos m\u00e9todos (por llamarlos as\u00ed) son visibles para todo lo que est\u00e1 por debajo.<\/p>\n\n\n\n<p>Por ejemplo, el siguiente c\u00f3digo a nivel Colecci\u00f3n lo hace accesible para cualquier Request contenido en la misma o dentro carpetas.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"781\" height=\"558\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/codigo-utilitario-postman.jpg\" alt=\"C\u00f3digo Utilitario en Postman\" class=\"wp-image-7274\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/codigo-utilitario-postman.jpg 781w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/codigo-utilitario-postman-300x214.jpg 300w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/codigo-utilitario-postman-768x549.jpg 768w\" sizes=\"(max-width: 781px) 100vw, 781px\" \/><\/figure><\/div>\n\n\n<p>Para invocar los m\u00e9todos se requiere incluir todo el camino de la referencia, a\u00fan cuando estamos realiz\u00e1ndola desde dentro de un m\u00e9todo interno. Es decir, si quisiera acceder a createPath desde getId igual tendr\u00eda que incluir el nombre del objeto utilities.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"654\" height=\"199\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/imagen_codigo05.jpg\" alt=\"\" class=\"wp-image-7275\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/imagen_codigo05.jpg 654w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/imagen_codigo05-300x91.jpg 300w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/figure><\/div>\n\n\n<p>\u00c9ste tipo de l\u00f3gica nos permite contar con objetos gen\u00e9ricos (o c\u00f3digo reutilizable) para manipular datos, trabajar sobre el JSON espec\u00edfico de nuestros API, flexibilizar a gusto el JSON de la respuesta, o crear Test espec\u00edficos como, por ejemplo, para verificar que la paginaci\u00f3n funciona como debe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Variables de Entorno<\/h2>\n\n\n\n<p>Las diferentes variables que ofrece Postman son un mecanismo excelente para crear o mantener contexto. Sobretodo las de Entorno que podemos cambiar a necesidad y sobre la marcha de una forma sumamente din\u00e1mica. En modo \u201cnube\u201d tambi\u00e9n ayudan a separar lo \u201cpropio\u201d de lo que se puede compartir.<\/p>\n\n\n\n<p>A primera vista pareciera que estas variables s\u00f3lo almacenan datos de tipos b\u00e1sicos, pero no; resulta que pueden guardar cualquier objeto v\u00e1lido en JavaScript. Desde JSON (cadena u objeto), hasta funciones en un arreglo, pasando por listas de registros compuestos o matrices.<\/p>\n\n\n\n<p>Una particularidad a tener en cuenta es que algunas estructuras no se interpretan igual si son manipuladas de forma directa en el editor de variables vs. agregadas\/extra\u00eddas por c\u00f3digo. Por ejemplo, inicializar un arreglo a trav\u00e9s de pm.environment.set(\u201cVARIABLE\u201d, \u201c[]\u201d) logra que trabaje como se desea, no as\u00ed a\u00f1adir un \u201c[]\u201d a \u201cVARIABLE\u201d desde el editor.<\/p>\n\n\n\n<p>Tambi\u00e9n hay que tener precauci\u00f3n al manipular las variables desde los diferentes niveles de la jerarqu\u00eda, puesto que no siempre se comportan seg\u00fan lo esperado. Una buena pr\u00e1ctica, al menos para que su manejo m\u00e1s predecible, es hacerlo desde el Request.<\/p>\n\n\n\n<p>Uno de los usos m\u00e1s interesantes que se puede dar a las variables de Entorno es para lograr el env\u00edo de Request con un BODY generado de manera din\u00e1mica al 100%. Es decir, enviar al API una estructura JSON armada por c\u00f3digo en su totalidad. \u00c9ste mismo truco permite manipular al URL de destino y generarlo a gusto. Ambos casos los veremos m\u00e1s adelante.<\/p>\n\n\n\n<p>Cuando pasamos datos a trav\u00e9s de variables de Entorno conviene recordar la siguiente secuencia de actividades para mantener consistencia. <em>Recuperar<\/em>, obtener la informaci\u00f3n actual para operar sobre ella; <em>Trabajar<\/em>, realizar las acciones pertinentes; y, <em>Almacenar<\/em>, si hemos cambiado algo y queremos mantenerlo para una siguiente llamada o iteraci\u00f3n.<\/p>\n\n\n\n<p>Por ejemplo, el siguiente bloque de c\u00f3digo hace uso del \u00faltimo m\u00e9todo de los utilitarios. Lo que logramos aqu\u00ed es pasar cada elemento de un arreglo de hipermedios (pilots y films) al arreglo de objetos hyperMediaList. Luego almacenamos \u00e9ste \u00faltimo en una variable de Entorno para hacerlo persistente entre llamadas.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"326\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/variables-entorno-postman.jpg\" alt=\"Variables de Entorno en Postman\" class=\"wp-image-7276\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/variables-entorno-postman.jpg 766w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/variables-entorno-postman-300x128.jpg 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Generar el BODY de un Request<\/h2>\n\n\n\n<p>Una de las actualizaciones recientes de Postman permite manipular el JSON del BODY para volverlo un poco m\u00e1s din\u00e1mico. Lo que tiene sus usos, pero puede ser m\u00e1s pr\u00e1ctico aprovechar del \u201ctruco\u201d para generarlo en un 100%.<\/p>\n\n\n\n<p>Mucha de esta capacidad es posible por la forma en que JavaScript maneja objetos, combinada con la presencia de variables que nos permiten pasar informaci\u00f3n entre contextos, y el aprovechar de la jerarqu\u00eda para tener una idea clara de c\u00f3mo se va ejecutar el c\u00f3digo.<\/p>\n\n\n\n<p>El siguiente recuadro muestra una forma muy simple de la idea, misma que se puede expandir a gusto para reflejar pr\u00e1cticamente cualquier estructura JSON que sea requerida por un Request.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"326\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-body-request-postman.jpg\" alt=\"Generar el BODY de un Request en Postman\" class=\"wp-image-7277\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-body-request-postman.jpg 761w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-body-request-postman-300x129.jpg 300w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/figure><\/div>\n\n\n<p>Aqu\u00ed la magia la realiza Postman, queriendo o sin querer, al momento de validar el bloque de BODY, encontrar una variable de Entorno y reemplazarla por el valor asociado. Para el API ejecutado, al mandar el Request, le es indistinto si le llega un JSON hecho a mano, o uno ensamblado en c\u00f3digo.<\/p>\n\n\n\n<p>Gracias a que a JavaScript no le interesa mucho c\u00f3mo est\u00e1 armado el objeto, mientras tenga sentido para su interprete, es posible anidar otros componentes en la estructura del ejemplo anterior al igual que crear arreglos simples o compuestos sin que haya problemas. Probablemente, a lo sumo, retoques a los nombres de atributos en casos extremos.<\/p>\n\n\n\n<p>Esto lo podemos utilizar con resultados geniales cuando queremos armar un flujo flexible entre varios API cuya informaci\u00f3n de respuesta sirve de entrada, en su totalidad o por partes, para el siguiente llamado. Considerando que \u00e9ste es un ejemplo b\u00e1sico de lo que se puede llegar a hacer, la flexibilidad que permite es excelente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Generaci\u00f3n de la URL<\/h2>\n\n\n\n<p>La misma idea anterior se puede utilizar para obtener un URL generado de forma din\u00e1mica antes de invocar al API. El \u00fanico detalle es saber bien c\u00f3mo armar el llamado y qu\u00e9 partes se pueden manipular, o directamente gestionarlo en su totalidad. Es lo que en esencia vemos en el m\u00e9todo createPath presentado antes. Una variante puede ser la que vemos a continuaci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"215\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-url-postman.jpg\" alt=\"Generar URL en Postman\" class=\"wp-image-7278\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-url-postman.jpg 766w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/generar-url-postman-300x84.jpg 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure><\/div>\n\n\n<p>Una interesante y poderosa extensi\u00f3n de \u00e9ste truco es incluir variables dentro el URL din\u00e1mico. Lo que en esencia permite pasar datos en tiempo de ejecuci\u00f3n, de esta forma no tenemos porque saberlos, mientras el c\u00f3digo pueda hacerlo.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"215\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/incluir-variables-url-dinamico-postman.jpg\" alt=\"Incluir variables dentro del URL din\u00e1mico en Postman\" class=\"wp-image-7279\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/incluir-variables-url-dinamico-postman.jpg 764w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/incluir-variables-url-dinamico-postman-300x84.jpg 300w\" sizes=\"(max-width: 764px) 100vw, 764px\" \/><\/figure><\/div>\n\n\n<p>Mientras el flujo de informaci\u00f3n y c\u00f3digo puedan dar un valor apropiado a {{thetrick}} (un n\u00famero entero en este caso), Postman va a reemplazarlo al momento de ejecutar el Request. Lo que permite mantener o pasar valores a lo largo de todo una secuencia de llamadas, sin tener que cambiar las cosas manualmente en cada oportunidad.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Data Driven<\/h2>\n\n\n\n<p>El Data Driven es otra de las funcionalidades de Postman que resultan geniales cuando nuestro c\u00f3digo est\u00e1 pensado para ello. S\u00f3lo funciona con los Runner y es una forma de obtener valores para las variables desde archivos externos (usualmente CSV).<\/p>\n\n\n\n<p>Combinado con composici\u00f3n din\u00e1mica de la carga JSON de un Request y el armado a gusto del URL del API a llamar, es una excelente manera de reutilizar c\u00f3digo y crear pruebas y flujos a trav\u00e9s de archivos, en vez de varios Requests encadenados (lo que se puede tornar complicado r\u00e1pido).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sandbox y sus Librer\u00edas<\/h2>\n\n\n\n<p>Cuando JavaScript est\u00e1ndar no da abasto las librer\u00edas preinstaladas son de mucha ayuda. Muchas tienen usos bien espec\u00edficos pero hay otras m\u00e1s gen\u00e9ricas, por ejemplo, <strong>Lodash<\/strong> que resulta \u00fatil para manipulaciones sofisticadas de ciertas estructuras de datos, o para clonar arreglos y operar sobre ellos sin cambiar al original (esto puede ser necesario porque JavaScript los maneja por referencia).<\/p>\n\n\n\n<p><strong>Chai<\/strong> es la m\u00e1s utilizada al permitirnos realizar los Test con una notaci\u00f3n amigable y casi usando un lenguaje natural. Esto en pro de ser amigable con la idea de desarrollo guiado por el comportamiento (behavior-driven development o BDD). Si nada m\u00e1s, ayuda a enfocar las ideas de lo que se est\u00e1 verificando y luego tener reportes autom\u00e1ticos generados por Postman.<\/p>\n\n\n\n<p>Para obtener datos \u201crealistas\u201d pero \u201cfalsos\u201d nada como el modulo <strong>Faker<\/strong>, aunque requiere de acceder a un tipo especial de variable (vemos un ejemplo en el generador de BODY, presentado anteriormente). La p\u00e1gina oficial da el listado completo de c\u00f3mo obtener desde nombre y apellido a direcciones, colores, y texto <em>lorem ipsum<\/em> en diferentes formatos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Newman Runner<\/h2>\n\n\n\n<p>El Newman Runner es una versi\u00f3n simplificada, y sin interfaz gr\u00e1fica, de Postman que ejecuta sobre instalaciones de Node.js desde la consola. Se le pasa la Colecci\u00f3n con contextos de variables, y\/o archivos Data Driven, para que ejecute todo tal y como lo har\u00eda el entorno con GUI.<\/p>\n\n\n\n<p>Su utilidad viene de permitir ejecuciones por consola y entregar reportes modo texto. Cuando los modelos est\u00e1ndar no bastan acepta reportes personalizados. Todo esto tambi\u00e9n lo hace aplicable para ser parte de una pipeline de CI\/CD.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visualizaci\u00f3n<\/h2>\n\n\n\n<p>Para aprovechar esta opci\u00f3n, sin necesidad de cargar Frameworks ajenos, hay que entender cuatro cosas: 1) estamos usando un <em>Template Literal<\/em> (que puede tener sus trucos para manipular); 2) definimos el formato con HTML est\u00e1ndar; 3) para los estilos es CSS est\u00e1ndar; y, 4) tenemos a disposici\u00f3n casi toda la funcionalidad que ofrece la librer\u00eda <strong>Handlebars.js<\/strong>. A continuaci\u00f3n un ejemplo con los datos de Luke Skywalker.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"835\" height=\"432\" src=\"https:\/\/cl.abstracta.us\/wp-content\/uploads\/2021\/07\/visualizacion-html-css-estandar-postman.jpg\" alt=\"Visualizaci\u00f3n utilizando HTML\/CSS est\u00e1ndar en Postman\" class=\"wp-image-7281\" srcset=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/visualizacion-html-css-estandar-postman.jpg 835w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/visualizacion-html-css-estandar-postman-300x155.jpg 300w, https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/visualizacion-html-css-estandar-postman-768x397.jpg 768w\" sizes=\"(max-width: 835px) 100vw, 835px\" \/><\/figure><\/div>\n\n\n<p><strong>Handlebars<\/strong>, por su lado, trabaja con etiquetas din\u00e1micas que representan atributos del objeto JSON que le es enviado y que podemos preparar a gusto. Similar a la poco utilizada combinaci\u00f3n de plantillas en MS Word que se pueden asociar con MS Excel, u otra fuente de datos. La utilidad en Postman viene de hacer m\u00e1s visible la estructura o contenido de un Response, o darle un procesamiento visual adicional (si da para ello). Muy \u00fatil para presentaciones y demo, o sacar capturas de pantalla para un reporte de defecto.<\/p>\n\n\n\n<p>Vale tener en consideraci\u00f3n que: 1) es posible trabajar a gusto el JSON antes de enviarlo por lo que se le puede agregar estructura, atributos, y datos que ayuden a condicionar lo que se muestra. 2) Podemos generalizar u optimizar con c\u00f3digo la plantilla antes de que sea utilizada e interpretada junto con la Response de un API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Combin\u00e1ndolo Todo<\/h2>\n\n\n\n<p>Un uso extremo de todo lo anterior es aprovechar la generaci\u00f3n din\u00e1mica de BODY m\u00e1s URL, y cualquier manipulaci\u00f3n de un Response, para tener un Framework (entre casi y virtual) donde basta una Colecci\u00f3n, una Carpeta, y un Request para realizar testeo autom\u00e1tico de una secuencia de datos generados\/obtenidos por los API.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Ejercicio<\/strong>: con todo el c\u00f3digo presentado, y algo de l\u00f3gica de apoyo adicional, es posible crear un Request que utilice los hipermedia almacenados en <strong>e_hiperMediaList<\/strong> para generar el URL en cada llamada y aprovechar del valor en <strong>e_listIndex<\/strong> para iterar sobre el contenido de la variable de Entorno.<\/p><\/blockquote>\n\n\n\n<p>Bastar\u00eda extraer de forma gen\u00e9rica los arreglos con hipermedia de cada Response y almacenarlos para poder explorar todo SWAPI. La ejecuci\u00f3n ser\u00eda por Runner, donde limitamos el n\u00famero de llamadas. No olvidar que  hay que agregar c\u00f3digo para controlar no almacenar duplicados.<\/p>\n\n\n\n<p>Si el flujo con el que trabajamos lo permite, el siguiente paso es crear l\u00f3gica en c\u00f3digo para manipular las iteraciones a trav\u00e9s de Data Driven, ejecutando desde un Runner. Lo que puede venir muy bien para tener diferentes tipos de testeo desde los archivos. Al igual que para gestionar los flujos que se considera importantes, dentro de un pipeline de CI\/CD que ejecuta nuestra Colecci\u00f3n con el Newman Runner. Tambi\u00e9n servir\u00eda para inicializar un nuevo ambiente de pruebas, crear miles o decenas de miles de registros (u otro).<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Ejercicio<\/strong>: Con el resultado del ejercicio previo no es mucho cambio el adaptarlo a Data Driven. As\u00ed logramos que las iteraciones y los valores de algunas variables son provistos por un archivo externo, persistente, en vez de ser obtenidos en tiempo de ejecuci\u00f3n.<\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Y&#8230; \u00a1Hay M\u00e1s!<\/h3>\n\n\n\n<p>Todo lo presentado est\u00e1 disponible dentro lo que ahora llaman el \u201cSketch Pad\u201d, que es la versi\u00f3n escritorio y sin conexi\u00f3n a la Nube de Postman. El nuevo nombre que le han dado quiere dejar en claro que no estamos trabajando con la versi\u00f3n m\u00e1s profesional que se denomina \u201cWorkspaces\u201d.<\/p>\n\n\n\n<p>Conectados se hacen disponibles varias funcionalidades extra, como poder compartir los ambientes de trabajo y Colecciones, guardar, al igual que acceder a un sistema de versionamiento, comentario y documentaci\u00f3n. Tambi\u00e9n est\u00e1n los <em>Monitores<\/em> y los <em>Servidores Mock<\/em>. Gratis hasta cierto n\u00famero de participantes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Postman para Automatizar Pruebas de API<\/strong><\/h3>\n\n\n\n<p>Existen numerosas herramientas que permiten trabajar con API, gestionar su proceso de desarrollo, y testear. Hoy en d\u00eda la mayor parte son SaaS y tienen limitantes mientras no se adquiera el servicio o se tenga suscripci\u00f3n. Incluso, no faltan extensiones para diferentes entornos o editores de programaci\u00f3n, pero su funcionalidad es m\u00e1s para analizar Request y Response que otra cosa.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Postman<\/a> es una herramienta completa que ofrece mucha funcionalidad, una buena parte de esta no escondida pero desconocida para la mayor\u00eda de quienes la usan. Lo que es lamentable porque existen muchas cosas que se pueden automatizar y simplificar aprovechando lo presentado en este post.<\/p>\n\n\n\n<p>Nuestra tendencia hacia lenguajes de programaci\u00f3n, Frameworks, y herramientas \u201ccompletas\u201d prefabricadas, hace que obviemos aquellas que est\u00e1n de por medio y que ofrecen otros beneficios y facilidades. <strong>Toda la oferta de Postman la hace ideal tanto para trabajar r\u00e1pido cuando no es necesario ir tan lejos, como para requerir un lenguaje completo o crear un soporte sofisticado muy espec\u00edfico<\/strong>.<\/p>\n\n\n\n<p>Conocer JavaScript ayuda pero no es indispensable. Hoy en d\u00eda basta con tener la idea de lo que se quiere y las opciones expl\u00edcitas de c\u00f3digo se encuentran en Google; con la recomendaci\u00f3n de usar aquellas cuya l\u00f3gica y naturaleza se comprende, para el caso que haya que depurar o repetir funcionalidad (mejorar\/ajustar\/extender). <\/p>\n\n\n\n<p>Obviamente, mucho de lo que puede salir genial depende de la sofisticaci\u00f3n de los API y sus flujos operativos. Tampoco es posible realizar maravillas si hay que mandar JSON simples y recibimos respuestas directas o JSON b\u00e1sicos de un nivel. Poco probable que resulte en algo fant\u00e1stico, pero lo aprendido har\u00e1 que cuando la oportunidad aparezca, lo que creemos en ese caso s\u00ed, ser\u00e1 genial.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-alpha-channel-opacity has-background is-style-wide\" style=\"background-color:#f1f1f1;color:#f1f1f1\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Otros contenidos relacionados<\/h3>\n\n\n\n<p><a href=\"https:\/\/cl.abstracta.us\/blog\/tips-experto-pruebas-apis\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tips para ser un experto en Pruebas APIs<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/cl.abstracta.us\/blog\/automatizar-pruebas-de-software\/\" target=\"_blank\" rel=\"noreferrer noopener\">Automatizar Pruebas de Software: \u00bfcu\u00e1ndo y por qu\u00e9?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.federico-toledo.com\/api-testing-con-postman-y-soapui\/\" target=\"_blank\" rel=\"noreferrer noopener\">API testing con Postman y SoapUI<\/a><\/p>\n\n\n\n<p><!-- Go to www.addthis.com\/dashboard to customize your tools --><script src=\"\/\/s7.addthis.com\/js\/300\/addthis_widget.js#pubid=ra-58d80a50fc4f926d\" type=\"text\/javascript\"><\/script<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve?<br \/>\nConoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.<\/p>\n","protected":false},"author":30,"featured_media":7286,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,57],"tags":[143,3,16],"class_list":["post-7266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatizacion-pruebas","category-herramientas-pruebas","tag-api-testing","tag-automatizacion-pruebas","tag-pruebas-de-software"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Postman: explorando una herramienta para automatizar pruebas de API - Abstracta<\/title>\n<meta name=\"description\" content=\"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Postman: explorando una herramienta para automatizar pruebas de API - Abstracta\" \/>\n<meta property=\"og:description\" content=\"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog de Desarrollo de Software, Testing e Inteligencia Artificial | Abstracta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AbstractaChile\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-21T20:35:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-15T20:24:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/herramienta-postman-automatizacion-pruebas-api-leonardo-antezana.png\" \/>\n\t<meta property=\"og:image:width\" content=\"560\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Leonardo Antezana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AbstractaChile\" \/>\n<meta name=\"twitter:site\" content=\"@AbstractaChile\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leonardo Antezana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\"},\"author\":{\"name\":\"Leonardo Antezana\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/aa9766391607758e6eaad4aa460db0d4\"},\"headline\":\"Postman: explorando una herramienta para automatizar pruebas de API\",\"datePublished\":\"2021-07-21T20:35:59+00:00\",\"dateModified\":\"2024-02-15T20:24:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\"},\"wordCount\":3518,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/#organization\"},\"keywords\":[\"API Testing\",\"Automatizaci\u00f3n de Pruebas\",\"Pruebas de Software\"],\"articleSection\":[\"Automatizaci\u00f3n de Pruebas\",\"Herramientas\"],\"inLanguage\":\"es-CL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\",\"url\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\",\"name\":\"Postman: explorando una herramienta para automatizar pruebas de API - Abstracta\",\"isPartOf\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/#website\"},\"datePublished\":\"2021-07-21T20:35:59+00:00\",\"dateModified\":\"2024-02-15T20:24:43+00:00\",\"description\":\"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.\",\"breadcrumb\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#breadcrumb\"},\"inLanguage\":\"es-CL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/es.abstracta.us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Postman: explorando una herramienta para automatizar pruebas de API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#website\",\"url\":\"https:\/\/es.abstracta.us\/blog\/\",\"name\":\"Abstracta\",\"description\":\"Recursos, buenas pr\u00e1cticas, tendencias y rese\u00f1as de herramientas de desarrollo de software, testing e Inteligencia Artificial.\",\"publisher\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/es.abstracta.us\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es-CL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#organization\",\"name\":\"Abstracta\",\"url\":\"https:\/\/es.abstracta.us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-CL\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2024\/03\/abstracta-logo.png\",\"contentUrl\":\"https:\/\/es.abstracta.us\/wp-content\/uploads\/2024\/03\/abstracta-logo.png\",\"width\":1217,\"height\":300,\"caption\":\"Abstracta\"},\"image\":{\"@id\":\"https:\/\/es.abstracta.us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.instagram.com\/we_are_abstracta\/\",\"https:\/\/www.linkedin.com\/showcase\/abstracta-chile\/\",\"https:\/\/www.youtube.com\/channel\/UCj4dx2LZCRcgM8GzxYEKYeQ\",\"https:\/\/www.facebook.com\/AbstractaChile\/\",\"https:\/\/twitter.com\/AbstractaChile\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/aa9766391607758e6eaad4aa460db0d4\",\"name\":\"Leonardo Antezana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-CL\",\"@id\":\"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dcfbecc506cdd2fc5d6599cbb29632e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dcfbecc506cdd2fc5d6599cbb29632e5?s=96&d=mm&r=g\",\"caption\":\"Leonardo Antezana\"},\"description\":\"Software Engineer, Technology Educator y Coorganizador de Testing Bolivia\",\"sameAs\":[\"https:\/\/cl.abstracta.us\/\",\"https:\/\/www.linkedin.com\/in\/leonardoantezana\/\"],\"url\":\"https:\/\/es.abstracta.us\/blog\/author\/leonardo-antezana\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Postman: explorando una herramienta para automatizar pruebas de API - Abstracta","description":"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/","og_locale":"es_ES","og_type":"article","og_title":"Postman: explorando una herramienta para automatizar pruebas de API - Abstracta","og_description":"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.","og_url":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/","og_site_name":"Blog de Desarrollo de Software, Testing e Inteligencia Artificial | Abstracta","article_publisher":"https:\/\/www.facebook.com\/AbstractaChile\/","article_published_time":"2021-07-21T20:35:59+00:00","article_modified_time":"2024-02-15T20:24:43+00:00","og_image":[{"width":560,"height":315,"url":"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/herramienta-postman-automatizacion-pruebas-api-leonardo-antezana.png","type":"image\/png"}],"author":"Leonardo Antezana","twitter_card":"summary_large_image","twitter_creator":"@AbstractaChile","twitter_site":"@AbstractaChile","twitter_misc":{"Written by":"Leonardo Antezana","Est. reading time":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#article","isPartOf":{"@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/"},"author":{"name":"Leonardo Antezana","@id":"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/aa9766391607758e6eaad4aa460db0d4"},"headline":"Postman: explorando una herramienta para automatizar pruebas de API","datePublished":"2021-07-21T20:35:59+00:00","dateModified":"2024-02-15T20:24:43+00:00","mainEntityOfPage":{"@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/"},"wordCount":3518,"commentCount":0,"publisher":{"@id":"https:\/\/es.abstracta.us\/blog\/#organization"},"keywords":["API Testing","Automatizaci\u00f3n de Pruebas","Pruebas de Software"],"articleSection":["Automatizaci\u00f3n de Pruebas","Herramientas"],"inLanguage":"es-CL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/","url":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/","name":"Postman: explorando una herramienta para automatizar pruebas de API - Abstracta","isPartOf":{"@id":"https:\/\/es.abstracta.us\/blog\/#website"},"datePublished":"2021-07-21T20:35:59+00:00","dateModified":"2024-02-15T20:24:43+00:00","description":"\u00bfQu\u00e9 es Postman? \u00bfPara qu\u00e9 sirve? Conoce uno de los usos m\u00e1s comunes de Postman: Automatizar Pruebas API.","breadcrumb":{"@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#breadcrumb"},"inLanguage":"es-CL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/es.abstracta.us\/blog\/postman-automatizar-pruebas-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/es.abstracta.us\/blog\/"},{"@type":"ListItem","position":2,"name":"Postman: explorando una herramienta para automatizar pruebas de API"}]},{"@type":"WebSite","@id":"https:\/\/es.abstracta.us\/blog\/#website","url":"https:\/\/es.abstracta.us\/blog\/","name":"Abstracta","description":"Recursos, buenas pr\u00e1cticas, tendencias y rese\u00f1as de herramientas de desarrollo de software, testing e Inteligencia Artificial.","publisher":{"@id":"https:\/\/es.abstracta.us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/es.abstracta.us\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es-CL"},{"@type":"Organization","@id":"https:\/\/es.abstracta.us\/blog\/#organization","name":"Abstracta","url":"https:\/\/es.abstracta.us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es-CL","@id":"https:\/\/es.abstracta.us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/es.abstracta.us\/wp-content\/uploads\/2024\/03\/abstracta-logo.png","contentUrl":"https:\/\/es.abstracta.us\/wp-content\/uploads\/2024\/03\/abstracta-logo.png","width":1217,"height":300,"caption":"Abstracta"},"image":{"@id":"https:\/\/es.abstracta.us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/we_are_abstracta\/","https:\/\/www.linkedin.com\/showcase\/abstracta-chile\/","https:\/\/www.youtube.com\/channel\/UCj4dx2LZCRcgM8GzxYEKYeQ","https:\/\/www.facebook.com\/AbstractaChile\/","https:\/\/twitter.com\/AbstractaChile"]},{"@type":"Person","@id":"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/aa9766391607758e6eaad4aa460db0d4","name":"Leonardo Antezana","image":{"@type":"ImageObject","inLanguage":"es-CL","@id":"https:\/\/es.abstracta.us\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dcfbecc506cdd2fc5d6599cbb29632e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dcfbecc506cdd2fc5d6599cbb29632e5?s=96&d=mm&r=g","caption":"Leonardo Antezana"},"description":"Software Engineer, Technology Educator y Coorganizador de Testing Bolivia","sameAs":["https:\/\/cl.abstracta.us\/","https:\/\/www.linkedin.com\/in\/leonardoantezana\/"],"url":"https:\/\/es.abstracta.us\/blog\/author\/leonardo-antezana\/"}]}},"jetpack_featured_media_url":"https:\/\/es.abstracta.us\/wp-content\/uploads\/2021\/07\/herramienta-postman-automatizacion-pruebas-api-leonardo-antezana.png","_links":{"self":[{"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/7266"}],"collection":[{"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/comments?post=7266"}],"version-history":[{"count":40,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/7266\/revisions"}],"predecessor-version":[{"id":17093,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/7266\/revisions\/17093"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/media\/7286"}],"wp:attachment":[{"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/media?parent=7266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/categories?post=7266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/es.abstracta.us\/blog\/wp-json\/wp\/v2\/tags?post=7266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}