Clean up your SOAP-based Web services
The Test Center inspects five worthy tools for keeping your services squeaky clean
Although Parasoft follows the standard pattern of representing projects in an explorer tree, nonleaf nodes in the tree are not simply containers. Adjusting attributes on a parent node alters the behavior of all child nodes accordingly. For example, select the test suite node corresponding to a complete Web service, and a tabbed configuration window appears. From that window, you can alter the execution order of all child test suites, setting them to either run sequentially or in parallel, or specifying that, say, Test B execute only if Test A succeeds. Hosts of other attributes – what version of SOAP to use (1.1 or 1.2), message encoding, default timeout, and more – are similarly alterable. This makes for quick and easy manipulation of project-wide behavior.
When you identify a WSDL on which to create a collection of test suites, you must tell SOAtest of the messaging pattern – synchronous or asynchronous – employed, and SOAtest will create tests suited to the pattern. Also, you can set SOAtest to enforce policy configurations on a project's WSDLs and SOAP messages. A policy configuration is a set of predefined rules, roughly analogous to coding standards. SOAtest will alert you when a WSDL or SOAP message violates one of the rules, so policy configuration provide a means of enforcing best practices among all your organizations Web-service assets.
SOAtest lets you turn a set of functional tests (which is how tests start their lives) into a load test with near flick-of-a-switch ease. Simply select the Load Tests item from the menu and choose how the load is applied (that is, whether the number of virtual users increases linearly, is steady, or tracks a more complicated curve). Once the load testing has started, you can view real-time graphs that plot the current load, as well as request-response turnaround times. You can halt the testing at any point, change the subset of suites being used, and restart.
SOAtest is overrun with useful support tools. Examples are an XML beautifier, various XML encryption tools, and a module that manages callbacks for asynchronous HTTP testing. SOAtest also supports client-side testing. Point it to a WSDL, and it will examine the WSDL structure and create "stubs" that will mimic the Web service's behavior. SOAtest handles testing coming and going, and it has an overall feel of maturity missing from several of the other tools.
Click for larger view.
This is a complicated field from which to draw a favorite. If your testing involves more than just Web services, and your development is primarily Java, then tools such as LISA or SOAtest are worth considering, in that they'll let you drive two nails with one hammer. If, however, you are only interested in SOAP-based Web service testing, and your QA staff is relatively new to the technology, SOAPscope is the obvious choice.