Chaotic Performance Tests with JMeter
Building performance tests that conform to a very specific level of load and concurrency is a standard approach to performance testing.
You determine your peak levels of load and concurrency, and you build a test that meets this.
You build soak test and scalability tests that conform to pre-determined levels of load and concurrency, and you execute these alongside the other scenarios you build to meet your performance requirements.
This is the correct approach and conforms to most organisations approach to performance testing and something you should always do; but in addition its also a good idea to build performance tests that change on each execution and put your application under a random ever changing load profile as it is not uncommon for application usage to change when new features are added or if migrating to a new solution therefore randomising your performance testing can provide you useful information on how your application will react to conditions that do not conform to your standard approach.
This blog post will look at how you can make your JMeter tests more chaotic using a variety of samplers, timers and a beanshell server.