Functional Web Services Testing Made Easy with SoapUI - Part 1
Part 1: Functional Web Services testing using SoapUI
Before we begin actually writing tests, we need two things first:
1. Download and install SoapUI from here.
2. Next, let’s get a WSDL from NOAA. I wanted to actually focus more on SoapUI rather than any one technology to publish your business logic as web services. So, I took the easy route and found out some interesting things about this publicly available web service.
According to the NOAA web site, this web service allows you to get weather data. It has nine functions. Here is the actual wsdl from the web site:
http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl
Now that we have SoapUI downloaded and a web service which we can test, let’s start working.
3. Create a new project within SoapUI; give it a name; and copy and paste the WSDL URL within it. Things should look like this:
Once you have created the project successfully you should be able to see all nine functions that are provided to us by NOAA. We are only going to use three of them, as seen below in the screen shot:
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Revathi Premsekar replied on Fri, 2008/11/14 - 12:19am
How to integrate our own API with SoapUI?
Pls let me know ASAP
Meera Subbarao replied on Fri, 2008/11/14 - 12:30pm
Revathi Premsekar replied on Tue, 2008/11/18 - 1:55am
Hi meera I found the way to add our API with SoapUI.
Now I want to know how to add multiple Xpath match assertion in a single click? Because SoapUI allows us to add assertion one by one, if we need to compare 100's of parameters from actual and expected its very tedious.
Meera Subbarao replied on Tue, 2008/11/18 - 7:13am
sarita mohanty replied on Wed, 2009/01/21 - 3:59am
Hi Meera, I went through your replies, and it is really usefull , I understood well becasue I am working on SOAP UI currently.. but I am unable to open the attachments,
and I am really interested to know about the groovy scripts... being from non developent background I wanted to know how user friendy it is...want to now about the jmeter reports through SOPA ui,,,please send some user guide if you have....
Meera Subbarao replied on Wed, 2009/02/04 - 6:20pm
in response to:
sarita mohanty
If you know Java, you shouldn't have a problem using Groovy. On the other hand, if you are learning it for the first time. there are many Groovy books available. One such book is "Groovy in Action".
Let me know if you need anything else.
David Stuart replied on Fri, 2009/04/03 - 10:20am
Michael Bridges replied on Wed, 2009/04/08 - 1:15pm
Anand Kiran replied on Mon, 2009/04/13 - 3:42am
Hi Meera,
Do you haev any idea about how to run different test suites in a project with a single click using groovy .
Thanks
With Regards
Anand Kiran G
venkat neppalli replied on Wed, 2009/08/26 - 8:38am
Hi Meera,
UR ARTICLES ARE GOOD for practising SOA testing with SOAPUI tool.
I am working as Test Engineer, I want to learn SOA testing,Can you please send me information regarding Deployment of .WAR file in JBoss application server,
Currently i am using JDK1.4 and JBOSS4 softwares in my laptop,i placed .WAR file (which contain web services)in FOLLOWING PATH IE "C:\jboss-4.0.1sp1\server\default\deploy\HLRWebservices.War"
I tried to run Jboss server in command prompt ie C:\jboss-4.0.1sp1\server\default\deploy> RUN <Enter>
I opened IE and typed localhost:8080/HLRWebservices/Services-----I am getting HTTP 404 error,
can u please give me some more information how to deploy in Jboss and start services and see it in IE with above port number in my laptop.
PLEASE KINDLY HELP ME TO RUN WEB SERVICES
Todd Shoenfelt replied on Thu, 2009/10/15 - 12:12pm
First, great site!
SoapUI is an awesome tool. The GUI works great. But I'm not very good with Java and I'm having trouble executing test cases from the command line.
I do:
$> testrunner.sh -e <hostname> -r <name-project.xml> -c "Testcase"
After a long wait, I get:
================================
=
= SOAPUI_HOME = /home/todd/downloads/soapui-3.0.1
=
================================
soapUI 3.0.1 TestCase Runner
Configuring log4j from [/home/todd/eviware/soapUI-3.0.1/bin/soapui-log4j.xml]
Exception in thread "main" java.lang.NoClassDefFoundError: com.eviware.soapui.SoapUI
at java.lang.Class.initializeClass(libgcj.so.7rh)
at com.eviware.soapui.support.log.SoapUIAppender.append(SoapUIAppender.java:34)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
at org.apache.log4j.Category.callAppenders(Category.java:203)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.error(Category.java:302)
at com.eviware.soapui.tools.AbstractSoapUIRunner.runFromCommandLine(AbstractSoapUIRunner.java:80)
at com.eviware.soapui.tools.SoapUITestCaseRunner.main(SoapUITestCaseRunner.java:104)
Like I said, the GUI works fine. How do I fix this?
TIA,
Todd
radhakrishna th... replied on Sun, 2009/10/18 - 6:36am
Sandeep Koli replied on Fri, 2009/11/20 - 7:21am
Sandeep Koli replied on Fri, 2009/11/20 - 7:24am
Ravi Dasu replied on Wed, 2009/11/25 - 7:30am
Raghu Prasad replied on Wed, 2010/01/06 - 8:40am
Raghu Prasad replied on Wed, 2010/01/06 - 8:47am
Jose Campos replied on Thu, 2010/10/14 - 11:43am
Rajashree Prakash replied on Tue, 2011/04/26 - 6:38am
Hi Meera,
I have created around 93 REST requests under 6 Test Suites. When I run the Test suites, all the test cases are pointed to the same method name. So all the cases are failed since there is a mismatch between the assertions and the method.
How should i be able to set the method name for all the test cases individually.
Thanks and Regards,
Rajashree
K Burj replied on Fri, 2011/07/08 - 3:55pm
I can see that SOAP UI provides a way of doing your funtional quality testing. But it is a very cumbersome/tedius process when you have to make several hundreds of assertions for the data that is being returned in your response for a given test case. Not to mention manually enterring the XPATH Expressions ! And if you have several test suites each of which have several test cases and where the scenario happens to be that you are returning data that can cross reference one or more test suites then the process of asserting each xml element containing data is nightmarish ! Hope you get the picture that I'm talking about. I mean its great that you make a few assertions click some buttons and viola Soap UI handles it for you. But when we start talking about several hundreds of asserts for a test step soap request, then its not a happy camper situation.
My question is, and I am not sure if this is at all possible in Soap UI or for that matter any other FQT tool.
However is is possible to assert strictly at the xml entity level only without having to boil down to each element within a given xml entity. E.g. my response contains 3 entities i.e. House, Car, Boat each entity have 100 elements. Instead of asserting each element within those entities. Is is possible to declare assertion at the top most level of each entity and the rest can be handled by the tool?
Harish Behl replied on Thu, 2011/11/03 - 6:53am
in response to:
Meera Subbarao