# How to verify REST XML Response?

**URL:** <https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353>\
**Category:** API Testing\
**Tags:** api-testing, katalon-studio\
**Created:** [March 18, 2019, 4:23am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353 "2019-03-18T04:23:14Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 4:23am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/1 "2019-03-18T04:23:14Z")

</div>

I could able to convert xml response of restful service into JSON response using following method.

1. Download JSON jar from this page: [http://mvnrepository.com/artifact/org.json/json/20140107](http://mvnrepository.com/artifact/org.json/json/20140107)
2. Import .jar file into your project: [https://docs.katalon.com/display/KD/External+Libraries](https://docs.katalon.com/display/KD/External+Libraries)
3. Adjust your test case using conversion script to convert XML to JSON. Below is sample script where ‘xmlJSONObj.toString(textIndent)’ is the final result after conversion.

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import org.json.JSONObject as JSONObject  
import org.json.XML as XML  
import com.kms.katalon.core.testobject.ResponseObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS

ResponseObject response = WS.sendRequest(findTestObject(‘REST\_CommentDetails’))  
int textIndent = 2  
JSONObject xmlJSONObj = XML.toJSONObject(response.getResponseBodyContent())  
xmlJSONObj.toString(textIndent)

But when I tried to verify Converted response with database, I am getting following Error.Please give me some suggestion on this problem.

groovy.lang.MissingMethodException: No signature of method: static com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.verifyElementPropertyValue() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values.

---

<div class="post-metadata">

**Author:** ![Brian\_Ducson](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/brian_ducson/32/603_2.png) [@Brian\_Ducson](https://forum.katalon.com/u/Brian_Ducson)\
**Post date:** [March 18, 2019, 4:27am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/2 "2019-03-18T04:27:14Z")

</div>

The error means that the parameters passed into the function is not correct. you need to double check on this issue.

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 4:36am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/3 "2019-03-18T04:36:07Z")

</div>

In the above method converted response is storing in ‘’ xmlJSONObj.toString(textIndent)’. and I am assigning that into a variable of the type Object called response and using it for verification as below.

Object response = xmlJSONObj.toString(textIndent)

WS.verifyElementPropertyValue(response, ‘response.data.id’, ‘\*\*\*\*\*’)

Is this way is correct?

---

<div class="post-metadata">

**Author:** ![Brian\_Ducson](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/brian_ducson/32/603_2.png) [@Brian\_Ducson](https://forum.katalon.com/u/Brian_Ducson)\
**Post date:** [March 18, 2019, 4:41am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/4 "2019-03-18T04:41:37Z")

</div>

You are using XML class so you need to ensure that the function in use is correct.  
If you use Katalon Studio, you can follow the instruction at [https://docs.katalon.com/katalon-studio/tutorials/verify-api-responses.html#verifying-soap-response-in-xml-format](https://docs.katalon.com/katalon-studio/tutorials/verify-api-responses.html#verifying-soap-response-in-xml-format) to verify the response properties.

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 4:46am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/5 "2019-03-18T04:46:46Z")

</div>

Above link explains verifying REST response in JSON format and SOAP response in XML format.  
But what I need is Verifying REST response in XML format.

---

<div class="post-metadata">

**Author:** ![Brian\_Ducson](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/brian_ducson/32/603_2.png) [@Brian\_Ducson](https://forum.katalon.com/u/Brian_Ducson)\
**Post date:** [March 18, 2019, 4:49am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/6 "2019-03-18T04:49:08Z")

</div>

XML format you have the same verification. Did you try and it did not work?

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 4:50am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/7 "2019-03-18T04:50:02Z")

</div>

Yes I tried.it failed to identify values from the response.

---

<div class="post-metadata">

**Author:** ![Brian\_Ducson](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/brian_ducson/32/603_2.png) [@Brian\_Ducson](https://forum.katalon.com/u/Brian_Ducson)\
**Post date:** [March 18, 2019, 4:50am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/8 "2019-03-18T04:50:45Z")

</div>

could you take the screenshot of the script and the error message?

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 4:58am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/9 "2019-03-18T04:58:09Z")

</div>

This is the code snippet i am using for verification.  
where response will contain the response in xml format.\*\*\*\*\*\* will be the value fetched from database.and the ‘datalist.data[0].id’ is the xml path of a id from the response.

WS.verifyElementPropertyValue(response, ‘datalist.data[0].id’, ‘\*\*\*\*\*’)

Error message is:  
Reason:  
com.kms.katalon.core.exception.StepFailedException: Unable to verify element property value (Root cause: com.kms.katalon.core.exception.StepFailedException: Expected element property value ‘\*\*\*\*\*’ is not equal with actual property value ’ ')  
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)  
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)  
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)

---

<div class="post-metadata">

**Author:** ![Brian\_Ducson](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/brian_ducson/32/603_2.png) [@Brian\_Ducson](https://forum.katalon.com/u/Brian_Ducson)\
**Post date:** [March 18, 2019, 5:01am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/10 "2019-03-18T05:01:07Z")

</div>

> [@Niranjan](#):
>
> WS.verifyElementPropertyValue

This method is used to verify JSON, you could use WS.verifyElementText for XML

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 5:11am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/11 "2019-03-18T05:11:26Z")

</div>

Error message for the above statement.

Unable to verify element text (Root cause: com.kms.katalon.core.exception.StepFailedException: Expected text is ‘\*\*\*\*\*\*’ but actual element text is: )

response value fetched is ’ ’ (empty). Katalon failing to fetch the value from XML response…

---

<div class="post-metadata">

**Author:** ![Niranjan](https://avatars.discourse-cdn.com/v4/letter/n/e99b99/32.png) [@Niranjan](https://forum.katalon.com/u/Niranjan)\
**Post date:** [March 18, 2019, 5:17am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/12 "2019-03-18T05:17:05Z")

</div>

Because of this only i converted XML response into JSON and tried to verify with json values.

Object response = xmlJSONObj.toString(textIndent)

WS.verifyElementPropertyValue(response, ‘response.data.id’, ‘\*\*\*\*\*’)

and getting this error:

groovy.lang.MissingMethodException: No signature of method: static com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.verifyElementPropertyValue() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values.

---

<div class="post-metadata">

**Author:** ![Ibus](https://avatars.discourse-cdn.com/v4/letter/i/e9a140/32.png) [@Ibus](https://forum.katalon.com/u/Ibus)\
**Post date:** [March 18, 2019, 6:26am UTC](https://forum.katalon.com/t/how-to-verify-rest-xml-response/21353/13 "2019-03-18T06:26:03Z")

</div>

There is no real benefit to convert the XML response in Json.  
Just extract whatever you need from it using XMLSlurper (or Parser), see:  
[http://groovy-lang.org/processing-xml.html](http://groovy-lang.org/processing-xml.html)
