I am working on a Java app running in Tomcat with Mysql. I am wondering about what strategy to take for this task.
So far the only tools I know of for the job are JMeter and Siege. I also don't know what strategy to take with these tools. Do I just test every request I can make or is there a general practice for identifying pain points?
We perform a lot of load testing services on behalf of our clients - and we always recommend an agile, iterative approach to load testing. This is especially true when schedules are tight.
First, be sure you are clear on the goals of your testing. What questions to you want to answer when you are done? Common goals are:
- What are the page durations when NNN users are on the site?
- How many users can the site handle while maintaining our performance goals of 4 second page load times
- How many users does it take to crash the site?
With the goals in mind, we recommend that you start by building the most critical testcase and run a test. The quicker you get to running tests, the sooner you can address system-wide or architectural performance problems. Run a test, optimize/fix the application if necessary, and when it satisfies the performance goals, add another testcase. Continue that cycle until you are either (1) satisfied with the test results and coverage or (2) you run out of time and/or budget.
Choosing which testcases to start with can be challenging - I've got some more detailed advice on our blog.
Finally, make sure you choose a testing tool that is going to support your goals and the level of productivity you need to meet your schedule. Items to consider:
- How long does it take to get a typical testcase working?
- Does it provide any analysis of the data, or does the task of analyzing the mountain of data generated during the test fall to the user?
- Can the tool gather server metrics and integrate them into the reports and/or analysis?
Naturally, I recommend taking a look at our product (Web Performance Load Tester), but it is prudent to try at least a few tools to see which one best suits your needs.
I also use some web base service (LoadStorm) to help with load testing... it has some pointers and articles on load testing
http://loadstorm.com/load-testing