01-16-2012 11:42 AM
We have a large number of tests written in TestStand 2010 which, when we run multiple tests, the response from TestStand slows dramatically. This slowing is most noticable where there are time dependent:
Time = 0
WaitTime = 2
Verify Parameter(X) = Off
Verify Parameter(Y) = Off
Verify Parameter(Z) = Off
WaitTime = 4 FAILS
When run by itself, the test passes, but when run overnight (or several days), where a large number of tests have been run before this, the test Fails, where the WaitTime has expired. Multiple tests are typically called, using another "Main" to call the different tests. 1500 to 2000 steps in each test sequence file is typical.
Basically, as more test are run, test execution slows more and more. It appears that TestStand is using up system resources (memory).
All Reporting is OFF (Configure/ReportOptions "Disable Report Generation" is checked
(Configure/ModelOptions "Discard Results or Disable Resutls when not required by Model" is checked.) (doesn't matter since reporting is off)
I don't think that it's the reporting that is using the resources.
I'm suspecting the sequences are not being unloaded after exectuion and using up memory, so that eventually memory is swapped to disk (my computer has 3 GB memory, this is typical for the other systems as well).
Three Questions:
1. I'm investigating TestStand's cache of steps that have been executed.
In the Step "Run Options" is the "Unload Option".
Typically we have a "Main" that calls a large number of subsequences, each is an individual test case.
Can I change the "Unload Option" for these subsequence calls (in the "Main" sequence only) to "Unload after step executes"? Will this unload all steps that were call recursively to free up the system resources that were used by the subsequence call and down (recursively)? Or will it just unload THIS step?
2. I'm aware that there is a "New Execution" that can be used (when complete, unloads all steps), but this doesn't allow passing Parameters to the subsequence easily.
However, could I use "New Execution" for all those subsequence calls that do NOT require arguments.
3. Is there another option that I can use to free up system resources more globally?
Mike
01-16-2012 01:07 PM
Mike,
even though you have switched off the report generation, Teststand is still recording all the results of steps which are set to Record. Therefore you will be filling up the ResultList variable, which usually the cause of TestStand slowing down after longs runs.
If you dont need to record this data then switch it off in the Configure | StationOptions.. select the Execution Tab. Enable " Disable Result Recording for All Sequences"
01-16-2012 03:08 PM
Ray,
The field:
"Disable Result Recording for All Sequences"
is checked,
However, under "Interactive Executions" the "Record Results" is check, will this make any difference if I uncheck that field?
Mike
01-17-2012 02:17 AM
Only if you are running interactive executions which I didn't think you were.
Go into the Sequence Properties of the MainSequence of your top level sequence file and enable "Disable Result Recording for all Steps"
01-25-2012 09:25 AM
Turns out that I don't seem to have an issue here (Test Execution slowing down after long tests).
I've been doing some benchmark testing and the test execution is not slowing down. (at least, not that I've been able to detect so far).
Thanks for the help though!!
Mike