Me gustaría ejecutar un script de solicitud previa en POSTMAN que envíe una solicitud a una API generadora de UUID y guarde los UUID como variables. Que puedo llamar en el cuerpo de la solicitud ya que allí se requieren.
Originalmente, tengo dos solicitudes separadas (1) una solicitud a la API del generador de UUID (2) y otra a mi API privada. Puedo configurar los 3 UUID como variables y llamarlos al cuerpo después de la solicitud a mi API privada sin problemas y funciona. Al igual que:
GET https://www.uuidgenerator.net/api/version1/3 pm.collectionVariables.set("UUID_1", pm.response.text().split(" ")[1]) pm.collectionVariables.set("UUID_2", pm.response.text().split(" ")[2]) pm.collectionVariables.set("UUID_3", pm.response.text().split(" ")[3]) **Response:** 1. f3600940-3684-11ec-8d3d-0242ac130003 2. f3600b70-3684-11ec-8d3d-0242ac130003 3. f3600c6a-3684-11ec-8d3d-0242ac130003 **Variables in body of next Request:** "data": { "uuid": "{{UUID_1}}", "uuid2": "{{UUID_2}}", "uuid3": "{{UUID_3}}", Nota al margen: la única forma en que descubrí cómo obtener datos de texto sin procesar individualizados de una respuesta es usando .split y la línea de los datos es uno, pm.response.text().split(" ")[1])
SIN EMBARGO, me gustaría simplificar las cosas e insertar la solicitud del generador de UUID en la sección de solicitud previa para que no necesite dos solicitudes separadas para que esto funcione. Pero al insertar la misma información que funciona en la solicitud anterior para configurar estas variables, no funciona.
El script de solicitud previa que tengo hasta ahora da un error (a continuación):
pm.sendRequest({ url: "https://www.uuidgenerator.net/api/version1/3", method: 'GET' }, function (err, res) { pm.collectionVariables.set("UUID_1", pm.response.text().split(" ")[1]) pm.collectionVariables.set("UUID_2", pm.response.text().split(" ")[2]) pm.collectionVariables.set("UUID_3", pm.response.text().split(" ")[3]) }); POSTMAN Error: There was an error in evaluating the Pre-request Script:Error: Cannot read property 'text' of undefined Básicamente, cualquier variación diferente que intente en collectionVariables.set en el script de solicitud previa...
pm.collectionVariables.set("UUID_1", pm.response.text().split(" ")[1]) OR pm.collectionVariables.set("UUID_2", pm.response.split(" ")[2]) OR pm.collectionVariables.set("UUID_3", pm.response.[3])Recibo errores que de otro modo no obtendría si fuera su propia Solicitud (que funciona)
Esto me lleva a creer que puede ser el funcionamiento interno del script de solicitud previa que tengo.
Estabas casi allí. Array comienza con [0] y debe declarar la respuesta como res, tal como se coloca en la función:
pm.sendRequest({ url: "https://www.uuidgenerator.net/api/version1/3", method: 'GET' }, function(err, res){ pm.collectionVariables.set("UUID_1", res.text().split("\r\n")[0]) pm.collectionVariables.set("UUID_2", res.text().split("\r\n")[1]) pm.collectionVariables.set("UUID_3", res.text().split("\r\n")[2]) }); console.log(pm.response);