Search code examples
javaservletsjmeterperformance-testingrequestdispatcher

Performance testing a deployed servlet application?


Currently I have a servlet based application that retrieves data from an archived database and sends it back to the client as an XML over HTTP.

I want to create an "X" test client to test my database retrieval servlet for the following:

  • Min HTTP response time
  • Max HTTP response time
  • Errors received from server

The application is almost in deployment phase of development , however I need a test client that I can use after its deployed to check the application is performing as it should or if I need to do maintenance in its environment (e.g. reindex database) say after 6 months.

I am wanting it to generate thousands of HTTP requests (spam) the application.

So far I can think of two ways to do this:

  1. Multithreaded java console app that sends multiple HTTP requests simultaneously over multiple threads from my computer.
  2. A separate java servlet that sends HTTPS requests simultaneously from one server to another over multiple threads.

I am thinking that a servlet test application would be the best for the job as its already multithreaded by default.

How would I implement this though, do I just use the requestDispatcher class to call to another servlet or is there a better way?

Any advice welcome!


Solution

  • I would suggest that you look into JMeter. It is a great tool for simulating loads on web applications/servlets (and other). You can define (branching) workflows, several threads, thread groups, delays, ramp up times etc.

    I think it would fit your option 1) criteria perfectly.

    Cheers,