The ability to parameterize a load test during load testing has a direct impact on the validity of your test results. The fact that many people do not perform parameterization and that many others are not completely sure of what parameterization means in the context of a performance test, is the reason for my blog post today.
Parameterization refers to the ability of the tester to change various parameters in a load test on a just-in-time basis. The simplest example would be a test where each virtual user logs in to the tested application with a different UserID and Password. These UserIDs and passwords might be retrieved from a text file, a database table or they might even be auto generated by the load test software.
Parameterization does not refer to the capture of a session ID from one response, and passing it to the server on subsequent requests. This is referred to as correlation, but is sometimes confused with parameterization. Correlation is a complete topic on its own and will be discussed in a future blog post.
The first question is, “Why should I parameterize my tests?”
There are a number of reasons. Here are a few examples:
- Your application might not allow a user to be logged on more than once simultaneously.
- Through the use of different parameter values, you can avoid database caching.
- You might want to bring back multiple types of response data, and the type of response data might be a direct result of a parameter in the request.
- Requests to a database table will do a much better job of testing your indexes if they are calling for, or are inserting, a wide variety of data.
- It is more realistic for users to behave as individuals rather than as clones of each other.
- The ability to parameterize your URLs makes it easy for you to run the same test against different environments. Rather than re-scripting the test, you can merely change one parameter value.
The next question is, “How do I go about performing this parameterization?” The answer to this question depends on the performance testing software that you employ. In some of these tools, you have to write the logic into the script, using the scripting language employed by the tool. In other tools, a wizard is provided which identifies eligible parameters, and provides automated ways to provide a number of different parameter values depending on your needs. The parameter values can be pulled from text files, they can be pulled from databases via ODBC, they can be generated by the software itself following a mask that you provide and can even, in some case, be lists of values that the software has built into its codebase.
So next time you are running a load test, utilize parameterization to get the most accurate data to improve the operation of your website.
For specific questions on utilizing parameterization in a load test please contact me at firstname.lastname@example.org.