# Verify json response execution error

**URL:** <https://forum.katalon.com/t/verify-json-response-execution-error/32592>\
**Category:** API Testing\
**Tags:** api-testing, katalon-studio\
**Created:** [September 5, 2019, 1:40am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592 "2019-09-05T01:40:50Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gan\_Jyi\_Yng](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gan_jyi_yng/32/16104_2.png) [@Gan\_Jyi\_Yng](https://forum.katalon.com/u/Gan_Jyi_Yng)\
**Post date:** [September 5, 2019, 1:40am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/1 "2019-09-05T01:40:50Z")

</div>

i am following the guideline posted at  
[https://docs.katalon.com/katalon-studio/docs/parse\_json\_responses.html#get-a-key-value](https://docs.katalon.com/katalon-studio/docs/parse_json_responses.html#get-a-key-value)

but test case failed during execution  
Reason:  
groovy.lang.MissingPropertyException: No such property: parsedJson for class: Script1567646760099  
at json.run(json:31)  
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)  
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)  
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)  
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)  
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)  
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)  
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)  
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)  
at TempTestCase1567647263665.run(TempTestCase1567647263665.groovy:21)

2019-09-05 09:34:27.003 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/json

================  
i have groovy as follow, i paste the expected response in the script. basically the response is identical to request.

import groovy.json.JsonSlurper

String jsonString = ‘’‘{  
“itemId”: “test123”,  
“codes”: [  
{  
“code”: “C1”,  
}  
],  
“name”: “item one”,  
“status”: “active”,  
“created”: “2019-09-04T05:47:30.944Z”,  
“itemType”: “A1”  
}’‘’  
JsonSlurper slurper = new JsonSlurper()  
Map parsedJson = slurper.parseText(jsonString)

=======  
then the test case part 2 to verify response, after part 1 sent the request successfully. part 1 had been sent successfully in this case, the problematic area is the part 2 verify json response.

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint  
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase  
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData  
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint  
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW  
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile  
import com.kms.katalon.core.model.FailureHandling as FailureHandling  
import com.kms.katalon.core.testcase.TestCase as TestCase  
import com.kms.katalon.core.testdata.TestData as TestData  
import com.kms.katalon.core.testobject.TestObject as TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI  
import internal.GlobalVariable as GlobalVariable

import com.kms.katalon.core.util.KeywordUtil

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import com.kms.katalon.core.configuration.RunConfiguration  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import static org.assertj.core.api.Assertions.\*

/part 1. /send the POST message  
WS.sendRequest(findTestObject(‘x/DS-post-x’))

result = CustomKeywords.‘json.API.Addx’()  
print(result)

//part 2. to check the json response  
String getSelectedKey = parsedJson.itemId.name

if(getSelectedKey == null) {  
KeywordUtil.markFailed(“Key is not present”)  
}

if (!isKeyPresent) {  
KeywordUtil.markFailed(“Key is not present”)  
}

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 5, 2019, 6:56am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/2 "2019-09-05T06:56:38Z")

</div>

Let me assume that the following is a entire test case script you wrote (from the very 1st line to the very last line).

```auto
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable

import com.kms.katalon.core.util.KeywordUtil

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.configuration.RunConfiguration
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import static org.assertj.core.api.Assertions.*

//part 1. send the POST message
WS.sendRequest(findTestObject('Drug Service/DS-post-drugformulary'))

result = CustomKeywords.'json.API.AddDrug'()
print(result)

//part 2. to check the json response
String getSelectedKey = parsedJson.itemId.name

if(getSelectedKey == null) {
    KeywordUtil.markFailed("Key is not present")
}

if (!isKeyPresent) {
    KeywordUtil.markFailed("Key is not present")
}

```

In this framgment, the variable named `parsedJson` IS NOT defined at all. Therefore surely you will encounter a error with message “groovy.lang.MissingPropertyException: No such property: parsedJson for class: …”

---

<div class="post-metadata">

**Author:** ![Gan\_Jyi\_Yng](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gan_jyi_yng/32/16104_2.png) [@Gan\_Jyi\_Yng](https://forum.katalon.com/u/Gan_Jyi_Yng)\
**Post date:** [September 5, 2019, 7:19am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/4 "2019-09-05T07:19:41Z")

</div>

> [@Gan\_Jyi\_Yng](#):
>
> import groovy.json.JsonSlurper
> 
> String jsonString = ‘’’{  
> “itemId”: “test123”,  
> “codes”: [  
> {  
> “code”: “C1”,  
> }  
> ],  
> “name”: “item one”,  
> “status”: “active”,  
> “created”: “2019-09-04T05:47:30.944Z”,  
> “itemType”: “A1”  
> }’’’  
> JsonSlurper slurper = new JsonSlurper()  
> Map parsedJson = slurper.parseText(jsonString)

i thought it is in the groovy file, not?  
import groovy.json.JsonSlurper

String jsonString = ‘’’{  
“itemId”: “test123”,  
“codes”: [  
{  
“code”: “C1”,  
}  
],  
“name”: “item one”,  
“status”: “active”,  
“created”: “2019-09-04T05:47:30.944Z”,  
“itemType”: “A1”  
}’’’  
JsonSlurper slurper = new JsonSlurper()  
Map parsedJson = slurper.parseText(jsonString)

---

<div class="post-metadata">

**Author:** ![Gan\_Jyi\_Yng](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gan_jyi_yng/32/16104_2.png) [@Gan\_Jyi\_Yng](https://forum.katalon.com/u/Gan_Jyi_Yng)\
**Post date:** [September 5, 2019, 7:38am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/6 "2019-09-05T07:38:14Z")

</div>

yes 2 groovy, as i separated 1 groovy for test case part 1, another groovy for test case part 2. the groovy content i posted is for part 2 only.

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [September 5, 2019, 7:46am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/8 "2019-09-05T07:46:56Z")

</div>

And please use “Block Code Formatting” feature described as follows:

> [@Use Code Formatting feature in your posts](http://forum.katalon.com/t/use-code-formatting-feature-in-your-posts/23550):
>
> How to format a posting text to present codes and logs nicely? Have a look at the following tutorial. Katalon Community uses [Discourse](https://www.discourse.org/) forum software.

---

<div class="post-metadata">

**Author:** ![Gan\_Jyi\_Yng](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/gan_jyi_yng/32/16104_2.png) [@Gan\_Jyi\_Yng](https://forum.katalon.com/u/Gan_Jyi_Yng)\
**Post date:** [September 5, 2019, 7:47am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/9 "2019-09-05T07:47:48Z")

</div>

what is not clear?  
let me know which one you needed.  
i have posted the groovy and test case. part 1 has no issue, please do not look at it, thus groovy for part 1 i would not posting here.

---

<div class="post-metadata">

**Author:** ![albert.vu](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/albert.vu/32/20595_2.png) [@albert.vu](https://forum.katalon.com/u/albert.vu)\
**Post date:** [August 8, 2022, 7:40am UTC](https://forum.katalon.com/t/verify-json-response-execution-error/32592/10 "2022-08-08T07:40:02Z")

</div>


