JMeter is an opensource testing tool that I have used recently and I felt like putting together some thoughts on its use and some general performance testing guidelines on what I’ve seen to be successful. I’m going to avoid the opensource versus vendor tool discussion having successfully used HP, Borland, Parasoft tools and most recently JMeter. Every organization and situation is different but the tool choice needs to take into account factors such as sdlc, release management process, technology stack, product (b2b/b2c) or internal app, team dynamics etc. For example, consider testing a mobile app as opposed to an internal trading system.
My experience lends itself to testing prior to production release but a growing trend in performance testing involves running performance testing in the production environment, leveraging a set of ‘cloud’ based assets. One company I like and have talked to is SOASTA, they a great group of people plus have developed a very impressive testing solution both from a GUI design and also feature set perspective. This is a powerful and useful technique and hopefully I can get some exposure to this soon…
First off you need to plan, plan, plan. Really this is the most important aspect of any testing effort (and anything really worthwhile doing in life too…). If you hear “well lets test until it breaks, that’s easy isn’t it?” I advise running for the hills! If that isn’t possible then getting everyone together and deciding on what the objectives are will really pay off when you are in the ‘throws of testing’ the release.
Here are what I see as some high-level discussion points for upcoming posts on this thread:
- Performance Objectives
- Test scenario and data design
- Functional test while you go!
- Know thy (technology) stack!
- JMeter + plugins
- JMeter sampler development
- Test environment
- Outsourcing your test lab
- Running the tests
- Compiling the run data
- Injecting performance testing to your sldc
Part 2 to follow on setting the performance objectives, which will drive the entire effort.