For many long-time users of LoadRunner, Virtual Table Server (VTS) has been an unsupported tool that many of us have relied upon to solve dynamic data dependency issues under load. VTS is a virtual data file that multiple load generators can reference to create, modify, and consume data Think of it as a “living” data file (or table) that runs in memory. The load generators can get values from a single pool of data on the fly. One Vuser can create new data, and any other Vusers can immediately consume it. I’m not sure who originally wrote it, but it appeared on the Mercury LoadRunner forums back in the day, and everyone loved it. Here is a link from Wilson Mar’s site about it – possibly the most popular link about VTS. If you know the origin of this product, please comment below so we can give whoever created it proper credit.
A real-world example of using VTS might be a time sheet application where users need to create time sheets, and administrators need to approve and release the time sheets. The administrators would typically approve what time sheets have already been created. You could create a bunch of time sheets up front and then kick off a load test with enough data so that you wouldn’t run out over the test duration. You could delay the administrators for a certain amount of time using LoadRunner’s scheduler for individual groups/scripts. A more elegant solution is to have both running just like in real life and have the time sheet creation script writing data to a VTS table, and having the approval script consuming data from the table as it is being posted. Once it uses the data, it is taken off the list and the next Vuser grabs data from the next available row.
A lot of people have written about VTS and possible alternatives. Here is a good VTS primer from Oliver Lloyd’s blog. We even have a download on our site about how to use VTS from one of our friends – Otto Strickland. Another friend of mine in the performance testing world, Stuart Moncrieff, recently delved into to the pains of consumable parameter data with LoadRunner on his blog. He has offered an alternative to VTS by way of MySQL API calls and WAMP Server. Here is an article that delves into that. VTS has been a great friend, but it getting a little long in the tooth. I’ve been looking for an alternative and I think I have found one. In my next blog, I will reveal to you what my solution is and hopefully it will excite you as much as it did me when I found out about it.
If you have used VTS in the past, what has been your experience and what have you used it for?
Did you enjoy this article? Help spread the word by sharing:
Engage in the conversation and leave a comment:
About Scott Moore (153 articles)
With over 20 years of IT experience with various platforms and technologies, Scott has tested some of the largest applications and infrastructures in the world. He is a Certified Instructor and Certified Product Consultant in HP’s LoadRunner and Performance Center products. He currently holds HP certifications for ASE, ASC, and CI. A thought leader in the APM space, he speaks regularly at IT conferences and events