I have been doing a lot of performance testing lately, and one of the worst things that can happen during a performance run, is when you don’t get any results. Performance testing is expensive, from a time and resources perspective, so getting results from a run is paramount.
In my scenario, I have everything automated to kick off a performance run, at 7.00pm every night, run for 12 hours, then terminate. I collect metrics via Visual Studio Team Suite which is used to drive my performance tests, but I also have automated the collection of performance metrics on all related servers (web, sql etc…)
On one of my recent runs, I came into the office in the morning, and checked on the test rig. The test appeared to be still running, even well beyond the termination time. VSTS reported that it was trying to abort the test, but things were still running. Some of the test agents refused to respond.
I pressed the stop button to stop the test in VSTS and while I was waiting for that, loaded up the test results so far. The business were eagerly awaiting the results of the tests and it looked promising so far.
Visual Studio began to refuse to respond after a while and was continuing to try and stop the test. After a long wait, I simply killed off the devenv.exe process, and restarted the Visual Studio Test controller service.
I then went to load my test data from the run. Oh dear, the test run that I was looking at not more than half an hour ago, did not appear. Nothing listed on the ‘Completed Tests’ tab, and nothing within the ‘Manage Test Results’ option either.
Crap. A business person walks by and asks how the test run went. “Still analysing the data” was my response. Double crap. What to do.
After looking at the SQL database where the load results are stored, it was apparent there was a bunch of data in there, that simply was not showing. Looking through the raw data did not appeal to me very much.
I had a look in the ‘LoadTest’ table in the LoadTest database I was using to see if there was any data.
I noticed there was no ‘End Time’ defined for my run. It was simply set to NULL
. The Start Date was correct, so I simply copied the StartTime to the EndTime column, changed the date to the next day, and set the time to AM instead of PM (thus setting my 12 hour run).
And now I have normal access to all my test results. Whew…. crisis averted.
Hope this helps someone.