File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Web Services and the fly likes Seeking ideas on testing web services with JUnit/Ant Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "Seeking ideas on testing web services with JUnit/Ant" Watch "Seeking ideas on testing web services with JUnit/Ant" New topic

Seeking ideas on testing web services with JUnit/Ant

James Adams
Ranch Hand

Joined: Sep 12, 2003
Posts: 188
I have been tasked with creating a framework for testing the web services of a new project. Rather than buying an off the shelf solution such as LISA my manager wants me to roll my own using JUnit and Ant.

One idea I have is to create JUnit TestCases which have the XML requests and SOAP calls as fixture objects, and test*() methods which make the requests and validate the responses. These test cases will be run by Ant from a <junit> task and the results aggregated into an HTML report via a <junitreport> task.

Does this sound reasonable, or is there a better way / best practice for doing this? I am new to web services with SOAP (I am used to doing web services using XML over HTTP) so perhaps there are SOAP-related issues I'm overlooking.

Thanks in advance for any suggestions.

Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
Tests are often started from Ant, so what you describe sounds fine. If for some reason you need more flexibility in the Ant/text integration (since you say that using Ant is important), you could pass the operation to invoke, its parameters and expected result from the build file as parameters to the test class. You couldn't use the <junit> task in that case, though - you'd need to start the test using a regular <java> invocation.
David O'Meara

Joined: Mar 06, 2001
Posts: 13459

check out SoapUI. You can write semi-intelligent SOAP conversations (ie part of the response builds the next request, test format and data in the result, pass/fail etc) and it can also run suites of tests from the command line and report the output. One thing that was missing and I did log it with them was the ability to integrate the results with JUnit/CruiseControl but I haven't checked in a while to see if they did anything about it.
s jain
Ranch Hand

Joined: Nov 22, 2005
Posts: 102
you can also use tcpmon utility for monitoring soap requests and responses.
I agree. Here's the link:
subject: Seeking ideas on testing web services with JUnit/Ant
It's not a secret anymore!