soapUI User Guest Blog
Noble Acuff, Technology Consultant
The Acuff Group
I was recently working with a client on a software development project when the team ran into a problem. The new application they are developing is designed to centrally manage a high volume of online ad campaigns and needs to interface with a variety of external applications, including the client's accounting system. The accounting system happens to be a Microsoft product, and while it offers a .NET API we're unable to use it since our application is all written in PHP/MySQL. "Not to worry," we thought, "there's a web service wrapper we can use instead. This will be simple..."
Not All Web Services are Created Equal
Twenty-four hours later, after a great deal of frustration, we realized it wasn't going to be as simple as we initially thought. Since the accounting system's SOAP interface isn't the preferred means of accessing the API, it's not well documented. Also, as it turns out the web service is far from simple, offering dozens of methods, each with a dizzying array of parameters. Just getting to "hello, world" was proving to be much more difficult than we imagined.
What we needed was a quick and simple way to 1) connect to the accounting system's web service and see if it was really running, 2) have complete control over the exact XML messages that were getting submitted, and 3) watch the messages and errors that were getting returned. While all of this is achievable using custom code, it can be very frustrating when things don't work since the problem could be the new code, it could be the web service, it could be something in between, or it could be a combination of problems. So we turned to Google to see what we could find.
That's when we found soapUI. No one on our team was familiar with soapUI, but it appeared to be exactly what we needed. Without reading a shred of documentation we were able to create a new project, attach to the web service's WSDL file, and literally within 10 minutes we were able to validate that the service was running and see a comprehensive view of the methods it presented. Even better, since soapUI can generate sample requests for each of the methods it finds, we were able to rapidly generate a set of test messages and verify the exact syntax we needed to employ.
soapUI Saves the Day...Days
While this may sound less than revolutionary to some of you, the power of soapUI lies in its ability to let you focus on what's important: getting your code to work. By introducing a known, working factor into the troubleshooting workflow we were able to quickly determine the sources of our problems. Also, since the tool doesn't have a steep learning curve it has been easy to introduce it to our whole team and now everyone is comfortable using it when they need to test new messages. At the end of the day soapUI easily saved us several of days' worth of headaches and troubleshooting. We're looking forward to doing more with soapUI and it's definitely something I'll keep in my toolbox.
How Did You Discover soapUI?
I would love to hear how others discovered soapUI. What's your story?