2015-06-09 3 views
0

В тестовом шаге сценария soapui я это сделал.Ошибка нулевого объекта при вызове кода из сценария assertion - soapui (создание теста Runner в утверждении скрипта)

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"., Что здесь не так?

+0

'messageExchange.modelItem.testStep' is null –

+0

@tim_yates Его значение не равно нулю. При предоставлении оператора 'log.info' я получаю' com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep @ 6078498' – user1207289

+0

Прочтите этот https://stackoverflow.com/help/mcve, чтобы узнать, что * * все ** мы должны быть в состоянии помочь вам. – SiKing

ответ

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 нить помогла мне.

Смежные вопросы