2016-04-23 15 views
7

Próbuję wyodrębnić SessionId z kodu XML, który jest zwracany z interfejsu API SOAP.Jak wyodrębnić zmienną z XML za pomocą Postmana?

Przeczytałem dokumentację Listonosza (kilka razy), ale nie było to najbardziej pomocne w osiągnięciu mojego celu.

W kilku blogach sugerowano konwersję XML na JSON, a następnie wybranie tokena i jego wartości, ale to też nie pomogło.

użyłem następujących w moim Test:

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

Powyższy stworzony zmienną „session_id”, ale w rzeczywistości nie przypisać wartość do niego. Jestem zdumiony.

Zdecydowanie odzyskiwanie danych z interfejsu API jest widoczne w odpowiedzi "Ciało" Postmana.

+0

Wciąż szukam odpowiedzi na to i potwierdzam osobę, która zapoznała mnie z aplikacją. Wyślę Postmanowi e-mail, jeśli nie przyjdę w ciągu najbliższych kilku dni. –

+1

Co wynik dla jsonObject i jsonObject.SessionID ciąg znaków. Zgodnie z dokumentami dla listonoszy: postman.setGlobalVariable (variableName, variableValue): Ustawia globalną zmienną "variableName" i przypisuje do niej ciąg "variableValue". Uwaga: Można przechowywać tylko ciągi. Przechowywanie innych typów danych spowoduje nieoczekiwane zachowanie. – Shaughn

+0

Wysłałem e-mail do Postman @ Shaughn i jeden z ich założycieli odpowiedział, doradzając mi to samo. Dodał jednak, że aplikacja automatycznie konwertuje każdy inny typ na ciąg znaków. Bez względu na to, znalazłem problem. Nie zagłębiam się wystarczająco głęboko w blob JSON. Skończyło się na użyciu: 'postman.setEnvironmentVariable ("Session_Id", jsonObject.UserSessionToken.SessionId);' Korzystałem z Console.log i sprawdzałem dane wyjściowe, aż znalazłem to, czego potrzebowałem. –

Odpowiedz

15

Aby wyodrębnić zmienną z XML za pomocą listonosz, najpierw przekonwertować XML do JSON, przy użyciu metody konwertera xml2Json: (. Gdzie "responseBody" to organizm xml)

var responseJson = xml2Json(responseBody); 

Następnie za pomocą konsoli. log metodę wyjścia danych JSON, takich jak:

console.log(responseJson); 

Koniecznie podążały samouczek na Enabling Chrome Dev Tools in Postman

Wewnątrz ciebie r Testuj Runner, uruchom test, a następnie kliknij prawym przyciskiem myszy i "Sprawdź" w dowolnym miejscu w Runner. Wybierz zakładkę "Console", gdy uruchomi się Dev Tools Chrome. Rozwiń część "Obiekt".

Następnie przewierć (rozwiń), aż zobaczysz właściwość, której dane potrzebujesz. Następnie ustawić zmienną poprzez dołączenie każdy poziom drążenia do parametru chcesz:

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

W tym przypadku „responseJson” jest obiektem „UserSessionToken” był następny poziom w drążenia, a parametr SessionId był parametrem, którego potrzebowałem w tym zakresie.

+4

Jeśli używasz autonomicznej aplikacji, nie musisz włączać narzędzi przez Chrome. Po prostu otwórz z paska menu: Widok -> Pokaż konsolę Listman – sunil

Powiązane problemy