Welcome!

Eclipse Authors: RealWire News Distribution, Adam Blum, Aditya Banerjee, Jeff Anders, CJ Fearnley

Related Topics: SOA & WOA

SOA & WOA: Article

Load Testing Web Services

Software testing is crucial to SDLC and load testing is integral to any efficient testing scheme

Case Study
To do load testing, we've created an environment similar to a real-world scenario or that emulates the scenario to a high degree. A real-world scenario will contain different payloads and a varying number of users accessing the same Web Service simultaneously.

Our test environment setup is described below: (see Table 1)

A document-style Web Service has different payloads being passed on as SOAP message elements. These documents vary in size to measure the response time given by a Web Service invocation. Network congestion or the time spent in the communication pipeline distorts the Web Service's actual response time. To measure the true response time of a Web Service, the service is locally hosted, eliminating any network-related bottlenecks.

The Web Services are hosted on the JBoss application server that resides on a machine with the following setup: A Dell server PE 1600SC with an Intel 2.8GHz Xeon CPU and 1GB of RAM. The various performance parameters like response time, throughput, number of transactions passed/failed, and load size are measured against different payloads for RPC and document styles of Web Services and the results are shown on graphs.

Results
Load testing summary of a document/literal-style Web Service

Payload size: 10KB
Number of concurrent users: 25
Total test duration: 10 minutes (see Figure 2)

The graphs above depict the variation of the average response time of a document/literal-style Web Services at a constant payload size of 10KB. Note that the average response time is significantly nominal and the performance of the service remains stable over the given period of time.

Payload size: 100KB
Number of concurrent users: 50
Total test duration: 15 minutes (see Figure 3)

The same document-style Web Service when evaluated for a medium payload of 100KB performed the same as the graphs depict.

Payload size: 500KB
Number of concurrent users: 50
Total test duration: 15 minutes (see Figure 4)

When tested for a high payload of 500KB and 50 concurrent users, the document-style Web Services remain stable. The average response time remains significantly low at around 1.2 seconds. None of the transactions failed.

Load Testing Tools
There are commercial tools like Mercury's LoadRunner and Radview's Webload that are very efficient and detailed for load testing Web Services. There are various Open Source alternatives to LoadRunner that can serve our purpose of load testing to varying degrees. Some of the more popular tools include the soapUI 1.6 beta, the Grinder 3 beta, and OpenSTA. soapUI provides basic functionality to create test cases, execute them, create sample SOAP clients, etc. Grinder uses a highly detailed language called Jython to write the test scripts.

Conclusion
Software testing is a crucial phase of the SDLC and load testing is an integral part of any efficient testing scheme. This paper highlighted the importance of load testing with specific reference to Web Services. The design principles entailed attempted to bring about a proper plan for testing, the parameters to be looked for, and the expected results. The strategies contained in this paper can be implemented regardless of the platform on which the application is deployed and the tools used for testing.

References

  • Web Services Architecture www.w3.org/TR/2002/WD-ws-arch-20021114
  • soapUI 1.6 Beta http://soapui.org/
  • Grinder 3 Beta http://grinder.sourceforge.net/
  • OpenSTA www.opensta.org/
  • Apache Jakarta's Jmeter http://jakarta.apache.org/jmeter/index.html
  • Radview's WEBLOAD www.radview.com/products/WebLOAD.asp
  • More Stories By Bijoy Majumdar

    Bijoy Majumdar is a member of the Web Services COE (Center of Excellence) for Infosys Technologies, a global IT consulting firm, and has substantial experience in publishing papers, presenting papers at conferences, and defining standards for SOA and Web services. Prior to Infosys, Bijoy Majumdar worked as an IT Analyst, and had been a member of the GE Center of Excellence (e-center) under the E-Business Practice of Tata Consultancy Services.

    More Stories By Ujval Mysore

    Ujval Mysore is a member of the Web Services COE (Center of Excellence) for Infosys Tehcnologies, a global IT consulting firm, and have substantial experience in publishing papers, presenting papers at conferences, and defining standards for SOA and Web services. The Web Services COE specializes in SOA, Web services, and other related technologies. Dr. Srinivas Padmanabhuni heads the Web Services COE.

    More Stories By Lipika Sahoo

    Lipika Sahoo currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. Her core area of work involves dynamic adaptability and management of Web services. She is currently involved in various research activities within the group relating to MDA and AOSD.

    More Stories By Sunny Saxena

    Sunny Saxena currently works with the Web Services Centre of Excellence in SETLabs, the technology research division at Infosys Technologies, India. His interests range from Web service security platforms to aspect-oriented development models.

    Comments (1) View Comments

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Most Recent Comments
    JDJ News Desk 10/19/06 12:12:22 PM EDT

    The quality of any application is determined by the robustness and scalability of the system. It's mandatory to simulate the actual environment and test the application for preparedness. Web Services-savvy applications need a different methodology for testing in a real-world scenario. The UI-less nature of Web Services presents a significant challenge in testing such applications. The whole persona of consumer stubs with different payloads dictates the planning of Web Services load-testing schemes. This paper talks about the different aspects of load testing and areas of contention that need special attention. This will be helpful in not only building a better application but also compiling a robust, high-quality enterprise architecture.