Testing Your Web Service
Hand-in-hand with debugging is the problem of testing your Web services. There are many facets to testing, such as validating the interface functionality, performance analysis, and load balancing for scalability.
Because Web services are programmatic interfaces to functionality, they are good candidates for automated testing tools as developers can quickly simulate thousands of virtual users accessing the Web service under different system conditions. Things to look for in a testing tool include:
- Performance Testing. Look for testing tools that can measure the performance (and scalability) of a Web service. A good testing tool can help find performance bottlenecks.
- Functional Correctness. The testing tool should make sure your Web service does what it's supposed to do, even under high load.
- Auto-Generation. Being able to generate different combinations of input randomly can get you started more quickly and can also help with regression testing.
- WSDL Support. The testing tool must be able to input a given WSDL and automatically generate a set of starting test cases based on the data types, methods, and operations defined within the WSDL.
- Build Integration. The concept of continuous integration implies that you should build, deploy, and test as often as possible. To do this, the testing tool must be able to run both inside an environment and as a standalone process from the command line. Developers and testers must be able to execute a single command line script to run through the test cases.
Youll find several vendors already offer Web services testing tools that include some or all of these features. For example, HP provides the OpenView Transaction Analyzer product that enables you to diagnose performance bottlenecks for both J2EE and COM-based applications. Empirix has a set of testing and monitoring tools, including FirstACT, an automatic test-case generator. Another testing tool is Parasoft SOAPtest, an automated inter-module testing tool that emulates both the SOAP client and SOAP server and allows early module testing.
The biggest challenge to testing your Web services is that there is no user interface, so all the testing must be accomplished programmatically. Your strategy should be to develop a test suite, or set of tests, that can be run both automatically, such as during the night, and by non-development testing personnel. Also, testing should be developed throughout the project, as part of design and development, rather than waiting until implementation is complete. This will ultimately save time and improve quality.