Forum Discussion
atlas
New Contributor
Let's say I want to trasnsfer the first node with name :United Kingdom. So how will I define this in Property trasnfer XPath?
nmrao
9 years agoChampion Level 3
Usually, one should be able to do it using xpath.
But your case is that data is wrapped inside CDATA which is treated as string not xml.
To do this, first cdata has to be extracted and converted it to xml to get the name you looking for?
By the way, do you get the same number of Table elements or there is possibility to get more or none as well in the result?
But your case is that data is wrapped inside CDATA which is treated as string not xml.
To do this, first cdata has to be extracted and converted it to xml to get the name you looking for?
By the way, do you get the same number of Table elements or there is possibility to get more or none as well in the result?
- atlas9 years agoNew Contributor
I get the same number of table elements for any request input (for any CountryCode).
Do you know, how can cdata be extracted and converted it to xml?
- nmrao9 years agoChampion Level 3
IMO, this is case does not suit for using Property Transfer step because of cdata or atleast I am not aware to get the value using PT Step. So, alternative is to use Script Assertion.
Add a script assertion to the first test step, and add the below code in it. Also disable or remove(step 2 property transfer becomes obselete in this case)
Script Assertion code:
/** * Below script extract the name from the first Table and * set its value into a test case level custom property called * COUNTRY_NAME **/ def holder = new XmlHolder(messageExchange.response.responseContent ) def countryCodeResult = holder.getNodeValue('//*:GetCountryByCountryCodeResult') log.info countryCodeResult def cdataHolder = new XmlHolder(countryCodeResult) def countryName = cdataHolder.getNodeValue("//Table[1]/name") assert countryName, "Country name is empty or null" context.testCase.setProperty('COUNTRY_NAME', countryName)
And in the next request where the country name is needed use ${#TestCase#COUNTRY_NAME}