I'm in charge of the automation for a hotels search/book XML API. My experience is mostly with SOATest and a bit of soapUI. I would like to know if there is a better approach to do it, I'm looking to create a robust, maintainable, easy to parametrize and efficient automation suite. Using SOATest, for instance, I've found myself limited by the supported version of the built-in python interpreter (pretty old version), so some modules were old, or worst, didn't exist. I would like to know if developing a script using modules that provide me the interface with the XML API through HTTP like mechanize for Perl/Ruby or using a tool like soapUI/SOATest is the best approach. Or maybe there is another way I'm not aware of, hope you guys can help and provide advice with your experience.
I've found soapUI good for a lot of things, especially when I'm first exploring a service, but at the end of the day, I'm personally not a big fan of it for full, maintainable test suites. I've also no experience whatsoever with SOATest. The best solution that I've found so far is use your language and test runner of choice, a BDD library if you so choose, and write the suite yourself. The only time I've run into issues with this is when it came down to time, and how to integrate with other services if data needs to be synchronized between multiple services that aren't easy to automate.
This allows you to use parameters, URI's, etc that off the shelf tools may not allow you to perform as well as gives you more fine grained control over what you're tests are doing.