<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'tsbt-tst'</title><link>http://blogs.msdn.com/search/SearchResults.aspx?tag=tsbt-tst&amp;o=datedescending</link><description>Search results matching tag 'tsbt-tst'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>New Web and Load Test Features in Beta2</title><link>http://blogs.msdn.com/edglas/archive/2009/10/21/new-web-and-load-test-features-in-beta2.aspx</link><pubDate>Wed, 21 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910895</guid><dc:creator>edglas</dc:creator><description>&lt;p&gt;In beta2 we added a number of new minor features, and a couple of major ones.&lt;/p&gt;  &lt;p&gt;We also changed our licensing model, which you can read about &lt;a href="http://blogs.msdn.com/edglas/archive/2009/10/20/introducing-the-microsoft-visual-studio-load-test-virtual-user-pack-2010.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here is a list of the minor features we added, along with a brief description of each. The last one in the list, compare two runs in Excel, is probably my most favorite feature in the entire release.&lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; width: 6.95in; border-collapse: collapse; border-top: medium none; border-right: medium none; mso-border-top-alt: solid #4f81bd 1.0pt; mso-border-top-themecolor: accent1; mso-border-bottom-alt: solid #4f81bd 1.0pt; mso-border-bottom-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" class="MsoTableLightShadingAccent1" border="1" cellspacing="0" cellpadding="0" width="667"&gt;&lt;tbody&gt;     &lt;tr style="height: 15pt; mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: #4f81bd 1pt solid; border-right: medium none; padding-top: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 5" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Area               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: #4f81bd 1pt solid; border-right: medium none; padding-top: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Title               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: #4f81bd 1pt solid; border-right: medium none; padding-top: 0in; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Description               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 0"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Recorder             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Recorder options in tools options             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Starting URL&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt; supplies a default url to start recording from.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Two new options to &lt;b style="mso-bidi-font-weight: normal"&gt;control whether or not&lt;/b&gt; the recorder does &lt;b style="mso-bidi-font-weight: normal"&gt;hidden field matching&lt;/b&gt;, and whether or not it runs the &lt;b style="mso-bidi-font-weight: normal"&gt;dynamic parameter detection&lt;/b&gt; tool after recording completes.              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Recorder             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Recorder records all requests by default, fold dependents under page             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;In 2008, static dependents not found by the dependents parser were not recorded by default. Now they are.&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 2"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Web test              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;search/replace             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Search and replace in web test requests!             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 3"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Playback             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Add request bytes column             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Request byte count is now shown in request list pane in playback (in addition to response byte count)             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 4"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Playback             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;PreRequestDataBinding event             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;This new event fires before data binding occurs, allowing a plugin to dynamically change data bindings in a request.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 5"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Data binding             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;64 bit csv             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;This fixes a limitation we had in beta1, and now enables csv data sources on 64 bit machines.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 6"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Data binding             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;New APIs on WebTest to control data cursor position and reload data             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Give full control over the cursor, enabling tight control of which user is using what data. Also reload enables refreshing a datasource during the test.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 7"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Load Test             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Scrub counter sets             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;We refreshed the set of counters being collected, thresholds, and default counters.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 8"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Analyzer             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Add standard deviation and 99&lt;sup&gt;th&lt;/sup&gt; percentile stats to load test analyzer              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;             &lt;p&gt;&amp;#160;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 9"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Analyzer             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Graph instance 0 for CPU on local runs by default             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Fixes the problem documented in &lt;a href="http://blogs.msdn.com/edglas/archive/2009/05/19/are-you-reporting-inaccurate-performance-numbers-with-vs-2008.aspx"&gt;this post&lt;/a&gt;.              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 10"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Analyzer             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Specify range for a counter (CPU range is 100)             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Now you can specify a range for a given counter. Also percentage counters get a range of 100 by default.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 11"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Analyzer             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Fixed range on perf graph             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;The performance graph now gets a default range set for it (range is rounded up response time of the slowest measurement)             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 12"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 68" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-font-weight: bold"&gt;Analyzer             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Computer tags             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; background: #d3e0ef; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-background-themecolor: accent1; mso-background-themetint: 63" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Computer tags enable you to classify computers by function (e.g. web server, db server, etc.). Also enables run to run comparison even if the runs are on different physical machines.             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt; mso-yfti-irow: 13; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 77.4pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-bottom-themecolor: accent1" valign="top" width="103" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt; mso-yfti-cnfc: 4" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Reporting               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 171pt; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-bottom-themecolor: accent1" valign="top" width="284" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;Compare two runs in Excel               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; width: 3.5in; padding-right: 5.4pt; height: 15pt; border-top: medium none; border-right: medium none; padding-top: 0in; mso-border-bottom-themecolor: accent1" valign="top" width="280"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="color: black; mso-ascii-font-family: calibri; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-hansi-font-family: calibri; mso-bidi-font-family: calibri"&gt;This is a new, rich reporting option that enables you to compare performance and resource utilization data in two different runs.               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Ed.&lt;/p&gt;</description></item><item><title>Getting Started with Visual Studio 2010 Beta 2</title><link>http://blogs.msdn.com/edglas/archive/2009/10/20/getting-started-with-visual-studio-2010-beta-2.aspx</link><pubDate>Tue, 20 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910123</guid><dc:creator>edglas</dc:creator><description>&lt;p&gt;As you are probably already aware, Visual Studio Beta 2 is now available for download, see the landing page &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;For load testing, you will need to download and install: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Visual Studio Ultimate Beta 2 (x86)&lt;/p&gt;    &lt;p&gt;Visual Studio 2010 Team Agents Beta 2 (x86)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ultimate is the new equivalent of Team Suite, and contains Web performance tests and load tests. &lt;/p&gt;  &lt;p&gt;Team Agents contains the controller and agents. Note that the x86 agent contains both 32 and 64 bit assemblies, so if you are looking for the 64 bit version of the load agent, this is the download you need. &lt;/p&gt;  &lt;p&gt;As I posted here, we have moved to a virtual user license model. Ultimate is limited to 250 virtual users and one core of the CPU. To generate more than 250 users and use all cores on your machine, you will need to install a virtual user pack.&lt;/p&gt;  &lt;p&gt;The most straight forward way to do this is to install a controller and agent (or multiple agents) on the same or separate machines.&lt;/p&gt;  &lt;p&gt;We have re-architected the controller and agent setups such that setup does little more than lay down the assemblies, while a post-setup configuration tool does the heavy lifting to get the machine configured. The configuration steps are the ones that typically fail, so rather than having to reinstall the entire product and go back through all the configuration steps, if one part fails you only need to reconfigure that part. We have also enabled command line versions of both setup and the configuration tools.&lt;/p&gt;  &lt;p&gt;Here is the controller config tool with options called out:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/GettingStartedwithVisualStudio2010Beta2_BB35/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/GettingStartedwithVisualStudio2010Beta2_BB35/image_thumb_1.png" width="479" height="450" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So you will need to fill in the controller service user using a user with counter collection access to your systems under test (same as in VS 2008), and then configure the load test database in the “Configure for load testing” section.&lt;/p&gt;  &lt;p&gt;To&amp;#160; add virtual users, start a Visual Studio Command prompt as Administrator (on Vista or Win7, just type Visual Studio Command Prompt in the search window, on XP you’ll find this under the Visual Studio group in the start menu). Then run this command line:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;TestControllerConfig licenses /addkey:V10000&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This will license the controller for 10,000 virtual users. Note that this license is temporary, and will only work in beta2. For RTM, we will only offer the 1,000 user license pack. If you have a Volume License, you will be able to get your license key from the volume licensing site, and then enter a count of licenses you want to install.&lt;/p&gt;  &lt;p&gt;Once you have a virtual user license installed, that license can also be used for local runs (that is, the runs do not have to go through the controller).&lt;/p&gt;  &lt;p&gt;If you just want to do local runs, and not use the controller and agent, you can run this from the command line to install the virtual user license:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;VSTestConfig licenses /addkey:V10000&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This enables you to exceed 250 users for local runs, and unlocks all the cores on your CPU.&lt;/p&gt;  &lt;p&gt;Ed.&lt;/p&gt;</description></item><item><title>Introducing the Microsoft Visual Studio Load Test Virtual User Pack 2010</title><link>http://blogs.msdn.com/edglas/archive/2009/10/20/introducing-the-microsoft-visual-studio-load-test-virtual-user-pack-2010.aspx</link><pubDate>Tue, 20 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909941</guid><dc:creator>edglas</dc:creator><description>&lt;P&gt;In Visual Studio 2010, we are changing our load test licensing model. In VS 2005 and VS 2008, we shipped the load agent, which was licensed by CPU on the machine generating load. In Visual Studio 2010 &lt;STRONG&gt;we are changing our license model to a virtual user based model&lt;/STRONG&gt;. This new license model offers a number of &lt;STRONG&gt;advantages&lt;/STRONG&gt; for you, which is ultimately why we chose to make the change: &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Still way less expensive than our competition.&lt;/LI&gt;
&lt;LI&gt;Enables better purchasing planning and allows an apples to apples price comparison with competitors.&lt;/LI&gt;
&lt;LI&gt;Enables more flexible machine allocation for load generation.&lt;/LI&gt;
&lt;LI&gt;Enables you to use agents for more than just load testing.&lt;/LI&gt;&lt;/OL&gt;
&lt;H2&gt;Still Way Less Expensive than our Competitors&lt;/H2&gt;
&lt;P&gt;Your initial reaction may be “Groan – that means that Microsoft is going to be just as expensive as those other tools!” But that is &lt;EM&gt;not &lt;/EM&gt;the case at all, we were careful to maintain the per-virtual-user price we set out initially with VS 2005. With VS 2005 and VS 2008 load agents, the price was around $5,000 per load agent CPU, and our general guidance was that for a typical load test expect around 1,000 virtual users per CPU. We are not yet disclosing our pricing yet, but I can tell you our goal is to stay in this same ball park with VS 2010.&lt;/P&gt;
&lt;H2&gt;Better Planning and Comparison&lt;/H2&gt;
&lt;P&gt;With the VS 2008 load agent, we often get questions from customers doing purchasing planning asking “How many load agents do we need to purchase? We are planning to test up to 5,000 virtual users.” To which our answer with VS 2008 was “we do not know, it depends on your application and test scripts.” Of course this it difficult to know how many agents to purchase until actually doing testing, which was often too late. With virtual user licenses, purchasers will know exactly how many licenses to buy. &lt;/P&gt;
&lt;P&gt;The old CPU-based license model also makes it very difficult to compare prices with competitive solutions. Most competitive products are licensed by virtual user and data collectors. If you know how many virtual users you want to test to, but do not know how many agents you will need to generate that number of users, it is impossible to make a comparison. With the Visual Studio Load Test Virtual User Packs 2010, if you know the virtual user count you want to test to, &lt;STRONG&gt;you will know exactly how many licenses to purchase&lt;/STRONG&gt;, and be able to &lt;STRONG&gt;compare directly with competitive solutions &lt;/STRONG&gt;you may consider.&lt;/P&gt;
&lt;H2&gt;Enables More Flexibility with Load Generators&lt;/H2&gt;
&lt;P&gt;The virtual user license offers flexibility with the machines you use as load generators. &lt;/P&gt;
&lt;P&gt;With VS 2008, to get the full value of the per-CPU license, you had to run on fast CPUs, often requiring new hardware purchases. Also the license was locked to a particular machine, restricting which machines you could use as load generators. With Visual Studio 2010, you can now run virtual users on older hardware with no “penalty”, as &lt;STRONG&gt;you can line up as many older machines as you wish to generate the target number of virtual users&lt;/STRONG&gt;. Also, the virtual user license is now tied to the controller, not the agent machine, so &lt;STRONG&gt;you are allowed to move agent machines in and out of the agent pool&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;For some tests, you may run out of some other resources before running out of CPU. The most common case for this in VS 2008 was load agents running out of memory before CPU (especially for web tests with very large post bodies or very large responses), which prevented customers from realizing the full value of their license. With the virtual user license, if this happens you can &lt;STRONG&gt;simply add more machines to the agent pool to achieve the load you are targeting&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H2&gt;Visual Studio 2010 Agents: More than just Load Generators&lt;/H2&gt;
&lt;P&gt;With the high cost of the agent license, we did not have a viable solution for distributed functional testing. In Visual Studio 2010, agents are now included at no extra cost with VS Premium, Ultimate, and Test Elements. We’ve added Data Collection facility to agents, and added new UI automation test type, which opens up a bunch of new scenarios for using agents. &lt;/P&gt;
&lt;H2&gt;What if I already have VS 2008 Load Agents?&lt;/H2&gt;
&lt;P&gt;If you have purchased VS 2008 load agents with software assurance, you will be able to migrate your existing licenses to a commiserate set of Virtual User License Packs. We will iron out the details and mechanics of this once we get closer to RTM.&lt;/P&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;You can see there are many advantages to you with the new licensing model.&lt;/P&gt;
&lt;P&gt;Ed.&lt;/P&gt;</description></item><item><title>Using The Virtual User Activity Chart to Understand the VS Load Engine</title><link>http://blogs.msdn.com/edglas/archive/2009/10/19/using-the-virtual-user-activity-chart-to-understand-the-vs-load-engine.aspx</link><pubDate>Mon, 19 Oct 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9908886</guid><dc:creator>edglas</dc:creator><description>&lt;p&gt;In dev10 we’ve added a new Virtual User Activity Chart that shows virtual user activity. Each row on the chart is a virtual user.&lt;/p&gt;  &lt;h3&gt;Covering the Basics of the Chart&lt;/h3&gt;  &lt;p&gt;See Sean Lumley’s post &lt;a title="VSTS 2010 Feature- Load test virtual user activity visualization" href="http://blogs.msdn.com/slumley/archive/2009/06/09/vsts-2010-feature-load-test-virtual-user-activity-visualization.aspx"&gt;VSTS 2010 Feature- Load test virtual user activity visualization&lt;/a&gt; to see an over view of the Virtual User Activity Chart.&lt;/p&gt;  &lt;p&gt;Below is the test view of the chart, which shows which shows which test a user is running. This load test has 25 user constant load, with three unit tests in it: Fast (takes 1 second to execute), Medium (takes 5 seconds to execute), and Slow (takes 10 seconds to execute), using the Sequential Test Mix (which I will go into more detail on later in the post).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_28.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_13.png" width="851" height="322" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Zooming in and using Paint to group 5 users at a time for easy counting, the chart shows 25 rows, one for each user.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_32.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_15.png" width="201" height="391" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Zooming in using the zoom bar on the chart, you can see user 0 first ran the fast test, then the medium test, then the slow test:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_36.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_17.png" width="797" height="208" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Which is confirmed by hovering over the purple Medium test bar:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_40.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_19.png" width="244" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This view shows you exactly what each virtual user was executing during the test, so it will enable you to see patterns of user activity, load patterns, and correlate failed or slow tests and requests with other virtual user activity.&lt;/p&gt;  &lt;p&gt;Another use of this view is it really helps you understand what the load engine does.&lt;/p&gt;  &lt;p&gt;In this post, I’ll review various properties in the load engine and show the details view so you can see the effect these properties have.&lt;/p&gt;  &lt;h2&gt;Understanding Test Mixes&lt;/h2&gt;  &lt;p&gt;First, I’ll show different test mixes and their corresponding details view, using tests that will accentuate the differences in the mixes.&lt;/p&gt;  &lt;p&gt;I’ll use three tests, long, medium and short. Long runs for 10 seconds, medium for 5 seconds, and short for 1 second. &lt;/p&gt;  &lt;h3&gt;Test Mix Based on Number of Tests Started&lt;/h3&gt;  &lt;p&gt;Here is the Activity Chart for this test mix, with 34% Fast, 33% Medium, 33% Slow. With this mix, as each user finishes a test, the user randomly selects the next test based on the test weightings. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb.png" width="828" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One think you’ll notice is the predominance of Yellow, and lack of Blue. You wouldn’t think it to look at the user details view, but at the end of this test, the count for each test type is roughly the same. Since the Slow test runs 10x slower than the fast test, there is 10x more yellow than blue.&lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; width: 68.18%; border-top: #d4d0c8 1pt solid; border-right: #d4d0c8 1pt solid; mso-cellspacing: 0in; mso-border-top-alt: solid #d4d0c8 .75pt; mso-border-right-alt: solid #d4d0c8 .75pt; mso-yfti-tbllook: 1184" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="68%"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Name &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Total Tests &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Avg. Test Time (sec) &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;span style="color: blue"&gt;Slow&lt;/span&gt; &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;912 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;10.0 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;span style="color: blue"&gt;Medium&lt;/span&gt; &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;934 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;5.00 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;span style="color: blue"&gt;Fast&lt;/span&gt; &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;1,012 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;1.00 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;34/33/33 Test Mix Based on the Number of Virtual Users Starting Tests&lt;/h3&gt;  &lt;p&gt;What this mix is doing is trying to keep, and any given time, the mix of virtual users running the tests to hit the percentage specified. Given the fast test starts and ends so quickly, you would expect a lot of more iterations of the fast test which is exactly what we see, a lot more blue:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_2.png" width="824" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; width: 68.18%; border-top: #d4d0c8 1pt solid; border-right: #d4d0c8 1pt solid; mso-cellspacing: 0in; mso-border-top-alt: solid #d4d0c8 .75pt; mso-border-right-alt: solid #d4d0c8 .75pt; mso-yfti-tbllook: 1184" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="68%"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Name &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Total Tests &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Avg. Test Time (sec) &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Slow &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;472 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;10.0 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Medium &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;952 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;5.00 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Fast &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;5,329 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;1.00 &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Test Mix Based on User Pace&lt;/h3&gt;  &lt;p&gt;In this test, I’ll run the same three tests, and specify they each run 120 times per hour. I chose 120 since it will take 16 seconds to run all three tests, so if I run each twice a minute, I should get a nice graph with about half the time spent running tests. Of course, this mix is not intended to be used this way, it should be used to model your user behavior (how many times an hour do you expect a user to do a particular action).&lt;/p&gt;  &lt;p&gt;Now we see a very different graph, with a lot of pacing time between iterations:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_3.png" width="805" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; width: 68.18%; border-top: #d4d0c8 1pt solid; border-right: #d4d0c8 1pt solid; mso-cellspacing: 0in; mso-border-top-alt: solid #d4d0c8 .75pt; mso-border-right-alt: solid #d4d0c8 .75pt; mso-yfti-tbllook: 1184" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="68%"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Name &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Total Tests &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 4.8pt; padding-right: 0.75pt; background: #ece9d8; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Avg. Test Time (sec) &lt;/span&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;a href="test:2"&gt;&lt;span style="color: windowtext; text-decoration: none; text-underline: none"&gt;Slow&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;174&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;10.0 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;a href="test:1"&gt;&lt;span style="color: windowtext; text-decoration: none; text-underline: none"&gt;Medium&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;177 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;5.00 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;&lt;a href="test:0"&gt;&lt;span style="color: windowtext; text-decoration: none; text-underline: none"&gt;Fast&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;Scenario1 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;183 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #d4d0c8 1pt solid; border-left: #d4d0c8 1pt solid; padding-bottom: 0.75pt; padding-left: 0.05in; padding-right: 0.75pt; border-top: medium none; border-right: medium none; padding-top: 2.4pt; mso-border-left-alt: solid #d4d0c8 .75pt; mso-border-bottom-alt: solid #d4d0c8 .75pt" nowrap="nowrap"&gt;         &lt;p style="line-height: normal; margin-bottom: 0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 8.5pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;"&gt;1.00 &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;Test Mix Based on Sequential Test Order&lt;/h3&gt;  &lt;p&gt;With this mix, each user simply runs the tests in the order you specify in the mix, which is easy to conceptualize and super-easy to see:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_4.png" width="820" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;The Effect of Think Time Between Iterations and Warmup Duration Properties&lt;/h3&gt;  &lt;p&gt;As you can see from this last detail view, this test has all users going lock step through the application, all doing exactly the same thing at the same time. While this may be useful for doing stress testing, it is not realistic user behavior, which is why we have the other test mixes which do a better job of varying what users are doing.&lt;/p&gt;  &lt;p&gt;Another way to vary what users are doing and introduce pacing into a scenario is by using Warmup Duration and Think Time Between Iterations. Think Time Between Iterations is especially important if your test only has a single web test in it (thus no think time), or you are running a unit test with no pacing (for unit tests this is implemented via sleep calls, but never use sleep calls in a web test).&lt;/p&gt;  &lt;p&gt;Here’s what happens when I put a 30 second warmup in the last test:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_5.png" width="833" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you can see the virtual users stagger their start over 30 seconds.&lt;/p&gt;  &lt;p&gt;And here is the same test (no warmup) with a 5 second think time between iterations:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_7.png" width="847" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The variations are due to the Normal Distribution think time profile that is applied by default. This profile will vary the specified think time using a normal distribution (bell curve).&lt;/p&gt;  &lt;h3&gt;The Effect of Percentage of New Users&lt;/h3&gt;  &lt;p&gt;Now I am going to clear the delay between iterations, and use 100% new users. What I’d expect here is that each user will only run one test, leading to a lot of rows in the view, which is exactly what happens:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_8.png" width="244" height="180" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Scrolling up vertically one screen shows this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_9.png" width="244" height="180" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So you can see the load engine repeatedly starting new users. As one group of 10 users completes, the next group of 10 starts. New users have a clean cache and cookie container, which matter for web tests.&lt;/p&gt;  &lt;p&gt;Different mixes interact differently with the percentage of new users:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Sequential Mix as you can plainly see above, we made the design decision on sequential mix to have each new user run each test once. &lt;/li&gt;    &lt;li&gt;With Test Mix Based on Sequential Test Order and Test Mix Based on Number of Tests Started, each user runs one test. &lt;/li&gt;    &lt;li&gt;Test Mix Based on User Pace ignores the percentage of new users altogether, as the mix relies on a repeat user to establish the proper pacing. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;The Effect of Test Mix Init and Terminate Tests&lt;/h3&gt;  &lt;p&gt;Init and terminate tests one once per each user. Switching my test back to 0 percent new users, and adding an init and terminate test shows the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_62.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_27.png" width="875" height="235" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Where the legend shows&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_44.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_21.png" width="134" height="88" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This clearly shows &lt;strong&gt;the init test running once per virtual user&lt;/strong&gt;, as the very first test executed, exactly as it should. &lt;/p&gt;  &lt;p&gt;But wait! Where is the terminate test? It is not in the legend, and does not show up scrolling the view all the way to the end of the test. This shows the terminate test only gets called when a cooldown period is configured in the load test. Re-running with a 30 second cool down demonstrates this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_66.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_29.png" width="883" height="254" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_48.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_23.png" width="141" height="111" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Understanding Load Patterns with the Virtual Users Activity Chart&lt;/h3&gt;  &lt;p&gt;Each of the above tests uses a constant user load of 25 users. Now I’ll use the chart to show how Step Load and Goal-based load based loads add users. For these tests, I’m going to use just one test in the mix, the 1 second fast test, to draw attention to the load pattern rather than the test mix.&lt;/p&gt;  &lt;h3&gt;Step Load&lt;/h3&gt;  &lt;p&gt;Here’s the Activity Chart for a step load pattern adding 10 users every 10 seconds until 100 users is reached. Notice the vertical scroll bar to scroll up to see the remaining users. Zooming in on the first 30 seconds shows the first 30 users created.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_24.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_1.png" width="244" height="169" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_30.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_10.png" width="118" height="231" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The step load Step Ramp Time property enables you to ramp the users added at each step. I highly recommend using this for every step load pattern, particularly if you are using large steps. Here I set a step ramp of 5 seconds, which shows users ramped up for each step over 5 seconds.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_34.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_11.png" width="244" height="165" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_38.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_12.png" width="115" height="252" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Goal Based Load&lt;/h3&gt;  &lt;p&gt;For a goal based load pattern, it is important that the counter you are seeking the goal on has a direct correlation with the load at each interval. So for this demonstration I put a tight loop in my test to provide a direct correlation between CPU on the load agent and the virtual user count. For this test, I also did a step load before hand to see what a good CPU range would be.&lt;/p&gt;  &lt;p&gt;Here’s user load:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_50.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_14.png" width="244" height="130" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Let’s look at the Activity Chart for the areas where the dips are:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_52.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_16.png" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here you can see virtual users stopping as they finish an iteration in order to achieve a lower load. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_56.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_24.png" width="244" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Scrolling up, you can see that new users are added to the test to move the load back up.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_58.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/UsingDetailsViewtoUnderstandtheVSloadeng_D21A/image_thumb_25.png" width="212" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One thing that surprised me here is that users are not recycled. That looks like a bug to me!&lt;/p&gt;  &lt;h3&gt;Conclusion&lt;/h3&gt;  &lt;p&gt;Hopefully this post unravels some of the properties of the load engine, and it shows you just one of the ways you can leverage the new Virtual User Activity Chart in dev10 to understand exactly what your load test is doing!&lt;/p&gt;</description></item><item><title>Increasing the ROI of our Automation</title><link>http://blogs.msdn.com/edglas/archive/2009/06/13/increasing-the-roi-of-our-automation.aspx</link><pubDate>Sat, 13 Jun 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9740580</guid><dc:creator>edglas</dc:creator><description>&lt;P&gt;A while back I posted &lt;A href="http://blogs.msdn.com/edglas/archive/2008/08/15/so-you-want-to-automate-your-test-cases.aspx" mce_href="http://blogs.msdn.com/edglas/archive/2008/08/15/so-you-want-to-automate-your-test-cases.aspx"&gt;this on automation&lt;/A&gt;. I want to resurface this topic now, as it has been on my mind a lot lately as we develop dev10. What is the “right” approach for automation? How do we make it pay off?&lt;/P&gt;
&lt;P&gt;Automation is hugely important for us. It enables us to ensure our software works on a myriad of OS (XP, Vista, Win7, Server 2003, Server 2008), processor architecture (x86, ia64), and language (English, German, Japanese, Chinese, etc.) combinations. &lt;/P&gt;
&lt;P&gt;At the end of the day, return on investment is what it is all about. Is it faster to develop and maintain an automated test case, or simply run the tests manually? If over the lifetime of a test case you spend more time fixing it than it would have taken to run the test manually for each time you ran the automated test, that test has not paid off. This is basic and obvious, but often times get overlooked when considering automation.&lt;/P&gt;
&lt;P&gt;Going back a bit in history to the VS 2005 release when we initially introduced load testing, we made a few huge mistakes with our approach to automation, mistakes which I see others repeating over and over:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;My test team wrote automation exclusively using UI automation. &lt;/LI&gt;
&lt;LI&gt;My test team owned developing and maintaining the automation. &lt;/LI&gt;
&lt;LI&gt;Dev “unit tests” were not considered “automation”.&lt;/LI&gt;
&lt;LI&gt;Devs and testers used different test automation frameworks.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;With dev10, we have reversed each of these, and are benefitting greatly from it.&lt;/P&gt;
&lt;P&gt;One thing I really want to emphasize is the cost of maintaining our UI automation. I have not looked at the exact number, but &lt;STRONG&gt;in the course of developing dev10 nearly every single UI automation test case has broken&lt;/STRONG&gt;. Contrast that with our tests that test at the API layer, I estimate that &lt;STRONG&gt;fewer than 10% have broken&lt;/STRONG&gt;. To add insult to injury, the &lt;STRONG&gt;UI tests are hugely expensive to fix&lt;/STRONG&gt;. API tests that break nearly always give compile errors, which are easy to fix. UI tests do not fail until you run them, and then you have to grovel through the test log to figure out what UI controls have changed to cause the failure, make a fix, rerun the test (perhaps to find another failure), all of which is extremely time consuming. &lt;/P&gt;
&lt;H3&gt;Increasing our ROI: A Cost-Based Approach to Automation&lt;/H3&gt;
&lt;P&gt;For dev10, we have developed four methodologies for automation, and consider each when considering how to automate testing of particular functionality. We give preference to the lowest cost approach. That is, if we can use a cheaper approach to automate, we do it that way and we don’t automate everything through the UI. In fact, the UI is the least favored approach, and is only done if none of the other approaches will give us the coverage we need. The approaches, in order of preference, are:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Unit tests&lt;/STRONG&gt; that run in the test process. Really “unit test” is a misnomer for most of these tests, as they typically test a broader area than a pure unit test. I prefer to call these tests API tests. The defining characteristics of these tests is that they are hosted by the test process. &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb.png" width=244 height=94 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;An example of this for our load test product is we have tests that run requests through our web test engine. &lt;BR&gt;&lt;BR&gt;Another example is in our TCM server product. Nearly all of the automation for TCM server has been developed using this approach. &lt;BR&gt;&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Command line tests&lt;/STRONG&gt;. With this approach we have “unit tests” that spawn our command line. The test code then waits for the command to complete, and then uses APIs to validate the command did the right thing. We use this approach for both web and load test features and for our TCM server. &lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb_1.png" width=410 height=112 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb_1.png"&gt;&lt;/A&gt; &lt;BR&gt;For example, for load tests we have tests that run a load test from the command line, then access the load test database to ensure the results were as expected. This gives us substantial coverage of our web and load test feature set. &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;API tests&lt;/STRONG&gt; that run in the process under test. mstest has a feature that enables processes other than vstesthost.exe to host the test code. An example of this is ASP.NET unit tests, which run in the ASP.NET process. We take advantage of this extensibility point to add our client processes as host processes. &lt;BR&gt;&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb_2.png" width=421 height=120 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/IncreasingtheROIofourAutomation_B225/image_thumb_2.png"&gt;&lt;/A&gt; &lt;BR&gt;An example of this is we run our new TCM test client Camano (aka Microsoft Test and Lab Manager) as a test host. This is a bit of a mind bender, but we also actually run VS as a test host! So devenv starts vstesthost which starts a second copy of devenv. Once VS is loaded, our test code runs and has access to our architectural layer “just beneath the glass” and enables us to run web and load tests in the IDE (e.g. open a project, open and edit load tests in the project, run them, validate the UI through code). &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;UI Automation&lt;/STRONG&gt;. With this approach, our test code instantiates the client under test, and drives it through the mouse and keyboard (we drive VS through MSAA, and we drive our TCM client using UIA). &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;The cost of UI automation is at least an order of magnitude&lt;/STRONG&gt; &lt;STRONG&gt;greater &lt;/STRONG&gt;than the other three approaches. Isn’t it ironic that we are introducing a new UI automation test type in dev10. If UI tests are so bad, why are we bringing them to market? While I maintain that they are very expensive, &lt;STRONG&gt;UI tests are also absolutely necessary&lt;/STRONG&gt;. There are some things we simply cannot test without them (like dialogs, or some integrated, cross-process end-to-end scenarios). But if I go back and look at the UI tests we developed for web and load tests in VS 2005, the vast majority of them could have been implemented using a cheaper alternative.&lt;/P&gt;
&lt;H3&gt;Engineering for Automation: Developing Testable Software&lt;/H3&gt;
&lt;P&gt;Developing these other automation approaches did not come for free. We have deliberately architected our software to enable each of these approaches, and spent time developing test frameworks and reference patterns for each approach. It has really paid off in a big way. If you look at our TCM tests, we maintain an extremely high pass rate (98% plus). Our “legacy” UI tests from the 2005 release are in bad shape.&lt;/P&gt;
&lt;H3&gt;Whose job is it anyway? &lt;/H3&gt;
&lt;P&gt;At the end of the day, it is the test team’s job to help us understand whether or not we are ready to ship. Automation plays a huge role in that, since we are able to run our automation suites unattended and generate test results relatively quickly and concurrently on many different configurations. The test team is responsible for ensuring we have the right set of automation in place help us understand where we are at.&lt;/P&gt;
&lt;H4&gt;Getting Testers and Developers on the Same Page&lt;/H4&gt;
&lt;P&gt;However, it is not solely the test team’s job to develop and maintain the automation. The test team develops the test plan, which includes the scenarios and functionality we want to automate, but &lt;STRONG&gt;both the dev and test team develop and maintain the automation&lt;/STRONG&gt;. If a developer is writing “unit tests” for a new API they are developing, they work off the test plan to develop one of the specified test cases. Tester do not duplicate this effort by developing “their own” automation to cover. A key tenet is that &lt;STRONG&gt;testers and developers use the same frameworks and methodologies for developing automation&lt;/STRONG&gt;. Testers are able to run tests developed by devs, and visa-versa. Going back to the mistakes we made in VS 2005, this simple methodology, along with considering the most cost-effective way to automate a given test case, is the key to fixing each of these mistakes.&lt;/P&gt;
&lt;P&gt;Similarly, it is the entire team’s job to maintain the automated tests. As I said earlier, maintenance is the hidden and huge cost of doing automation. Devs must fix any compile errors in tests introduced by their changes, and also must ensure that all P1 tests pass before checking in. Testers and devs share the load on ensuring all P2 and P3 tests maintain a high pass rate. We run these once a week and distribute the load on driving them to passing.&lt;/P&gt;
&lt;P&gt;I hope you can also learn from our mistakes, and use our experience to improve your approach to automation. &lt;/P&gt;
&lt;P&gt;Ed.&lt;/P&gt;</description></item><item><title>VSTS 2010 Feature: More flexible load modeling via new options on Load Test Scenarios</title><link>http://blogs.msdn.com/billbar/archive/2009/06/11/vsts-2010-feature-more-flexible-load-modeling-via-new-options-on-load-test-scenarios.aspx</link><pubDate>Thu, 11 Jun 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9727237</guid><dc:creator>billbar@microsoft.com</dc:creator><description>&lt;P&gt;&lt;FONT size=2&gt;In VSTS 2010 Beta 1 (available for download &lt;/FONT&gt;&lt;A href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=18:370" mce_href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=18:370"&gt;&lt;FONT size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;), there are four new properties on each Scenario in a Load Test that give you more control of the time, location, and duration of the running of the Scenario during the load test.&amp;nbsp;&amp;nbsp;&amp;nbsp; You can access the Scenario property sheet by right-clicking on the desired Scenario’s node in the Load Test Editor tree:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/GettingToScenarioProperties.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/GettingToScenarioProperties.png"&gt;&lt;IMG title=GettingToScenarioProperties style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=553 alt=GettingToScenarioProperties src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/GettingToScenarioProperties_thumb.png" width=343 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/GettingToScenarioProperties_thumb.png"&gt;&lt;/A&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The new properties are:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;“&lt;FONT size=2&gt;Agents to Use”&lt;BR&gt;”Maximum Test Iterations”&lt;BR&gt;”Delay Start Time”&lt;BR&gt;”Disable During Warmup”&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The screen shot below of the Scenario property sheet shows the new Scenario properties along with those that existed in VSTS 2008:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDefaults.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDefaults.png"&gt;&lt;IMG title=NewScenarioPropertiesDefaults style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=457 alt=NewScenarioPropertiesDefaults src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDefaults_thumb.png" width=644 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDefaults_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The above screen shot shows the initial default values for all four properties which in all four cases means that the new feature is not used and the load test behaves as it would with VSTS 2008 (all other things being the same).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The screen shots below show non-default values for each of these new properties.&amp;nbsp;&amp;nbsp; You can read the property descriptions in the screen shot, so no need to repeat those, but I’ve added some additional comments on the selected property below each screen shot:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesNonDefault.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesNonDefault.png"&gt;&lt;IMG title=NewScenarioPropertiesNonDefault style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=451 alt=NewScenarioPropertiesNonDefault src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesNonDefault_thumb.png" width=646 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesNonDefault_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The agent names that are entered should be the names of agents that are connected to the controller to which the load test will be submitted.&amp;nbsp;&amp;nbsp; They should be the simple computer names of the agents (as seen in the “Computer Name” field in the Control Panel).&amp;nbsp;&amp;nbsp; Unfortunately, at this time, if you switch to submitting the load test to a different controller, you will need to change the value for “Agents to Use” as there is no way to parameterize this list to vary depending on the controller used.&amp;nbsp;&amp;nbsp; This list of agents designates a subset of those the agents that are connected to the controller, and are in the Ready state when the load tests starts (they may be running a different load test or other test run when the load test is queued as long as they become Ready when the load test is taken out of the Pending state and starts running), and that meet any agent selection criteria to allow the test run to be run on the agent.&amp;nbsp;&amp;nbsp; The Scenario will run on all agents in the list that meet these criteria, and the user load for the Scenario will be distributed among these agents either evenly (by default) or according to any agent weightings specified in the Agent properties for the agents (from the “Administer Test Controllers” dialog in Visual Studio).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The screen shot below has a non-default value for “Maximum Test Iterations” which is selected to show the property description:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesMaxIterations.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesMaxIterations.png"&gt;&lt;IMG title=NewScenarioPropertiesMaxIterations style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=449 alt=NewScenarioPropertiesMaxIterations src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesMaxIterations_thumb.png" width=651 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesMaxIterations_thumb.png"&gt;&lt;/A&gt; L&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;This property is a maximum on the &lt;STRONG&gt;total&lt;/STRONG&gt; number of test iterations for tests in the selected Scenario for all users on all agents on which the Scenario is run, and does not mean “Test Iterations per User”.&amp;nbsp;&amp;nbsp; If the Load Test Run Settings dialog specifies a value for Test Iterations that is less than this value, or the timed duration of the load test expires before this maximum is reached the load test will stop.&amp;nbsp;&amp;nbsp; In other words, as the name implies this is a maximum, but not a minimum.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The screen shot below has non-default values for “Delay Start Time” and “Disable During Warmup”.&amp;nbsp;&amp;nbsp; The property description for “Delay Start Time” also describes how the “Disable During Warmup” setting affects when the Scenario actually starts:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDelayStart.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDelayStart.png"&gt;&lt;IMG title=NewScenarioPropertiesDelayStart style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=445 alt=NewScenarioPropertiesDelayStart src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDelayStart_thumb.png" width=654 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureMoreflexibleloadmodelingv_FEFB/NewScenarioPropertiesDelayStart_thumb.png"&gt;&lt;/A&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The description implies but does not explicitly state this: if “Disable During Warmup” is false, the Delay Start Time is measured from the very beginning of the load test including any warm-up period.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;For a complete list of the new Web testing and Load Testing features in VSTS 2010 Beta 1 check out &lt;A href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx" mce_href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx"&gt;Ed Glas's list&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>VSTS 2010 Feature: Sequential Test Mix</title><link>http://blogs.msdn.com/billbar/archive/2009/06/10/vsts-2010-feature-sequential-test-mix.aspx</link><pubDate>Wed, 10 Jun 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9725042</guid><dc:creator>billbar@microsoft.com</dc:creator><description>&lt;P&gt;&lt;FONT size=2&gt;VSTS 2010 Load Tests offer several new options that can be set on each Scenario in the load test that give you more control over the execution of the Scenarios within the load test and therefore allows you to more easily create a load test that accurately models the load that your are trying to simulate on your servers under test.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The first of these is a new “Text Mix” type based on sequential test order that simply allows you to set up a sequential ordering of the tests that each virtual user will go through.&amp;nbsp;&amp;nbsp; This option is available in the New Load Test and New Scenario Wizards:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard1.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard1.png"&gt;&lt;IMG title=Wizard1 style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=457 alt=Wizard1 src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard1_thumb.png" width=659 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard1_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The diagram shows an example with 4 virtual users and two tests in the Scenario, and the text below the diagram explains the behavior.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;If you select “Based on sequential test order” and click “Next”, the next Wizard page allows to add to and order the tests:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard2.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard2.png"&gt;&lt;IMG title=Wizard2 style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=458 alt=Wizard2 src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard2_thumb.png" width=661 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/Wizard2_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Note that there is no need to enter percentages or pacing information as for the other test mix types.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Once you’ve created the load test Scenario through the Wizard with this test mix type, you can later use the Load Test editor’s Test Mix editor to change the Test Mix type, or add, remove, or change the order of the tests:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/SequentialTestMix.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/SequentialTestMix.png"&gt;&lt;IMG title=SequentialTestMix style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=545 alt=SequentialTestMix src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/SequentialTestMix_thumb.png" width=657 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010FeatureNewLoadTestScenariooption_E138/SequentialTestMix_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;For a complete list of the new Web testing and Load Testing features in VSTS 2010 Beta 1 check &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx" mce_href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx"&gt;&lt;FONT size=2&gt;Ed Glas's list&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&amp;nbsp;&amp;nbsp; You can download the beta &lt;/FONT&gt;&lt;A href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=18:370" mce_href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=18:370"&gt;&lt;FONT size=2&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>VSTS 2010 Load Test Feature: Saving Test Logs</title><link>http://blogs.msdn.com/billbar/archive/2009/06/09/vsts-2010-load-test-feature-saving-test-logs.aspx</link><pubDate>Tue, 09 Jun 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9710876</guid><dc:creator>billbar@microsoft.com</dc:creator><description>&lt;P&gt;&lt;FONT size=2&gt;Now that VSTS 2010 beta 1 is available I and other Load Test development and test team members will be writing a series of blog posts highlighting the new Web and Load testing features.&amp;nbsp;&amp;nbsp; Ed Glas has a blog post that lists the new features &lt;A href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx" mce_href="http://blogs.msdn.com/edglas/archive/2009/05/18/dev10-beta-1-available.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; You can download the beta &lt;A href="http://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx?pv=18:370" mce_href="http://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx?pv=18:370"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;This post describes in detail the item in Ed’s list “Log entire test result on test failure …”:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;With VSTS 2010, Load Test users now have the option of capturing and saving the entire result of individual tests run within the load test such as a failed Web test or a failed unit test.&amp;nbsp;&amp;nbsp; This feature makes it easier to debug problems that occur when running tests within a load test that do not occur when running the same tests outside the context of a load test.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The New Load Test Wizard exposes a new option “Save Log on Test Failure” which defaults to True:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestWizard_1.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestWizard_1.png"&gt;&lt;IMG title=LoadTestWizard style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=419 alt=LoadTestWizard src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestWizard_thumb_1.png" width=604 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestWizard_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Also, in the Load Test editor, the Load Test Run Setting’s property sheet includes this option as well as two other related properties in the new “Logging” category:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestRunSettings_1.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestRunSettings_1.png"&gt;&lt;IMG title=LoadTestRunSettings style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=381 alt=LoadTestRunSettings src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestRunSettings_thumb_1.png" width=552 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/LoadTestRunSettings_thumb_1.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;You can see the description of the new “Save Log Frequency for Completed Tests” property above.&amp;nbsp;&amp;nbsp;&amp;nbsp; The “Maximum Test Logs” setting controls the maximum number of Test Logs that are saved in the load test results database for a single load test.&amp;nbsp;&amp;nbsp;&amp;nbsp; You can increase this value from the default value of 200, but we aware that the test logs could potentially take up a considerable amount of space in the database especially for Web tests that contain many large requests and/or responses since they include the entire body of each Web test request and response (the exception to this is that details for dependent requests are not saved in order to save space).&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;For example, to see how this works with unit tests in a load test, suppose I have the two following unit test methods:&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;[TestMethod]&lt;BR&gt;public void UnitTestThatLogsAndPasses()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.WriteLine("This line written using Debug.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Trace.WriteLine("This line written using Trace.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("This line written using Console.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Threading.Thread.Sleep(1000);&lt;BR&gt;} &lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;[TestMethod]&lt;BR&gt;public void UnitTestThatLogsAndFails()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.WriteLine("This line written using Debug.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Trace.WriteLine("This line written using Trace.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("This line written using Console.WriteLine()");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Threading.Thread.Sleep(500);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.Fail("This test fails for demo purposes");&lt;BR&gt;}&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;Then I include these unit tests in a load test with the passing test running 90% of the time:&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/DemoUnitTestLogs.loadtest_2.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/DemoUnitTestLogs.loadtest_2.png"&gt;&lt;IMG title=DemoUnitTestLogs.loadtest style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=368 alt=DemoUnitTestLogs.loadtest src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/DemoUnitTestLogs.loadtest_thumb.png" width=259 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/DemoUnitTestLogs.loadtest_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;The Test Logs are &lt;U&gt;not&lt;/U&gt; viewable while the load test is running, but can be viewed once the load test has completed and you go to the post-run Load Test Analyzer by responding Yes to this prompt at the end of the load test:&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/GoToPostRun.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/GoToPostRun.png"&gt;&lt;IMG title=GoToPostRun style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=106 alt=GoToPostRun src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/GoToPostRun_thumb.png" width=846 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/GoToPostRun_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;(You can also bring up the post-run Load Test Analyzer for a load test run from the “Open and Manage Load Test Results” dialog available on the toolbar in the Load Test Editor.)&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;This should bring you to the Summary page in the Load Test Analyzer; if you then click on the Errors link, the Errors table is displayed and includes links to the Test Logs in the “Details” column (the right-most column – you may need to scroll right to see it):&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/ErrorsTable.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/ErrorsTable.png"&gt;&lt;IMG title=ErrorsTable style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=378 alt=ErrorsTable src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/ErrorsTable_thumb.png" width=851 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/ErrorsTable_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;Clicking on one of the “Test log” links in this table opens a new Window in Visual Studio to view that unit test result which looks just like viewing the result of a unit test run outside of a load test:&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/UnitTestResult_1.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/UnitTestResult_1.png"&gt;&lt;IMG title=UnitTestResult style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=347 alt=UnitTestResult src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/UnitTestResult_thumb_1.png" width=853 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/UnitTestResult_thumb_1.png"&gt;&lt;/A&gt;&amp;nbsp; 
&lt;P&gt;&lt;FONT size=2&gt;In addition to links to the Test Logs in the Errors table, there is also a new “Test Details” table in the Load Test Analyzer that also may contains links to Test Logs:&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsTable.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsTable.png"&gt;&lt;IMG title=TestDetailsTable style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=470 alt=TestDetailsTable src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsTable_thumb.png" width=735 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsTable_thumb.png"&gt;&lt;/A&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;In the load test result shown above, it was a Web test that failed, so clicking on the &lt;/FONT&gt;&lt;FONT size=2&gt;“Test Log” link opens a new Web Test result viewer window in Visual Studio; you can see the details of requests that failed, but you can also browse around the Web test result to see the details of previous requests that may have been considered successful but perhaps caused later requests to fail because they were missing expected content (and there was not an appropriate validation rule).&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;As with the unit test, the Web test result viewer is the same as when the Web test is run outside of a load test:&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/WebTestResult.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/WebTestResult.png"&gt;&lt;IMG title=WebTestResult style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=661 alt=WebTestResult src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/WebTestResult_thumb.png" width=860 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/WebTestResult_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;As a slight aside to this topic, the new Test Details table is available in the post-run load test analyzer as long as you have set the value for the Load Test Run Setting’s property “Timing Details Storage” to “All Individual Details”.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is true even if you disable the capturing of Test Logs by setting “Save Log on Test Failure” to False and leaving ““Save Log Frequency for Completed Tests” at the default value of 0 (which means never capture test logs for successful tests).&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In this case, the Test Details table would look like this:&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsWithoutTestLog.png" mce_href="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsWithoutTestLog.png"&gt;&lt;IMG title=TestDetailsWithoutTestLog style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=406 alt=TestDetailsWithoutTestLog src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsWithoutTestLog_thumb.png" width=796 border=0 mce_src="http://blogs.msdn.com/blogfiles/billbar/WindowsLiveWriter/VSTS2010LoadTestFeatureSavingTestLogs_DA3F/TestDetailsWithoutTestLog_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;&lt;FONT size=2&gt;When “Timing Details Storage” is set to “All Individual Details” (&lt;STRONG&gt;which is now the default value for this property for load tests created with VSTS 2010&lt;/STRONG&gt;), the data shown in the table above is stored in the load test results database for all tests run within the load test (excluding the warm-up and cool-down periods).&amp;nbsp;&amp;nbsp;&amp;nbsp; The Test Details table in the Load Test Analyzer will only display up to 1000 of these rows at a time.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When the table is first loaded, it is sorted in chronological order (that is by ascending values of the Start Time column) as shown above.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; However, you can choose a different sort column and toggle the sort order by clicking on the column headers.&amp;nbsp;&amp;nbsp;&amp;nbsp; This results in a new query to the load test database so that you see the top 1000 rows matching the sort column and order.&amp;nbsp;&amp;nbsp;&amp;nbsp; For example, you can choose to sort by the slowest values in the Test Time column to see the 1000 slowest individual tests within the load test.&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>dynaTrace Leverages new Extensibility Points to Provide Deep Integration with Dev10</title><link>http://blogs.msdn.com/edglas/archive/2009/05/20/dynatrace-leverages-new-extensibility-points-to-provide-deep-integration-with-dev10.aspx</link><pubDate>Wed, 20 May 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632527</guid><dc:creator>edglas</dc:creator><description>&lt;p&gt;A fantastic example of a partner taking advantage of the new extensibility points in Web test playback and load tests in dev10 is provided by dynaTrace. dynaTrace has developed an extension that provides enables you to drill from a particular request to the PurePath for that request. The &lt;a href="http://www.dynatrace.com/en/purepath_technology.aspx"&gt;PurePath&lt;/a&gt; provides a tiered performance breakdown for the request, detailing how much time the request spent at each tier of your application. Check out &lt;a href="http://blog.dynatrace.com/2009/05/20/how-to-extend-visual-studio-2010-web-and-load-testing-with-transactional-tracing/"&gt;Andreas’s post&lt;/a&gt; on the integration (including some code samples!).&lt;/p&gt;  &lt;p&gt;Ed.&lt;/p&gt;</description></item><item><title>Are You Reporting Inaccurate Performance Numbers with VS 2008?</title><link>http://blogs.msdn.com/edglas/archive/2009/05/19/are-you-reporting-inaccurate-performance-numbers-with-vs-2008.aspx</link><pubDate>Tue, 19 May 2009 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9629624</guid><dc:creator>edglas</dc:creator><description>&lt;P&gt;There’s a hidden problem with VS 2008 load testing that you need be aware if you are running tests locally (as opposed to using a controller and agents).&lt;/P&gt;
&lt;P&gt;If you purchase and run a load agent, load agents run on all cores and all CPUs on the machine. &lt;/P&gt;
&lt;P&gt;However, when running locally VS limits load generation to one core on the machine. If this core is running at or close to 100% CPU utilization, it will throw off performance measurements and interfere with performance counter collection. In general it really invalidates your test results. This is why we graph agent CPU by default, and have performance counter thresholds that fire to warn you if the test is running too hot. However, by default the test is configured to look at the _Total instance, when it should be looking at the “0” instance.&lt;/P&gt;
&lt;P&gt;This screen shot really tells the story:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_16.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_7.png" width=1009 height=603 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;CPU 0 is clearly pegged:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_18.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_8.png" width=317 height=122 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_8.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Yet the CPU counter in the load test is reporting ~50% utilization:&lt;/P&gt;
&lt;P&gt;‘&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_20.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_9.png" width=657 height=225 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What is going on here is that the counter reported on is the &lt;STRONG&gt;_Total &lt;/STRONG&gt;counter. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_22.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_22.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_10.png" width=547 height=579 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;To get an accurate measurement we should graph the instance 0 counter instead.&lt;/P&gt;
&lt;P&gt;To change your tests to graph the instance 0 counter, change the counter instance in the load test editor:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_24.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_11.png" width=539 height=570 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_11.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now if I re-run, alarm bells should go off as thresholds violations. But they don’t!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_32.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_32.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_15.png" width=531 height=449 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_15.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The reason is the analyzer is still displaying the _Total instance by default. However, you can see the threshold violation is now firing:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_34.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_34.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_16.png" width=114 height=83 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_16.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;To graph instance 0, drill into the counter tree and drag it on the graph:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_38.png" mce_href="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_38.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_18.png" width=608 height=509 mce_src="http://blogs.msdn.com/blogfiles/edglas/WindowsLiveWriter/AreYouReportingInaccuratePerformanceNumb_F007/image_thumb_18.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Now you can see the threshold violations displayed on the graph. To graph the "0" instance by default, edit the .loadtest file in the xml editor and change the instance:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCountersForAutomaticGraphs&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCounter CategoryName="Processor" CounterName="% Processor Time" &lt;STRONG&gt;InstanceName="0"&lt;/STRONG&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCounter CategoryName="Memory" CounterName="Available MBytes"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DefaultCountersForAutomaticGraphs&amp;gt;&lt;/P&gt;
&lt;P&gt;You can fix this for all subsequent load tests you create by editing the &amp;lt;installdir&amp;gt;\Common7\IDE\Templates\LoadTest\CounterSets\AgentCounterSet.CounterSet file and adding a new instance tag for the “0” instance:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;CounterCategory Name="Processor"&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Counters&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Counter Name="% Processor Time"&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ThresholdRules&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RuleParameters&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RuleParameter Name="AlertIfOver" Value="True" /&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RuleParameter Name="WarningThreshold" Value="90" /&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RuleParameter Name="CriticalThreshold" Value="95" /&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RuleParameters&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ThresholdRule&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ThresholdRules&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Counter&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Counter Name="% Privileged Time" /&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Counter Name="% User Time" /&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Counters&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Instances&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Instance Name="_Total" /&amp;gt; &lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Instance Name="0" /&amp;gt; &lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; &amp;lt;/Instances&amp;gt; &lt;BR&gt;&amp;lt;/CounterCategory&amp;gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Also change the settings for the default counters to show on the graph:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCountersForAutomaticGraphs&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCounter CategoryName="Processor" CounterName="% Processor Time" &lt;STRONG&gt;InstanceName="0"&lt;/STRONG&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultCounter CategoryName="Memory" CounterName="Available MBytes"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DefaultCountersForAutomaticGraphs&amp;gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Hope that helps, and we certainly will get this fixed for dev10 (but the fix did not make it into beta1).&lt;/P&gt;
&lt;P&gt;Ed.&lt;/P&gt;</description></item></channel></rss>