Groovy 从脚本断言调用代码时出现空对象错误-soapui(在脚本断言中创建测试运行程序)

Groovy 从脚本断言调用代码时出现空对象错误-soapui(在脚本断言中创建测试运行程序),groovy,soapui,Groovy,Soapui,在SOAPUIGroovy脚本测试步骤中,我已经完成了这个步骤 context.setProperty("searchA", new searchA()); class searchA{ def testRunner def searchA(testRunner){ this.testRunner=testRunner } def search(a,b){ def search_TestCase = testRunne

在SOAPUIGroovy脚本测试步骤中,我已经完成了这个步骤

context.setProperty("searchA", new searchA());
class searchA{

    def testRunner
    def searchA(testRunner){
        this.testRunner=testRunner
        }

    def search(a,b){

        def search_TestCase = testRunner.testCase.testSuite.getTestCaseByName("Search")
          search_TestCase.setPropertyValue("ABC", a)
          search_TestCase.setPropertyValue("DEF", b)
          search_TestCase.run(new com.eviware.soapui.support.types.StringToObjectMap(), false)

        }
    }
在另一个测试套件中的断言脚本中,我这样调用上面的代码

scripts = messageExchange.modelItem.testStep.testCase.testSuite.project.testSuites["Test"]
scripts.testCases["Lib123"].testSteps["TestLib123"].run(context.getTestRunner(),context)
context.searchA.search("value1","value2")

但这给了我一个错误
“无法在空对象上获取属性测试用例”。
这里出了什么问题?

我现在没有看到空对象错误。问题是
testRunner
在脚本断言中不可用,因此我们需要在脚本断言中像这样创建它,然后将其传递给调用方方法

import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner
import com.eviware.soapui.support.types.StringToObjectMap
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext

testCase = messageExchange.modelItem.testStep.testCase
tcRunner = new WsdlTestCaseRunner( testCase, new StringToObjectMap() );

context.searchA.search("value1","value2",tcRunner)

线程帮助了我

messageExchange.modelItem.testStep
null@tim_yates它不是空的。在给出
log.info
语句时,我得到
com.eviware.soapui.impl.wsdl.teststeps。WsdlTestRequestStep@6078498
通读一下这篇文章,了解我们需要什么来帮助您。