Qw3ry
Qw3ry

Reputation: 1429

SoapUI: Run multiple Soap Mock Services with same port and path at once

I have multiple WSDLs that describe different parts of the same service. To create a Mock for the service, I imported these into SoapUI, created a Mock Service for each, with the same port and path, and started them up.

The documentation suggests this should work, but I get

Missing operation for soapAction [http://www.example.com/my/action] and body element [null] with SOAP Version [SOAP 1.1]

when I try to use them - one of the started mocks always works, but the others don't.

Do I need specific settings for this to work? Can I somehow circumvent the problem?

Related: soapUI combine more mock services. While their question is about exporting a war running multiple mocks, I try to run the mock services from SoapUI directly

Upvotes: 1

Views: 1539

Answers (2)

Avoid mock responses immediately available in the interface definition. If they use the same port you will loose much time starting and stopping the listener. Any distraction you will need to restart SOAP UI. Try creating a test case and add the SOAP mock response test steps that you need. They can all use the same port if you carefully configure the "start step" option. This only works if the system that you are testing sends the messages in a certain sequence. If you don't know what will be called first then I had to use different ports. "Start Step" in the mock response controls when the port for that step will start listening. Port is closed once a message is received.

Example project

Upvotes: 0

Qw3ry
Qw3ry

Reputation: 1429

I found it possible to avoid this problem by combining the multiple mocks into one. This can be done as follows:

  1. Import all WSDLs into the same project. You can right-click a project, and choose "Add WSDL"
  2. Generate a Mock service from one of the WSDLs.
  3. For each request of the other WSDLs that you need to mock, right click the created Mock Service and create a "New Mock Operation".

This is tedious, especially when you have many requests, however, this is the only way I could get this to work.

Upvotes: 1

Related Questions