I've resoved passing of non-string parameters forth and back when calling another TestCase by passing in a map aimed for setting of return values:
The caller:
//call another TC
def tc = testRunner.testCase.testSuite.testCases["TestCase Proc"]
assert tc != null, "Referred TC not found"
def tcContext = new com.eviware.soapui.support.types.StringToObjectMap()
def returns = [:]
tcContext.put("input", 345)
tcContext.put("returns", returns)
def runner = tc.run( tcContext, false )
assert runner.status != com.eviware.soapui.model.testsuite.TestRunner.Status.FAILED : runner.reason
context.setProperty("output", returns.get("output",null))
com.eviware.soapui.support.UISupport.showInfoMessage(context.getProperty("output").toString())
The callee:
def input = context.getProperty("input");
def returns = context.getProperty("returns");
returns.put("output",input + 1);
Unfortunately, this didn't help me with reuse of the TestCases in load tests, as the method
tc.run() itself has fundamental thread-safety flaws, see the bug
viewtopic.php?f=13&t=21961.