The Testing and Performance Tools Platform (TPTP) update that will be part of Friday's Europa tools release from the Eclipse Foundation is evolving to help developers test the moving targets inherent in Web services and loose coupling.
If SOA and Web services developers like what they find this week in the updated TPTP 4.4, Harm Sluiman, distinguished engineer IBM Rational and project chair for the (TPTP) project, says they will be even happier next year. The Eclipse testing and performance platform, which includes an entire new code base developed largely by Intel Corp., is evolving to solve key SOA testing problems, he said.
TPTP has been integrated into the Eclipse Web Tools Platform (WTP) since Callisto, last year's annual chain release of new Eclipse technology, Sluiman said. TPTP has also contributed choreography code to the new Eclipse SOA Tools Platform (STP), which is still in an early stage of development, and will have its first major release on Friday.
"Our vision was to use the choreography engine to orchestrate distributed tests," he said. "One of the important things in test execution is actually running multiple virtual users on multiple machines testing multiple systems. We were incubating that technology in TPTP and then it became apparent that the right thing to do was to move it over to the STP project. Once the code for the choreography support matures to GA function, we'll go back to that and use that as one of our integration points down the road for test execution management."
The work with the Web services tools is more mature and some of it is in Friday's Europa release. One of the new features in TPTP 4.4 is a URL testing tool for Web services developers that can be launched from inside WTP, Sluiman said. The URL test tool provides an HTTP proxy recorder playback system.
"If you're using HTTP as your protocol spec underneath your Web services, you can slip the proxy in between and drive your Web services load using the URL testing tool. You can vary the data and make different kinds of requests," he explained. "If you're using the WTP Web services explorer, a little application that they generate for your Web services stack, it actually interacts through a browser. So you can put our test recorder behind that browser, so you're capturing via proxy all the HTTP request and response objects. You can build performance tests for your service as long as it's running on an HTTP protocol."
But Sluiman said good as all that sounds it is still not the ideal way to test Web services, so the TPTP committers are working on a new tool for the planned release of TPTP 4.5 in June 2008.
The URL testing tool is protocol specific, and Sluiman said, "I think that's actually a problem." It would be better to test services through the client bindings, so developers can make their test protocol agnostic, he said. The protocol testing problem has to do with the moving target aspect of loosely coupled Web services.
"One of the things that happens is you may start working with that service over an asynchronous communications stack or any number of possible protocols that we can't do with proxies," Sluiman explained. "If you work with the client bindings, which are consistent all of the time, you really test the full piece of code that you as the Web service provider are responsible for, so you can really test your full service."
The tool for testing client bindings, currently an incubator project in TPTP, is being designed to provide record and playback of a generic API, he said.
"It doesn't have to be a WSDL binding," Sluiman explained. "You point at the sub-classes in your client bindings and say which you want to instrument, and it will capture all objects that are going back and forth across that boundary. Say you're doing a post to an account. You at the client binding think of this as some sort of PUT or GET operation. So testing it that way will make sense to you. You're not necessarily going to want to go in and look at what's in front of the SOAP envelope that's been passed around. It's a more natural form of testing and it's more complete."
It's also a year away from GA. Look for that tool in the June 2008 Eclipse release named Ganymede, which like last year's Callisto release this year's Europa follows the Eclipse naming convention based on Jupiter's moons.