Hi
Am using groovy script to parse the XML. Am able get all the data nodes but not able to fetch the particular which i want.
Code
assert context.response
def getData = { data, element ->
new XmlSlurper().parseText(data).'**'.find {it.name() == element}
}
def inXmlStr = getData(context.response, 'Acknowledge').text()
log.info inXmlStr
def receiptId = getData(inXmlStr, 'ReceiptId')
log.info receiptId
context.testCase.setPropertyValue('ID', receiptId.IdValue.toString())
Response XML :
<?xml version="1.0" encoding="utf-8"?>
<AcknowledgeCandidateRegistration majorVersionId="1" minorVersionId="0" xmlns="http://cebtalentcentral.com">
<ApplicationArea>
<CreationDateTime>2019-02-12T15:11:05.027Z</CreationDateTime>
</ApplicationArea>
<Acknowledge>
<OriginalApplicationArea>
<CreationDateTime>2019-02-12T15:11:03.470Z</CreationDateTime>
</OriginalApplicationArea>
<ReceiptId>155785</ReceiptId> // need this particular id
<Status>Completed</Status>
<RejectCode>0</RejectCode>
<RejectReason />
</Acknowledge>
</AcknowledgeCandidateRegistration>
Regards,
Oct21
Solved! Go to Solution.
@Oct21 ,
Here is the new script assertion for the attached xml
assert context.response def getData = { data, element -> new XmlSlurper().parseText(data).'**'.find {it.name() == element} } def receiptId = getData(context.response, 'ReceiptId') log.info receiptId context.testCase.setPropertyValue('ID', receiptId.toString())
The script provided earlier was also used as a groovy test step, and the script am using now is also as a groovy test step.
You can check the screenshot i sent.
I tried to use the script as script assertion to the request where i am getting the response. But i am getting the same error.
Not sure what has changed, it is parsing the values but not able to pick the one which is described.
And the past script i used as a groovy script and worked perfectly.
Could please check and help me again. Check the screenshot.
Thanks again.
Regards,
Oct21
@Oct21 ,
Here is the new script assertion for the attached xml
assert context.response def getData = { data, element -> new XmlSlurper().parseText(data).'**'.find {it.name() == element} } def receiptId = getData(context.response, 'ReceiptId') log.info receiptId context.testCase.setPropertyValue('ID', receiptId.toString())
Many thanks for the explanation and script @nmrao
I am now able to understand the XML structure.
Subject | Author | Latest Post |
---|---|---|