My shop uses Visual Studio 2010 Ultimate Edition for our
test framework. Frankly, I spent a few months automating test cases using the
coded-UI style of browser automation before I decided that the “Web Performance
Test” was better suited to our testing needs. (I’ll refer to the web performance test as
webtest in the rest of this post.)
Our website makes frequent AJAX calls for server-side user
entry validation, and frankly, the recorded coded-UI tests would hang in a
non-deterministic way. Even though I inserted custom retry logic when entering
user values, the framework would hang and cause our team no end of frustration.
VSTS Web Performance Test (*.webtest)
On a happier note, I’ve had a lot of success using the webtest,
a type of test built-in to VSTS which works at the http layer rather than
through interaction with the web browser. In our case we use the webtest as a
functional test to test the server-side code, though we also use sets of them in
load tests as well.
That’s a little background on why I use webtests, but I want
to comment more about using Fiddler. If you’re not familiar with Fiddler, it’s
a free web debugging tool that logs all http and https traffic between your computer
and the internet.
Export Fiddler Sessions when Visual Studio Webtest Recorder Can't
We soon discovered to our dismay that when recording our
shopping cart wizard using a web performance test inside VSTS, that not all
http requests (read AJAX) were captured. But happily Fiddler DOES capture all this
traffic, and the bonus is that Fiddler allows you to export recorded sessions
in VSTS web performance test (.webtest) format!
Screens in Fiddler after Choosing to Export Sessions
Sometimes we’ll create a hybrid recording, creating a
webtest in VSTS. If some of the requests were not captured, we’ll capture the
workflow in Fiddler and then export it to webtest. After adding the Fiddler-exported webtest to
our project, we cut/paste the requests we want into our main webtest.
We’ve had much success using Fiddler to help us build out a
complete functional test suite of some fairly complex workflows and would have
been stymied in doing this without this great tool.