ProductivityAndFun Download Trial - Free 14 day evaluation

Getting Started with REST Testing

PDF Print E-mail
User Rating:  / 89
Rate this article: PoorBest 
Try the full experience of Pro:
Download Pro

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!

Start by creating a new project from the File menu and select the "Add REST Service" option:

new_rest_project


Pressing OK creates the project for you and now prompts to create the REST Service:

new_rest_service


Specify the following Google Map API URL in the Service Endpoint Field:

http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

and be sure to select the "Extract Resource/Method" option. Pressing OK creates the REST Service in your project and prompts to create an initial REST Resource from the specified path:

new_rest_resource


Here SoapUI has automatically extracted the different query-arguments from the path (as you can see in the "Parameters" table). All you need to do now is press OK, which opens another dialog, this time for creating the initial GET Method for the Places resource:

new_rest_method


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:

rest_places_resource_get_method_request_1


Now click the resource icon in the navigator and change the Resource Path to "/maps/api/geocode/json":

change_resource_path


Now go back to the previous request and run it again:

json_rest_request

Now you can see a nicely formatted JSON response in the JSON view to the right instead of the previous XML result.


Ok, we're all set to create an actual functional test for this resource; press 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:

add_rest_request_to_test_case


Just go with the default options for now and press OK; SoapUI generates a corresponding REST Request TestStep into the TestCase:

run_rest_test_case


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 (if had you been using the free version of SoapUI you would have had to create the assertion and xpath statement manually):

add_count_assertion_to_rest_rest


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:

xpath_match_rest_assertion


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!

rest_test_case_completed_successfully


Finally, lets create a simple HTML report fort the result; press the "Create Report" button in the menu at the top and select "JUnit-Syle HTML Report" in the opened dialog as follows:

rest_test_case_junit_resport_selected



Press OK and SoapUI will generate the report for and open it in the system browser:

rest_test_case_junit_report

Voila! Your first functional test of a REST service with SoapUI, just a couple of clicks away.