Requests vs. Pages vs. Transactions

I was recently asked about the details of transaction timers and realized that I have not made a post that clearly shows the differences between the various timers that Visual Studio collects and reports on. While there is a good help file page on this in the online documentation (, I thought I would show a simple example.

Timing Relationships

I recorded a webtest against Wikipedia and created a couple of transaction timers in the test. Then I ran the test in order to get the various timers as Visual Studio collects them. Below you can see that

  1. each request gets its own timer regardless of whether it is a primary request, a dependent request or a redirect request.
  2. each request that has dependent and/or redirect requests also gets a timer (called a page timer)
  3. each transaction timer I added to the test also gets a timer that includes the sum of all page timers for requests inside the transaction.

Webtest results annotated_small

The Effect of “Stop On Error” with Transaction Timers

Visual Studio webtests have a property called “Stop On Error” which, when set to True will cause the current iteration of the webtest to stop execution as soon as a request fails or the test encounters an error. This is NOT the default behavior, but I recommend that you set it to True because if something fails, chances are that the next requests will probably also fail. I suggest always setting this value to True.

Setting the value:

Stop On Error setting

If the test passes, there is no effect.


If Stop On Error is TRUE and the test fails, the Transaction Timer will NOT be collected or reported.


If Stop On Error is FALSE and the test fails, the Transaction Timer WILL be collected and reported


Avg Transaction Time vs. Avg Response Time

In a load test, you will see two different average values available for transaction timers: (Avg. Transaction Time and Avg. Response Time). The difference is that the Transaction time includes any think times associated with the requests inside the transaction and Response time does NOT include any think time. The below test has two transactions and only SearchResults has a request with Think Time. (NOTE: On the Summary page, the Transaction Time is referred to as Elapsed Time)