Forum Discussion
- M_McDonaldSuper ContributorIn a TestCase Groovy script you can do this:
import com.eviware.soapui.model.mock.MockService;
import com.eviware.soapui.model.mock.MockRunner;
def mockServices = testRunner.testCase.testSuite.project.getMockServiceList()
def runners = []
MockRunner runner
context.put("runners",runners) // put runners in context so that they can be stopped later
for (mock in mockServices) {
try {
log.info "Starting ${mock.name}"
runner = mock.start()
runners << runner
} catch (Exception e) {
runner.cancel( "Could not start mock service ${mock.name}" )
}
}
If you want to stop them in the same TestCase, you can do this:import com.eviware.soapui.model.mock.MockRunner;
def runners = context.get("runners")
for (MockRunner runner in runners) {
if (runner != null && runner.isRunning()) {
runner.stop()
}
} - h_ixonOccasional ContributorThank's a lot for your qucik response, it's work fine.
- M_McDonaldSuper ContributorActually you don't need to save the runners in context. Each MockService maintains a reference to it's own runner (I didn't see how to get this before.)
Start:def mockServices = testRunner.testCase.testSuite.project.getMockServiceList()
com.eviware.soapui.model.mock.MockRunner runner
for (mock in mockServices) {
try {
log.info "Starting ${mock.name}"
runner = mock.start()
} catch (Exception e) {
runner.cancel( "Could not start mock service ${mock.name}" )
}
}
Stop:def mockServices = testRunner.testCase.testSuite.project.getMockServiceList()
for (mock in mockServices) {
if (mock.mockRunner != null && mock.mockRunner.isRunning()) {
mock.mockRunner.stop()
}
}