2016-04-23 9 views
7

Sto cercando di estrarre un SessionId dall'XML restituito da un'API SOAP.Come estrarre una variabile da XML usando Postman?

Ho letto la documentazione del postino (diverse volte) ma non è stata la più utile per raggiungere il mio obiettivo.

Ciò che è stato suggerito in alcuni blog è stato convertire l'XML in JSON, quindi selezionare il token e il suo valore da lì, ma non è stato di alcun aiuto.

ho usato il seguente nel mio test:

var jsonObject = xml2Json(responseBody); 
postman.setGlobalVariable("Session_Id", jsonObject.SessionID); 

È possibile che questo ha creato la variabile "session_id", ma non ha in realtà assegnare un valore ad essa. Sono perplesso.

Sto recuperando definitivamente i dati dall'API ed è visibile nella risposta "Corpo" di Postman.

+0

Sto ancora cercando una risposta a questo, e sto confermando con la persona che mi ha fatto conoscere l'app. Manderò a Postman un'e-mail se non tornerò nei prossimi giorni. –

+1

Che cosa è l'output per jsonObject ed è jsonObject.SessionID una stringa. Secondo i documenti postman: postman.setGlobalVariable (variableName, variableValue): imposta una variabile globale "variableName" e assegna la stringa "variabileValue" ad essa. Nota: è possibile memorizzare solo stringhe. Memorizzando altri tipi di dati si otterrà un comportamento imprevisto. – Shaughn

+0

Ho contattato Postman @Shaughn e uno dei loro fondatori ha risposto, consigliandomi della stessa cosa. Ma ha continuato dicendo che l'app converte automaticamente qualsiasi altro tipo in una stringa. Indipendentemente da ciò, ho trovato il problema. Non stavo perforando abbastanza in profondità nel blob JSON. Ho finito per usare: 'postman.setEnvironmentVariable ("Session_Id", jsonObject.UserSessionToken.SessionId);' Ho fatto uso di Console.log e ho continuato a controllare l'output finché non ho trovato ciò di cui avevo bisogno. –

risposta

15

Per estrarre una variabile da XML utilizzando Postman, prima convertire il XML per JSON, utilizzando il metodo del convertitore xml2Json: (. Dove "responseBody" è il vostro corpo XML)

var responseJson = xml2Json(responseBody); 

quindi utilizzare la console. metodo di log per l'output dei dati JSON, come ad esempio:

console.log(responseJson); 

essere sicuri di avere seguito questo tutorial su Enabling Chrome Dev Tools in Postman

All'interno r Test Runner, esegui il test, quindi fai clic con il pulsante destro del mouse e "Ispeziona" in qualsiasi punto del Runner. Seleziona la scheda "Console" una volta avviato Dev Tools di Chrome. Espandi la parte "Oggetto".

Quindi eseguire il drill down (espandere) finché non viene visualizzata la Proprietà di cui sono necessari i dati. Successivamente, impostare la variabile aggiungendo ogni livello di drill-down per il parametro che si desidera:

postman.setGlobalVariable("Session_Id", responseJson.UserSessionToken.SessionID); 

In questo caso, "responseJson" è l'oggetto, "UserSessionToken" è stato il livello successivo della drill-down, e SessionId era il parametro di cui avevo bisogno al suo interno.

+4

Se si sta utilizzando l'app standalone, non è necessario abilitare gli strumenti tramite Chrome. Basta aprire dalla barra dei menu: Visualizza -> Mostra console postino – sunil

Problemi correlati