SoapUI Jenkins: how to use TestSuiteRunListener
SOLVED- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Labels:
-
SOAP
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)) }
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm happy to hear that you've found the solution, @koen_able.
Good luck with your tests!
Tanya Yatskovskaya
SmartBear Community and Education Manager
