advanced scripting complex testing workflows postman
Obtenga más información sobre las secuencias de comandos avanzadas de Postman para flujos de trabajo de prueba complejos:
En este tutorial, veremos algunos ejemplos básicos del uso de Advanced Scripting con Postman que nos permitirían ejecutar flujos de trabajo de prueba complejos.
Discutiremos ejemplos como Pasar datos de una solicitud a otra, Encadenamiento de solicitudes, es decir, controlar el orden de ejecución de las solicitudes dentro de la colección Postman, etc.
¿Cómo se abre un archivo apk?
=> Lea la serie de capacitación Easy Postman.
Lo que vas a aprender:
- Pasar datos entre solicitudes en Postman
- Solicitar encadenamiento en cartero
- Encadenamiento de flujo de trabajo avanzado con Postman
- Consejos importantes
- Conclusión
- Lectura recomendada
Pasar datos entre solicitudes en Postman
Pasar datos entre solicitudes es una extensión del uso de diferentes tipos de variables de Postman. No es muy raro que una solicitud de API dependa de los datos de la respuesta de la solicitud anterior.
Para construir este tipo de capacidades usando Postman, podemos simplemente usar variables de Postman para establecer el valor dependiendo de la respuesta que se recibió de las solicitudes anteriores o anteriores.
Aquí hay un tutorial en video:
Veamos un ejemplo para ilustrar esto.
Usaremos la misma API https://reqres.in con sus 2 puntos finales, es decir, registrar usuario y obtener detalles del usuario.
Usaremos el valor del ID de usuario devuelto por el punto final de registro y lo usaremos para obtener el método de detalles del usuario. Esto se logrará almacenando el valor de userId en una variable de entorno y utilizando esa variable de entorno en la solicitud consiguiente.
Tenga en cuenta que todos estos scripts serán parte de la pestaña 'Pruebas' de la consola del generador de solicitudes de Postman.
Veamos cómo se verá la secuencia de comandos:
#1) Para el punto final de registro del usuario, la respuesta de esta API se verá como se muestra a continuación.
|_+_|
Ahora, para ejecutar la solicitud GET usando la identificación de usuario de la respuesta, necesitamos obtener el valor de identificación de la respuesta anterior. Usaremos el siguiente script para almacenar el valor de la identificación de este JSON en una variable de entorno llamada userId.
Con el script anterior, el valor del ID ahora se almacenará en la variable de entorno userId y el mismo se puede usar mientras se ejecuta el punto final de solicitud de usuario GET.
#2) Por lo tanto, la solicitud del usuario GET se verá como se muestra a continuación.
https://reqres.in/api/users/{{userId}}
Una vez que se ejecuta la primera solicitud, obtendrá el valor del UserID de la respuesta y actualizará el valor de la variable de entorno, de modo que pueda usarse en las otras solicitudes.
Solicitar encadenamiento en cartero
Primero intentemos comprender un caso de uso básico del encadenamiento de solicitudes y luego profundizaremos más en cómo podemos lograr el encadenamiento de solicitudes utilizando Postman.
Considere un escenario, del flujo de inicio de sesión de un sitio de comercio electrónico y valide al usuario que inició sesión. Ahora, para que un usuario inicie sesión, primero debe estar registrado en el sitio y solo entonces podrá iniciar sesión. Ese es el orden en el que el sitio real de la aplicación móvil ejecuta las llamadas a la API.
Mírelo desde una perspectiva de prueba de integración. Para una prueba de API, primero necesitamos:
- Llame al punto final de registro de la API para que el usuario se registre correctamente.
- Luego llame al punto final de inicio de sesión y valide los detalles del usuario que inició sesión.
Con Postman, controlar el orden de ejecución de las solicitudes no es sencillo. El orden de ejecución predeterminado es de arriba a abajo, es decir, el orden en el que se declaran o crean las solicitudes en la colección Postman.
El encadenamiento de solicitudes o el orden de ejecución de las solicitudes se cambia mediante el siguiente script:
|_+_|Es importante tener en cuenta aquí que esta secuencia de comandos de encadenamiento de solicitudes debe agregarse a la secuencia de comandos previa a la solicitud o posterior a la solicitud (o la pestaña de pruebas en el generador de solicitudes Postman) que activa el flujo de trabajo una vez que se completa la solicitud en ejecución.
Aquí {{RequestName}} es el nombre real de la solicitud que se configura o establece en la colección Postman.
Configuremos una colección de Postman con 4 solicitudes diferentes para ilustrar el concepto de encadenamiento de solicitudes. Crea una nueva colección con 4 solicitudes (usaremos la misma API https://reqres.in para ilustrar esto).
Las 4 solicitudes de la colección serán las siguientes:
# 1) PUBLICAR solicitud de registro del usuario ( https://reqres.in/api/register ) con cuerpo JSON de muestra con campos que tienen correo electrónico y contraseña como se muestra a continuación.
|_+_|#2) Solicitud POST con punto final de inicio de sesión ( https://reqres.in/api/login ) con el mismo cuerpo de solicitud que el anterior.
#3) Solicitud GET con ID de usuario 4.
El flujo de trabajo que intentaremos lograr es:
Registrarse (POST) -> Detalles del usuario (GET) -> Iniciar sesión (POST)
No importa cómo estén configuradas estas solicitudes, crearemos un flujo de trabajo para ejecutarlas en este orden.
Tenga en cuenta que las solicitudes se denominan Registrar usuario, Obtener usuario e Iniciar sesión, respectivamente. Es importante tener estos nombres de solicitud especificados exacta y correctamente en el script, de lo contrario, el flujo de trabajo se atascará.
Veamos cómo se ven ahora los guiones.
#1) Solicitud POST para registrarse.
|_+_|
preguntas de entrevista de consulta SQL para probadores
#2) Solicitud POST para iniciar sesión.
|_+_|
#3) Solicitud GET para obtener detalles del usuario. Es importante aquí que no queremos que suceda nada después de esta solicitud. Si no agregamos ningún script de flujo de trabajo aquí, la colección Postman está diseñada para reanudar la siguiente solicitud en su orden lógico o predeterminado.
Por lo tanto, suponga que el orden original de las solicitudes en la colección es Registrarse, obtener usuario y Acceso y nuestro flujo de trabajo está en Obtener usuario como el control no sabe qué solicitud ir a continuación, irá a la siguiente solicitud lógica que se Acceso y finalmente dará como resultado un bucle infinito.
Para evitar tal situación, es útil terminar el flujo de trabajo usando,
|_+_|
Siempre que se encuentre el script anterior durante la ejecución de una colección, la ejecución del flujo de trabajo se detendrá y el ejecutor de la colección terminará.
En los casos en que haya referencias circulares de la siguiente solicitud, el corredor de la colección se atascará en un bucle infinito, lo que provocará una pérdida de memoria tarde o temprano.
Tenga en cuenta que para ejecutar el flujo de trabajo, deberá ejecutar la primera solicitud o la solicitud inicial manualmente, publicarla, seguirá el flujo de trabajo tal como se define en los scripts posteriores a la solicitud.
En otras palabras, la primera solicitud que debe ejecutarse como parte del flujo de trabajo también debe ser la primera solicitud en la colección o carpeta de la colección, de modo que la ejecución del flujo de trabajo comience con la primera solicitud, que también es la primera solicitud del flujo de trabajo. .
Encadenamiento de flujo de trabajo avanzado con Postman
El ejemplo anterior que discutimos, es más un flujo de trabajo lineal en el que simplemente configuramos el flujo de trabajo entre un conjunto de solicitudes en la misma colección. La misma técnica también se puede utilizar para recorrer una solicitud varias veces en función de algunos valores de respuesta o variables de entorno.
Considere la prueba de integración para una aplicación de carrito de compras, donde debe probar un escenario en el que un usuario busca un producto y lo agrega al carrito y tiene que realizar la misma operación 5 veces, es decir, hasta que el carrito tenga un total de 5 artículos y luego finalmente pagar.
Entonces, si tuviera que escribir un flujo lineal para este tipo de prueba, habría repetido solicitudes individuales en la colección y, esencialmente, la colección tendría 5 solicitudes para buscar un artículo, 5 solicitudes para agregar productos al carrito y 1 solicitud de pago.
Con esta funcionalidad de flujo de trabajo, podemos evitar la repetición de las mismas solicitudes en la colección y usar los flujos de trabajo para recorrer las solicitudes.
Veamos una secuencia de flujo para tal escenario (luego esto se puede usar / crear usando el flujo de trabajo de Postman junto con una combinación de variables de entorno).
También hay un ejemplo interesante del uso del flujo de trabajo de Postman para crear una lista de reproducción de Spotify. Referir Aquí para más información.
Consejos importantes
A continuación se presentan algunos consejos importantes que debe recordar mientras trabaja en la creación de flujos de trabajo.
- Mientras se ejecuta una colección, si pocas solicitudes no tienen postment.setNextRequest configurado, la ejecución continúa en el orden predeterminado de recopilación. Por lo tanto, generalmente se recomienda tener Postman.setNextRequest en todas las solicitudes o en ninguna.
- Cuando se ejecuta con colecciones, si hay carpetas dentro de una colección, Postman.setNextRequest se puede usar solo para solicitudes que pertenecen a la misma carpeta, es decir, la selección de solicitudes no puede ir más allá de la carpeta actual.
- Postman.setNextRequest es la última declaración que se ejecuta en el script de post-solicitud o pre-solicitud, independientemente de dónde y en qué orden se mencione.
En el caso de varios valores encontrados para setNextRequest, el que se menciona en el último es efectivo.
Conclusión
En este tutorial, cubrimos algunos temas avanzados de secuencias de comandos, como la combinación de variables locales y de entorno para pasar datos entre diferentes solicitudes en Postman y cómo podemos controlar el orden de ejecución de las solicitudes mediante el encadenamiento de solicitudes de Postman que permite capacidades avanzadas como bucles y ramificaciones.
Es una característica interesante imitar el comportamiento de una aplicación en la forma en que interactuaría con diferentes API y es útil escribir flujos de trabajo de un extremo a otro mediante pruebas de integración con puntos finales de API.
=> Consulte la guía de capacitación del cartero perfecto aquí.
Lectura recomendada
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- Descarga del libro electrónico Testing Primer
- Tutorial POSTMAN: Pruebas de API con POSTMAN
- Pruebas de rendimiento de servicios web mediante secuencias de comandos LoadRunner VuGen
- ¿Cómo utilizar Postman para probar diferentes formatos de API?
- Pruebas de carga con los tutoriales de HP LoadRunner
- Diferencia entre pruebas de escritorio, cliente-servidor y pruebas web
- ¿Eres un tester nuevo o avanzado? Encuentra de este juego de cartas