I found SOAP-UI tool while I was looking for ways to mock the web services temporarily while I and my team were waiting on the real web-service to be ready for doing integration test with our front end application. SoapUI is an open source web service testing application for service-oriented architectures (SOA). Its functionality covers web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing.
This tutorial covers some basic stuffs of using this tool to create Mock request/response from sample WSDL (Web Service Description Language). Although the tool offers advanced options and features, this scope of this article would be enable the readers to download, install and run a mock service using a simple WSDL file.
Here is the WSDL file that I will be using in this tutorial.
<definitions name="SampleService" targetNamespace="http://www.sanjaal.com/wsdl/SampleService.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.sanjaal.com/wsdl/SampleService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <message name="SampleRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SampleResponse"> <part name="greeting" type="xsd:string"/> </message> <portType name="Sample_PortType"> <operation name="sampleOperation"> <input message="tns:SampleRequest"/> <output message="tns:SampleResponse"/> </operation> </portType> <binding name="SampleBinding" type="tns:Sample_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sampleOperation"> <soap:operation soapAction="sampleOperation"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:sanjaal:sample-service" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:sanjaal:sample-service" use="encoded"/> </output> </operation> </binding> <service name="Sample_Service"> <documentation>WSDL File for SampleService</documentation> <port binding="tns:Sample_Binding" name="Sample_Port"> <soap:address location="http://www.sanjaal.com/sample-service"/> </port> </service> </definitions>
SOAP UI tool is free and open source tool and can be downloaded from the website www.soapui.org. I prefer to download in the zip format, which you can just unzip to any location of your choice and are ready to start to work with. But they have other binary distributions with installers. No matter which option you use, there will be folder where SOAP UI is installed or unzipped.
As you can see in the screenshot below, I had unzipped the SOAP-UI tool to C:soapui-4.5.1 folder.
To start the tool, navigate to the bin folder and double click on soapui.bat file. You can also run this bat file from command prompt.
Go ahead and browse your WSDL file. If you don’t have a WSDL file, you can copy the content of the sample WSDL we have provided at the beginning of this tutorial and save it to a file as .wsdl extension – such as sample.wsdl
Once the WSDL file is loaded, you will see something similar to the following. The view depends on how many operations you have defined in the WSDL file, what names you have chosen etc. For each operation, you will see the Requests created by default.
You will be prompted with a Generate MockService dialog where you can choose operations, path (which will be a part of your endpoint definition) and you can even tell the tool what port to use for this service. Make sure to choose the port that has already not been taken.
You will then see that on the navigator, a MockService with the name that you provided on the prior screenshot is created. When you double clock on the operation name of your choice, it will open a window on the right hand side where you have option to run the Mock Service (The small green icon). Click on that icon to start the MockService
Double click on the request from the left hand navigation. If you want to change the end point, you can edit the URL on this screen. Once you have selected the right end point, click on the small green icon on the request window.
If the mock service is running correctly, you will see the response on the right window.
Once the service is running, you can also connect to it from your browser. My endpoint is defined at: http://localhost:8088/sampleService which is my webservice URL.
You have successfully completed learning how to mock a webservice using SOAP-UI.