As a performance engineer, I have been engaged in many performance testing projects. You can imagine that I experienced all kinds of challenges regarding estimating and simulating realistic load patterns. There are some pitfalls which you should avoid.
Initially, you must clarify whether you will test a brand-new system or if it's already in production. The correct pattern for the latter can easily be derived, but the former is more challenging.
A brand-new application
Let's assume you will prepare a workload for a new business application. You have no reference system or production environment where real users do day-to-day activities. All your client told you was how many users would have access to this business application.
How many concurrent users would you simulate?
I use Little's Law in such cases because this allows you to make a realistic calculation.
Little’s law: Latency = Load / Throughput
Latency: Session time of your use case or business transaction
Load: Concurrent user
Throughput: Expected number of business transactions per interval
Latency and Throughput are often part of performance requirements.
Let's calculate the load or concurrent user for this example:
Number of users: 1000 users will work with the new application
Latency: 30 seconds for a typical business transaction
Throughput: 600 transactions per hour
30 * (3600/600) = 180 concurrent user
Given the sample above, you can schedule a performance test with 180 concurrent users. There is no need to run a test with 1000 simultaneous users because those will most likely never use this application simultaneously.
An already-in-production application
You can take the real user monitoring statistics and derive the required figures, such as concurrent users per interval, the number of business transactions, or realistic session times. Remember to account for growth rates and schedule regular, peak, and future growth test runs.
If you follow my advice, I promise that you will calculate realistic workloads in the future. I am looking forward to your experience with load patterns.
Tools for Workload Modeling
We've created a Toolbox for Performance Engineers to calculate essential details for your realistic performance test, such as:
# Sessions
# Concurrent Users
# Session Time
# Impact on Sales
Use this link to get started for free
Happy Performance Engineering!
Comments