NOTE: As of version 4.6 of SoapUI, the functionality described in this article has been revised and improved. If
you're using an earlier version, please upgrade!
SoapUI supports extensive testing of REST services and their resources, representations, etc. Let's start with a
quick demo using the Google Maps API
to get you started!
Also, please try out a free 14-day
trial of SoapUI Pro to tag along in the tutorial. While REST-testing isn't a Pro-specific feature, all tutorials
on SoapUI.org are done using SoapUI Pro, so you'll have a better understanding of the feature if you do.
Watch the video tutorial:
The way to create REST testing requests has been greatly simplified in SoapUI 4.6 – fewer steps are needed.
Start by creating a new REST project from the File menu by choosing the "New REST Project" option in the File
Specify the following Google Map API URL in the Service Endpoint Field:
Here you can just press OK, and SoapUI creates the project complete with a Service, Resource, Method and the actual
Request and opens the Request editor.
In the "Parameters" table, you can see that SoapUI has automatically extracted the different query-arguments from
Press the green arrow at the top left in the Request editor and you can see the XML output returned by the service:
Here you can just press OK, which finally creates the actual request and opens its editor. Press the green arrow at
the top left in the Request editor and you can see the XML output returned by the service:
The request seems to be working fine, so we're all set to create an actual functional test for this resource. Click
the "Add to TestCase" button at the top left, which prompts for the names of an initial TestSuite and TestCase, then
it shows the following dialog:
Just go with the default options for now and press OK; SoapUI generates a corresponding REST Request TestStep
into the TestCase:
Now double-click the resource icon in the navigator and
change the Resource Path to "/maps/api/geocode/json":
Now go back to the previous request and run it again:
Now you can see a nicely formatted JSON response in the
JSON view to the right instead of the previous XML result.
Ok! Time to add an actual assertion to validate the content of the response. In our case we are just going to check
that we get 1 place back from the service, open the "Get places - Request 1" TestStep and submit it as usual giving
the same JSON response as above. Then in the right response part of the window now select the "Outline" view and
right-click on the first "e" item. Then in the popup menu, select the "Add Assertion -> for Count" option, which
automatically generates an XPath assertion for you (this is a SoapUI Pro feature, in SoapUI open source you should create this assertion by hand):
Here you see the generated XPath statement at the top and its expected result below. All is fine, just Save the
assertion and go back to the TestCase window:
Run the TestCase with the green arrow at the top left which will result in the above output in the Log at the
bottom; your functional test passed just fine!
Finally, if you are running SoapUI Pro, you can create a simple HTML report. Click the "Create Report"
button in the menu at the top and select "JUnit-Syle HTML Report" in the opened dialog as follows:
Press OK and SoapUI will generate the report for and open it in the system browser:
Voila! Your first functional test of a REST service with SoapUI, just a couple of clicks away.