I wrote http://tjhunt.blogspot.co.uk/2014/04/load-testing-moodle-262-at-ou.html just over a year ago, and that is still what we do. (We upgraded to Moodle 2.8 this morning as it happens. Fingers crossed when we get in tomorrow and look at the performance data from the live servers, it shows the same small perf improvements we saw in load-testing.)
So, most people in the Moodle world use JMeter, not Visual Studio, and some of those tools have been shared.
You are right to think about reset, because if your load-test scripts keep posting to the same forums until you have 200-post forum threads, then your strangely those threads take longer to display that the 10-post threads you started with
You may be able to use Moodle's course reset feature (or a simple script that calls the same back-end code) to do that.
But, I would not necessarily worry about resetting the whole site. When we load-test (on a copy of our system) the simulated load targets just a handful of courses (that we have selected with a bit of care). We leave all the data of the other courses, so that the size of the database is about the same as on our live site. I mean, "test as if no one has ever taken a course" is artificial. You want to test as if 1000s of people have already taken a course, and 100s more people start a new course (whatever numbers are realistic for you).