Am using the same example as shown in the (docs) to loop and get test data from excel sheet using testcase.
But am getting casting error as below :
Test Cases/SignUp/Signup with invalid data FAILED.
Reason:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object ‘com.kms.katalon.core.testdata.reader.SheetPOI@4ba380c7’ with class ‘com.kms.katalon.core.testdata.reader.SheetPOI’ to class ‘com.kms.katalon.core.testdata.InternalData’
at Signup with invalid data.run(Signup with invalid data:23)
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:331)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:322)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:301)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:293)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:227)
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 TempTestCase1554986014655.run(TempTestCase1554986014655.groovy:21)
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.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 as KeywordUtil
import com.kms.katalon.core.testdata.InternalData as InternalData
WebUI.callTestCase(findTestCase('Common/OpenBrowser'), [:], FailureHandling.OPTIONAL)
if (WebUI.verifyElementPresent(findTestObject('Page_SignIn/a_New User Sign up'), 10)) {
WebUI.click(findTestObject('Page_SignIn/a_New User Sign up'))
InternalData data = findTestData("SignUpTestData")
for (def index : (0..data.getRowNumbers() - 1)) {
WebUI.sendKeys(findTestObject('Page_SignUp/input_Sign up_useremail'), data.internallyGetValue("varEmail", index))
WebUI.sendKeys(findTestObject('Page_SignUp/input_Sign up_userpassword'), data.internallyGetValue("varPassword", index))
WebUI.sendKeys(findTestObject('Page_SignUp/input_Sign up_userpassword_confirmation'), data.internallyGetValue("varConfirmPassword", index))
WebUI.click(findTestObject('Page_SignUp/input_Cancel_commit'))
if (WebUI.verifyElementPresent(findTestObject('Page_SignUp/h2_Sign up'), 10)) {
println(index + ' : There are some validation errors.')
} else {
println(index + ' : Signup successfull.')
}
}
} else {
KeywordUtil.markFailed('No Signup link visible.')
}
Any suggestion?