Enterprise Integration Zone is brought to you in partnership with:

Meera has posted 70 posts at DZone. You can read more from them at their website. View Full User Profile

Functional Web Services Testing Made Easy with SoapUI - Part 1

05.06.2008
| 177694 views |
  • submit to reddit

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:

Legacy
Article Resources: 
Published at DZone with permission of its author, Meera Subbarao.

(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

Do you mean Groovy API?

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

I am not sure you can add multiple assertions in one click. My suggestion would be to use Groovy, parse the response and assert the results. It might be possible to do with the SoapUI Pro version, I have not used one though.

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

Hello Meera, In SoapUI, is it possible to take a single request message, and create a test case that loops through a list of different data values and populates those data values into each new request? Using your NOAA wsdl for example; using the LatLonListZipCode request message, somehow loop this request with several thousand different zipcodes from an external file - how do we accomplish this? Sounds like it requires groovy? If this is the case, can you provide a snippet or example? Thanks!

Michael Bridges replied on Wed, 2009/04/08 - 1:15pm

Hi Meera - I am new to the SOA world with a lot to learn in order to be effective with SoapUI.  Thanks in advance for your contributions here.  It seems that what you are presenting is right in line with my initial needs.  Much to learn!  I have finished Part 1 - Where is Part II?  Did I miss link somewhere?

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

Dear, I need to propose functional testing, test automation, security testing and performance testing approaches and effective tools to one of my clients, for the same I am preparing Questionnaire to get the current set-up data.. I want to know what are the good questions to access his current web services development environment ? you can reach me on radhakrishna@thatavarti.com

Sandeep Koli replied on Fri, 2009/11/20 - 7:21am

Hi, I had imported SoapUI Plugin in two eclipse Within existing project i am implementing the SoapUI for webservice testing Can U help me for same. Thanks, Sandeep koli

Sandeep Koli replied on Fri, 2009/11/20 - 7:24am

Hi, I had imported SoapUI Plugin into the Existing J2EE project, With the existing project wsdl. I had generated the Mock services but I am able to set only static response. Can u help me to do it dynamically Thanks, Sandeep Koli

Ravi Dasu replied on Wed, 2009/11/25 - 7:30am

I want to create Custom Log files when i execute the Test Suite execution. That custome log files should contains TestSuite Name-- Test Start Time, Test Case Name--- Start Time, Test Step Name--Start Time, Test Step Execution End Time, Test Case End Time, Test Suite End time. How can i implement the custom logs by using groovy scripts? Please any body help me out this

Raghu Prasad replied on Wed, 2010/01/06 - 8:40am

hi meera i am new to saopui...i would like to know how can we add a simple Contains assertion for the required request ..hope u will reply soon

Raghu Prasad replied on Wed, 2010/01/06 - 8:47am

hi meera ...i am very much thankfull to you...i want to know when you will start the groovy language..and next level of soapui..and mainly what are the contents we should learn in soapui...

Jose Campos replied on Thu, 2010/10/14 - 11:43am

I need some help with the first one to introduce the zip code of my city.

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

Hi Meera, Thanks for good tutorials. I want to know how much important Groovy scripting is when someone is starting to use SOAP UI? Advantages of using groovy script in Soap UI?? Regards, Harish

Zanya Arte replied on Sat, 2013/09/07 - 12:58am

A Net Service can be a service looked at by using Net. Net Service is methods to distribute the job in excess of world-wide-web along with allow other apps to get into capabilities identified from your world-wide-web service. Net products and services reveals a software identified inside Net Services Outline Terminology. http://www.thenehruplace.com/

Uchenna Ani-Okoye replied on Sun, 2013/10/27 - 5:01pm

Testing is fundamental in all development processes, not just for web services, but for product creation in general. I feel it's also integral to the success of whatever your trying to create, assuming all other bits and pieces have been put together. With that said, I found what you had to say coupled with using SoapUI very useful.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.