2017-12-20 6 views
0

Ich versuche, TestCase von Groovy Script TestStep mit Groovy in SoapUI ausführen.java.lang.NullPointerException angezeigt, wenn Testcase in Groovy Script Schritt

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context); 
def testCase = testRunner.testCase; 
def testStep = testCase.testSteps["CreateMeeting"]; 
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null); 
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep); 
testStep.run(testRunner, testStepContext); 

Fehler angezeigt:

java.lang.NullPointerException 

Fehler in Zeile aufgetreten:

testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep); 

Projektstruktur:

enter image description here

+0

schwer, den Grund nur durch Fehlermeldung zu verstehen. besser, um einen vollständigen Stacktrace bereitzustellen. Ich nehme an, dass "testStep" an diesem Punkt null ist. aber mit Stacktrace möglich, das eigentliche Problem zu identifizieren. – daggett

+0

Sind beide auf der gleichen Testsuite? Was ist dein Anwendungsfall? Warum möchten Sie einen Testfall von einem anderen Testfall ausführen? Die beste Daumenregel ist, dass jeder Testfall unabhängig ist. Würde es Ihnen etwas ausmachen, mit Hilfe von Screenshots zu zeigen, wie die Testfälle/-schritte in verschiedenen Fällen gegliedert sind? – Rao

+0

Ja, sie sind in der gleichen Suite. Tatsächlich benutze ich Groovy Script testsstep, um Variablen zur Laufzeit zu generieren und auf Projektebene zu speichern. Dann endlich den Testfall aufrufen. Screenshot der Projektstruktur hinzufügen – rAJ

Antwort

2

Wenn Sie i Wenn Sie einen Groovy-Testschritt ausführen, erhalten Sie eine Reihe von vorab deklarierten Variablen wie log, context und testRunner, so dass Sie nicht Ihre eigenen deklarieren müssen.

Das ist für mich gearbeitet:

//def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context); 
def testCase = testRunner.testCase.testSuite.project.getTestSuiteByName("AddBooking").getTestCaseByName("CreateMeeting") 
//def testStep = testCase.testSteps["CreateMeeting"] 
//testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null); 
//testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep); 
def properties = new com.eviware.soapui.support.types.StringToObjectMap() 
testCase.run(properties, false) 
+0

Sie führen einen Testschritt aus. Während das OP versucht, einen Testfall durchzuführen. – Rao

+0

Durch die Verwendung dieser habe ich diesen Fehler: java.lang.NullPointerException: Kann Methode run() auf Null-Objekt – rAJ

+0

nicht aufrufen Der Screenshot macht die Dinge klarer. Code oben bearbeitet. – craigcaulfield

Verwandte Themen