This will be a rather long post, so please bear with me. Just trying to provide good info in order to hopefully get a well-informed response.
Basically, I'm using SilkPerformer 6.0.1 at this time to try and simulate an average production-level load on our test system over time.
My project contains, say, 10 scripts (will be much more than that, but call it 10 for now). Each script does a different activity on our eCommerce (web-based) system. Script 1 does a customer lookup, script2 does an A/R settlement, etc. As it stands, each script incorporates think times such that 1 iteration of that script is realistic (so it would take 5 minutes to get through a customer lookup, for example - just as it probably does in "real life" useage).
I also have data that tells me what our average production load is for each script. In other words, data tells me that the activity which Script1 represents in "real life" happens 20 times in a 10-hour day, for example. Script2's activity may happen an average of 10 times a (10-hour) day.
What I would like to do is to create a workload to simulate this - I want a workload that tells Script1 to execute 20 times in a 10-hour period, and adjusts Script2 accordingly as well. I'd also like it to be flexible - we run for the durations we can, so today I might want to run for 24 hours, while tomorrow I can start a 120 hour test. In each test, I still want the iteration rate for each script to be the same.
The problem is, Script1 may take 5 minutes to execute. So if I use the All Day Workload, it assumes I want this running every 5 minutes for a 120 hour test - so I get far too many iterations during the test (many more than the 20 I want).
One answer might be to do the math, and add a pause at the end of each script. This way I get my desired # iterations in a given time period. The problem with that is that I have a few dozen scripts or more. Over time we'll keep re-evaluating our "average production load", and I'd have to re-do the math (pause times) for each script every time we adjust it. This could prove tedious.
Is there a way for Segue to do that math for me? I have not yet figured out how.
I tried using the Queuing Workload, but when I included think times it seemed to get goofed up. I'd end up with 10 hour tests that had *very* few transactions going on for the first 3 hours, and then some load, and then it would try to cram all the remaining transactions in at the very end of the test duration. Not a desireable load distribution. I don't think I was using Queuing as it was intended.
Any ideas? All Day Workload seemed to be the solution for me, until I ran into the issues I've posted above.
AA simple way to do this might be to use the "Workload Wizard”. Find out how many transactions an hour you want and input it into the wizard. That math is easier than trying to figure out think times and changing your script. You can also set up the workload for each transaction. Make sure you run a baseline first.
I have used this on many occasions and seem to get good results.