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

时间:2015-06-09 16:47:05

标签: groovy soapui

在soapui groovy脚本测试步骤中,我就是这样。

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")

但是这给了我错误"can not get property testCase on null object".这里错了吗?

1 个答案:

答案 0 :(得分:0)

我现在没有看到空对象错误。问题是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)

This主题帮助了我。