Magnus Jensen
Magnus Jensen

Reputation: 993

LoadRunner lr_xml_extract() and path in soap response

I have a http-protocol web service test that returns this soap response when put in a parameter:

"\n--uuid:cabe2125-cdda-4cf4-9678-b364921dc1d8\r\nContent-Type: application/xop+xml; charset=UTF-8; type="text/xml";\r\nContent-Transfer-Encoding: binary\r\nContent-ID: <[email protected]>\r\n\r\n<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:hentDokumentForventningerResponse xmlns:ns2="http://some.com/service/virksomhet/henvendelsesbehandling/v1" xmlns:ns3="http://some.com/service/virksomhet/henvendelse/v1/informasjon"><dokumentForventning><id>400541</id><kodeverkId>2</kodeverkId><innsendingsValg>IKKE_VALGT</innsendingsValg><hovedskjema>false</hovedskjema></dokumentForventning><dokumentForventning><id>400542</id><kodeverkId>ja</kodeverkId><innsendingsValg>IKKE_VALGT</innsendingsValg><hovedskjema>true</hovedskjema></dokumentForventning><dokumentForventning><id>400540</id><kodeverkId>3</kodeverkId><innsendingsValg>IKKE_VALGT</innsendingsValg><hovedskjema>false</hovedskjema></dokumentForventning></ns2:hentDokumentForventningerResponse></soap:Body></soap:Envelope>\r\n--uuid:cabe2125-cdda-4cf4-9678-b364921dc1d8--"

I want to extract the value 400541 first appearing after:

xmlns:ns3="http://some.com/service/virksomhet/henvendelse/v1/informasjon"><dokumentForventning><id>

above. Looking at the response in soapui I see the structure:

soap:Envelope/soap:Body/ns2:hentDokumentForventningerResponse/dokumentForventning/id

and then I am using:

lr_xml_extract("XML={hentDokumentSoapRespons}",

                                    "XMLFragmentParam=OutputParameter",

                                    "Query=/soap:Envelope/soap:Body/ns2:hentDokumentForventningerResponse/dokumentForventning/id", LAST);

But I get the error (did not find any matches):

HentDokumentforventing.c(66): Warning: "lr_xml_extract" did not find any matches

HentDokumentforventing.c(70): Notify: Parameter Substitution: parameter "OutputParameter" = ""

Looking at the response I put in a parameter (the log pasted in above) and wanting to get the value 400541, how could I grab it using lr_xml_extract() and more importantly, which xpath/path would be suggested given the log pasted above?

Upvotes: 1

Views: 3694

Answers (1)

Michael Galos
Michael Galos

Reputation: 1085

Try using the query

/Envelope/Body/hentDokumentForventningerResponse/dokumentForventning[1]/id

Upvotes: 1

Related Questions