Now-a-days large
number of web applications are either consuming web services or providing their
business functions as web services. Like
the performance of accessing the application services from user interface (web
pages or desktop forms) is important for satisfaction of the end users, same
should be with web services that application is providing. I found performance requirements are not
explicitly mentioned in requirements documents, testers should ensure the
performance requirements are mentioned in requirement document similar to the
way the performance requirements are mentioned for web pages and servers.
We can test
performance of web services like the way we test the performance of normal web
applications. We can track metrics like Response Time, Throughput, Memory
Consumption, Application Server performance, I/O performance for web services
performance testing. I have worked on testing of some applications where complete
application is built on web services. It's a smart client application
which interacts with the server via web services. In such scenarios it is
difficult to performance test the application from user interface for huge
loads. In such cases we can actually test the core of the application which are
web services, rather than testing the client. Performance testing of web
services is supported many open source and commercial tools. There are some open source and free tools
available which can server basic performance testing requirements. I found
JMeter is good choice among open source tools, JMeter offers good extensibility
and scalability and has good options to performance test web services. In one of the projects, I had to test the web
services with 3000 concurrent users with huge data transfers, which is
difficult to test with some SOAP testing tools as the data exchange and
processing involved with each request is huge. JMeter is the good choice and
has good extensibility of the performance testing.
The challenges in
load testing of web services is, verification of response of each web service,
parameterization of input data, and finding error rate of the requests. We can
add assertions on web service response to check whether response is correct or
not. This may cause some overhead on JMeter to verify each response and may
affect the correct metrics. If your web services have robust logging mechanism,
the verification for correctness of response or output can be verified from log
files or log message tables.
Some considerations
while designing performance tests are, to include think time
between calling of different web service methods to when trying to achieve a
business flow, providing appropriate
ramp up time, adding more remote machines to JMeter is necessary step if we
want to test with large number of virtual concurrent users, configuring the
proper Heap memory of JMeter to accommodate more load.
0 comments:
Post a Comment