I want to call a test case and pass a variable of type webdriver and extenttest and his values to another testcase but i don’t have type “other” in the list of type and i can’t pass the value
Hi @rahmaa
You can wrap your object (whatever it is) in a list, and then create a variable in your Test Case that’s of type List.
The test case being called
import yourpackage.MyObject as MyObject
// extent is defined in variable tab as type List
if (extent.size() > 0) {
MyObject myObject = extent.get(0)
println(myObject.getValue())
}
The caller test case
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import yourpackage.MyObject
MyObject myCustomObject = new MyObject("This is created in the caller test case");
WebUI.callTestCase(findTestCase("New Test Case"), ["extent": Arrays.asList(myCustomObject)])
When you execute the caller test case, you will get:
2019-09-24 16:45:09.986 WARN c.k.katalon.core.logging.KeywordLogger - Please use "KeywordUtil.logInfo()" instead of "new KeywordLogger()" constructor. "KeywordLogger" is an internal API and might be changed in the future.
2019-09-24 16:45:10.114 DEBUG testcase.Caller Test Case - 1: myCustomObject = new yourpackage.MyObject(This is created in the caller test case)
2019-09-24 16:45:10.119 DEBUG testcase.Caller Test Case - 2: callTestCase(findTestCase("New Test Case"), ["extent":Arrays.asList(myCustomObject)])
2019-09-24 16:45:10.348 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2019-09-24 16:45:10.348 INFO c.k.katalon.core.main.TestCaseExecutor - CALL Test Cases/New Test Case
2019-09-24 16:45:10.358 INFO c.k.katalon.core.main.TestCaseExecutor - extent = [yourpackage.MyObject@495fac5f]
2019-09-24 16:45:10.382 DEBUG testcase.New Test Case - 1: if (extent.size() > 0)
2019-09-24 16:45:10.387 DEBUG testcase.New Test Case - 1: myObject = extent.get(0)
2019-09-24 16:45:10.388 DEBUG testcase.New Test Case - 2: println(myObject.getValue())
This is created in the caller test case
2019-09-24 16:45:10.393 INFO c.k.katalon.core.main.TestCaseExecutor - END CALL Test Cases/New Test Case
2019-09-24 16:45:10.393 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
Which means your custom MyObject (it’s just a class with method getValue) is passed successfully in the test case being called.
Cheers !
2 Likes
it works , thanks a lot
Hello @ThanhTo
I am using Manual steps in Katalon and want to do the same and it is very hard to follow the solution, I tried to edit the script but don’t know what should replace in my code exactly.