簡體   English   中英

從腳本斷言中調用代碼時出現空對象錯誤-soapui(在腳本斷言中創建測試運行器)

[英]null object error when calling code from script assertion - soapui (creating test Runner in script assertion)

在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". 這怎么了

我現在沒有看到空對象錯誤。 問題是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)

這個線程幫助了我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM