# Null Pointer Exception

**URL:** <https://forum.katalon.com/t/null-pointer-exception/17212>\
**Category:** API Testing\
**Tags:** api-testing, katalon-studio\
**Created:** [January 7, 2019, 5:31am UTC](https://forum.katalon.com/t/null-pointer-exception/17212 "2019-01-07T05:31:05Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 7, 2019, 5:31am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/1 "2019-01-07T05:31:06Z")

</div>

I am new to Katalon and was trying to figure out the API Testing. After reading some posts, I have attempted testing and verifying APIs. However, it looks like a stalemate for the verification. Can someone please suggest where am I going wrong ?

Here is my code -

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.checkpoint.CheckpointFactory as CheckpointFactory  
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.testcase.TestCaseFactory as TestCaseFactory  
import com.kms.katalon.core.testdata.TestData as TestData  
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory  
import com.kms.katalon.core.testdata.ObjectRepository as ObjectRepository  
import com.kms.katalon.core.testobject.ObjectRepository  
import com.kms.katalon.core.testobject.RequestObject  
import com.kms.katalon.core.testobject.TestObject as TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUIBuiltInKeywords  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI  
import internal.GlobalVariable as GlobalVariable  
import com.kms.katalon.core.testobject.ResponseObject  
import com.kms.katalon.core.testobject.RequestObject  
import com.kms.katalon.core.testobject.impl.HttpTextBodyContent  
import com.kms.katalon.core.webservice.verification.WSResponseManager  
import static org.assertj.core.api.Assertions.\*  
import groovy.json.JsonSlurper

//POST Object  
def request = (RequestObject)findTestObject(‘POST’)  
String body = ‘{“requestid”: “12345”,“omid”: “dks”,“deviceid”: “sis”,“uid”: “sis\_4”,“urls”: [“[love.iwon.com](http://love.iwon.com)”],“queries”: [“coreinfo”],“aca”: 1,“core”: 1,“xml”: 0}’

request.setBodyContent(new HttpTextBodyContent(body,“UTF-8”,“application/json”))  
WS.sendRequest(request)

ResponseObject response = WSResponseManager.getInstance().getCurrentResponse()

WS.verifyResponseStatusCode(response, 200)  
assertThat(response.getStatusCode()).toString()

String jsonString = response.getResponseText()  
JsonSlurper slurper = new JsonSlurper()  
Map parsedJson = slurper.parseText(body)

Here is the error -

01-04-2019 01:02:59 PM Test Cases/CreateAndVerifyPOST

Elapsed time: 6.410s

Test Cases/CreateAndVerifyPOST FAILED.  
Reason:  
java.lang.NullPointerException  
at com.kms.katalon.core.webservice.verification.WSResponseManager.getCurrentResponse(WSResponseManager.java:49)  
at com.kms.katalon.core.webservice.verification.WSResponseManager$getCurrentResponse$0.call(Unknown Source)  
at CreateAndVerifyPOST.run(CreateAndVerifyPOST:38)  
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:328)  
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)  
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)  
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)  
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)  
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)  
at TempTestCase1546632173690.run(TempTestCase1546632173690.groovy:22)

---

<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:** [January 7, 2019, 5:51am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/2 "2019-01-07T05:51:03Z")

</div>

> [@spullabhotla](#):
>
> WS.sendRequest(request)
> 
> ResponseObject response = WSResponseManager.getInstance().getCurrentResponse()

I have never seen such code. Rather try the following:

```auto
ResponseObject response = WS.sendRequest(request)

```

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 7, 2019, 5:33pm UTC](https://forum.katalon.com/t/null-pointer-exception/17212/3 "2019-01-07T17:33:34Z")

</div>

Thank you very much. It worked charmingly. I was able to verify the results.  
Appreciate your help.

---

<div class="post-metadata">

**Author:** ![huynguyen](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/huynguyen/32/552_2.png) [@huynguyen](https://forum.katalon.com/u/huynguyen)\
**Post date:** [January 8, 2019, 12:24am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/4 "2019-01-08T00:24:45Z")

</div>

Using WSResponseManager.getInstance().getCurrentResponse() in test case is not recommended. It is a utility method to get the response for verification, as described here [https://docs.katalon.com/katalon-studio/docs/verification-snippets.html#using-verification-snippets](https://docs.katalon.com/katalon-studio/docs/verification-snippets.html#using-verification-snippets)

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 8, 2019, 11:04pm UTC](https://forum.katalon.com/t/null-pointer-exception/17212/5 "2019-01-08T23:04:44Z")

</div>

Which means, ‘WSResponseManager.getInstance().getCurrentResponse()’ belongs to codeless automation verfication. Thank you for the suggestion.

Per @kazurayam , My test was working good and when I tried rerunning today, the script is throwing the following error. Any thoughts, please ?

Reason:  
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object ‘true’ with class ‘java.lang.Boolean’ to class ‘com.kms.katalon.core.testobject.ResponseObject’  
at CreateAndVerifyPOST.run(CreateAndVerifyPOST:46)  
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:328)  
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)  
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)  
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)  
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)  
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)  
at TempTestCase1546987955768.run(TempTestCase1546987955768.groovy:22)

---

<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:** [January 9, 2019, 12:10am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/6 "2019-01-09T00:10:32Z")

</div>

> [@spullabhotla](#):
>
> Per @kazurayam , My test was working good and when I tried rerunning today, the script is throwing the following error. Any thoughts, please ?

Could you share your test case code?

---

<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:** [January 9, 2019, 12:10am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/7 "2019-01-09T00:10:54Z")

</div>

> [@spullabhotla](#):
>
> at CreateAndVerifyPOST.run(CreateAndVerifyPOST:46)

What is “CreateAndVerifyPOST” ? Your custom keyword? Please share the source code as well.

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 9, 2019, 5:28pm UTC](https://forum.katalon.com/t/null-pointer-exception/17212/8 "2019-01-09T17:28:22Z")

</div>

**_Sorry for the delay. Here is the code_** :- The ‘CreateAndVerifyPOST’ is my test case. I have created it for verifying the POST Call and in the test case, the Object of the POST call is called.

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.checkpoint.CheckpointFactory as CheckpointFactory  
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.testcase.TestCaseFactory as TestCaseFactory  
import com.kms.katalon.core.testdata.TestData as TestData  
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory  
import com.kms.katalon.core.testdata.ObjectRepository as ObjectRepository  
import com.kms.katalon.core.testobject.ObjectRepository  
import com.kms.katalon.core.testobject.RequestObject  
import com.kms.katalon.core.testobject.TestObject as TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUIBuiltInKeywords  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI  
import internal.GlobalVariable as GlobalVariable  
import com.kms.katalon.core.testobject.ResponseObject  
import com.kms.katalon.core.testobject.RequestObject  
import com.kms.katalon.core.testobject.impl.HttpTextBodyContent  
import com.kms.katalon.core.webservice.verification.WSResponseManager  
import static org.assertj.core.api.Assertions.\*  
import groovy.json.JsonSlurper  
/_import java.util.List  
import java.util.concurrent.locks.Condition  
import java.util.ArrayList_/

//POST Object  
def request = (RequestObject)findTestObject(‘POST’)  
String body = ‘{“requestid”: “12345”,“oemid”: “brightcloudsdk”,“deviceid”: “deviceid\_isis”,“uid”: “isisiteration\_4”,“urls”: [“[love.iwon.com](http://love.iwon.com)”],“queries”: [“getrepinfo”],“a1cat”: 1,“reputation”: 1,“xml”: 0}’

try {  
request.setBodyContent(new HttpTextBodyContent(body,“UTF-8”,“application/json”))  
} catch(Exception Ex) {  
println (Ex.detailMessage)  
}  
WS.sendRequest(request)

ResponseObject response = WS.sendRequest(request)

ResponseObject respCode = WS.verifyResponseStatusCode(response, 200)  
println respCode  
assertThat(response.getStatusCode()).toString()

String jsonString = response.getResponseText()  
JsonSlurper slurper = new JsonSlurper()  
Map parsedJson = slurper.parseText(body)

/_import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import com.kms.katalon.core.testobject.ResponseObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS_/

/_ResponseObject response = WS.sendRequest(findTestObject(‘test\_object\_id’))  
println response.getStatusCode()  
println response.getElapsedTime()_/

---

<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:** [January 10, 2019, 1:49am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/10 "2019-01-10T01:49:35Z")

</div>

> [@spullabhotla](#):
>
> ResponseObject response = WS.sendRequest(request)
> 
> ResponseObject respCode = WS.verifyResponseStatusCode(response, 200)

The second line above is wrong. It should be:

```auto
Boolean statusIs200 = WS.verifyResponseStatusCode(response, 200)

```

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 10, 2019, 6:30pm UTC](https://forum.katalon.com/t/null-pointer-exception/17212/11 "2019-01-10T18:30:38Z")

</div>

Thank you very much - the problem is fixed. Just wondering, is there a documentation for dos and don’ts. Please help provide, it will be a great help. Appreciate your help.

---

<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:** [January 10, 2019, 9:31pm UTC](https://forum.katalon.com/t/null-pointer-exception/17212/12 "2019-01-10T21:31:31Z")

</div>

> [@spullabhotla](#):
>
> org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object ‘true’ with class ‘java.lang.Boolean’ to class ‘com.kms.katalon.core.testobject.ResponseObject’  
> at CreateAndVerifyPOST.run(CreateAndVerifyPOST:46)

In this case, the above message tells you all you need to pay attention to.  
Just get used to this unfriendly format.

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 11, 2019, 7:58am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/13 "2019-01-11T07:58:39Z")

</div>

Thank you very much. I am also trying for API Data Driven Testing. For this, I am following Raghav Pal’s video. I think I followed it fairly well. The test by it self is passing, however when I added it to Test Suite and using the Excelsheet, for some reason the test is failing due to null pointer exception. Don’t know where am I going wrong. Any thoughts, please ?

verifyElementPropertyValue(response, “results[0].queries.getinfo.cats[0].catid”, category) FAILED.  
Reason:  
com.kms.katalon.core.exception.StepFailedException: Unable to verify element property value (Root cause: java.lang.NullPointerException: Cannot invoke method getAt() on null object)  
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:32)  
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)  
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)  
at com.kms.katalon.core.webservice.keyword.builtin.VerifyElementPropertyValueKeyword.verifyElementPropertyValue(VerifyElementPropertyValueKeyword.groovy:48)  
at com.kms.katalon.core.webservice.keyword.builtin.VerifyElementPropertyValueKeyword.execute(VerifyElementPropertyValueKeyword.groovy:43)  
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)  
at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.verifyElementPropertyValue(WSBuiltInKeywords.groovy:123)  
at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$verifyElementPropertyValue$0.call(Unknown Source)  
at CCRefresh-UrlGetInfo.run(CCRefresh-UrlGetInfo:22)  
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:328)  
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)  
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)  
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)  
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)  
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:129)  
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:112)  
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:81)  
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:149)  
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)  
at TempTestSuite1547192617142.run(TempTestSuite1547192617142.groovy:36)

---

<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:** [January 11, 2019, 8:07am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/14 "2019-01-11T08:07:56Z")

</div>

Your previous question has been solved. OK?

If you have new question, then you should create a new Forum discussion. You should not continue adding comments to the previous discussion. The title and contents should be in sync, as you know.

Please create new one.

Also, please share your test case code as well. Pasting log is important but not enough to find out why you are told `(Root cause: java.lang.NullPointerException: Cannot invoke method getAt() on null object)`

Please have a look at the guideline [[TIP] My test is BROKEN! NOTHING WORKS! PLEASE HELP ME!](http://forum.katalon.com/t/tip-my-test-is-broken-nothing-works-please-help-me/12919/12)

Which version of Katalon Studio do you use? the latest 5.10.1? If not, is it possible to upgrate it? because I suppose the 5.10.1 would give you more informative error message.

---

<div class="post-metadata">

**Author:** ![spullabhotla](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/spullabhotla/32/4200_2.png) [@spullabhotla](https://forum.katalon.com/u/spullabhotla)\
**Post date:** [January 11, 2019, 8:37am UTC](https://forum.katalon.com/t/null-pointer-exception/17212/15 "2019-01-11T08:37:17Z")

</div>

Yes, the previous one was solved. I will create a new post with the test case as well. Sorry about that. Also, I will first upgrade Katalon to 5.10.1 and then recreate the test case and run it and see. If it still a problem, I will post it in this forum. Thank you very much for the support.
