cancel
Showing results for 
Search instead for 
Did you mean: 

SoapUI Jenkins: how to use TestSuiteRunListener

SOLVED
Occasional Contributor

SoapUI Jenkins: how to use TestSuiteRunListener

Hi,

I have a test pipeline running in Jenkins with a SoapUI node connected to it. I want to run a script (in a test suite, in a testcase) ONE time before I start running my testsuite (I have only one for now). I thought about using the Event TestRunListener.beforeRun, but that will run the script everytime a test case starts. Then I thought about using the  TestSuiteRunListener.beforeRun. But that one gave the following exception:

08:59:45 08:59:45,811 ERROR [EventHandlersRequestFilter] com.eviware.soapui.support.scripting.ScriptException: Error in TestSuiteRunListener.beforeRun
08:59:45 08:59:45,817 ERROR [SoapUI] An error occurred [Error in TestSuiteRunListener.beforeRun], see error log for details
08:59:45 08:59:45,818 ERROR [errorlog] com.eviware.soapui.support.scripting.ScriptException: Error in TestSuiteRunListener.beforeRun
08:59:45 com.eviware.soapui.support.scripting.ScriptException: Error in TestSuiteRunListener.beforeRun
08:59:45 Caused by: groovy.lang.MissingPropertyException: No such property: testCase for class: com.eviware.soapui.impl.wsdl.testcase.WsdlTestSuiteRunner

Apparently there is something wrong with the following code that I use:

// Check if the test case is run from the command line
if (com.eviware.soapui.SoapUI.isCommandLine()) {
   log.info "This code is executed by Command Line SoapUI"
   log.info "Now running setup scripts"
   def testCase = testRunner.testCase.testSuite.project.testSuites['testsuite'].testCases['testcase']
   def testStep = testCase.getTestStepByName("teststep")
   testStep.run( testRunner, context )
}

It doesn't recognize testCase for class: com.eviware.soapui.impl.wsdl.testcase.WsdlTestSuiteRunner used here:

def testCase = testRunner.testCase.testSuite.project.testSuites['testsuite'].testCases['testcase']

So how do I script to have the testRunner run the testcase 'Setup Project' in the testsuite 'tooling-general' using the estSuiteRunListener.beforeRun?

1 ACCEPTED SOLUTION

Accepted Solutions
Occasional Contributor

Re: SoapUI Jenkins: how to use TestSuiteRunListener

The following code worked for me with the help of Smartbear and this Smartbear community topic:

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

def testcase = testRunner.getTestSuite().getProject().getTestSuiteByName("testsuite").getTestCaseByName("testcase") 

if(testcase != null)
{
	WsdlTestCaseRunner wtcr = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testcase, new com.eviware.soapui.support.types.StringToObjectMap()) 
	testcase.getTestStepByName("teststep").run(wtcr ,wtcr.createContext(null)) 

}

 

View solution in original post

3 REPLIES 3
Highlighted
Moderator

Re: SoapUI Jenkins: how to use TestSuiteRunListener

Hi @koen_able,

 

As far as I can see in our DB, you are currently working with one of our support engineers on this question. It would be great if you could update us on the progress here in the Community.

Thank you in advance!


Olga Terentieva
SmartBear Assistant Community Manager

Occasional Contributor

Re: SoapUI Jenkins: how to use TestSuiteRunListener

The following code worked for me with the help of Smartbear and this Smartbear community topic:

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

def testcase = testRunner.getTestSuite().getProject().getTestSuiteByName("testsuite").getTestCaseByName("testcase") 

if(testcase != null)
{
	WsdlTestCaseRunner wtcr = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testcase, new com.eviware.soapui.support.types.StringToObjectMap()) 
	testcase.getTestStepByName("teststep").run(wtcr ,wtcr.createContext(null)) 

}

 

View solution in original post

Community Manager

Re: SoapUI Jenkins: how to use TestSuiteRunListener

I'm happy to hear that you've found the solution, @koen_able.

Good luck with your tests!

 
---------
Tanya Gorbunova
SmartBear Community Manager

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others.↓↓↓↓↓
New Here?
Join us and watch the welcome video:
Top Kudoed Authors