How to to extract response by XPath Extractor in JMeter?

Hoàng Long picture Hoàng Long · Feb 22, 2011 · Viewed 23.7k times · Source

I got the response like the following:

<response>
  <status code='200' server_time='xxx' />
  <tests>
    <test id='1' name='a!' status='Started' />
    <test id='2' name='bb!' status='New' />
    <test id='3' name='ccc!' status='New' />
    <test id='4' name='dddd!' status='New' />
  </tests>
</response>

I have already added a Xpath extractor into the sampler:

Reference name: mytest
XPath Query: //test[@id='1']

But the return variable (mytest) is wrong.

OUT.println(mytest) --> void

I'm a newbie with JMeter. What can I do to solve this?

Answer

Dimitre Novatchev picture Dimitre Novatchev · Feb 22, 2011

I have already added a Xpath extractor into the sampler:

Reference name: mytest XPath Query:

//test[@id='1'] 

But the return variable (mytest) is wrong.

OUT.println(mytest) --> void

Obviously the println() function prints the string value of the test element, and in the provided XML document test elements do not have any content and their string value is the empty string.

You want:

/*/*/test[@id=1]/@name

and

/*/*/test[@id=1]/@status

The former selects all name attributes of all test grandchildren of the top element of the document, that have an id attribute with value 1.

The latter selects all status attributes of all test grandchildren of the top element of the document, that have an id attribute with value 1.