<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Mahipal Kante's Blog on Visual Studio 2010</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mahipalkante/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mahipalkante/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 04:10:45 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Visual Studio 2010 Load Test – Out of Memory Exceptions On 32 bit Machines OR 32 bit Run</title>
      <link>https://docs.microsoft.com/archive/blogs/mahipalkante/visual-studio-2010-load-test-out-of-memory-exceptions-on-32-bit-machines-or-32-bit-run</link>
      <pubDate>Thu, 10 Jun 2010 04:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Mahipal Kante - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mahipalkante/2010/06/10/visual-studio-2010-load-test-out-of-memory-exceptions-on-32-bit-machines-or-32-bit-run/</guid>
      <description><![CDATA[If you see large number of &ldquo;Out of Memory&rdquo; Exceptions in your Load Test results, do not...]]></description>
      <content:encoded><![CDATA[<p>If you see large number of <b>&ldquo;Out of Memory&rdquo;</b> Exceptions in your Load Test results, do not quickly conclude that there is a memory leak! First make sure you are running Agents on <b>64 Bit OS</b> in a <b>64 Bit Test Run</b>. Note the two terms with 64 bit in them, which I have explained below. </p>
<p>
<p>If you want to scale up the VUsers to 1000 and beyond, one fundamental requirement is that your Agent machines should be of 64 Bit OS. For each Agent machine there is only one process that is running the load test, which needs to spawn thousands of threads. Due to this the memory consumed by Agent process increases linearly as the number of VUsers increase. For a large VUser load, the memory consumed can easily go much beyond 2 GB, which is the limit for any process on a 32 bit OS. This is why for a large VUser volume, Load Test will start throwing &ldquo;Out of Memory&rdquo; exceptions. These exceptions are not thrown by OS itself, but the Load Test engine starts throwing these exceptions as soon as the process reaches 1.75 GB.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/31/02/Bit64Exec/6012.checkfor32bit.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-31-02-Bit64Exec/6012.checkfor32bit.jpg" />
<p>So, even if your machine has huge memory and CPU, load test will not be able utilize it well. Hence, it is imperative that you change the machine OS to 64 bit.
<p>An important thing to remember once upgrading your OS to 64 bit is to make sure to change the Test Run Settings also to 64 Bit. Otherwise, your Load Test will continue to run in 32 bit mode on 64 Bit OS, and you will not be able to go past the out of memory exceptions. So, if you are browsing the Load Test results, and you see Out of Memory exceptions, be sure to look for <b>&ldquo;QTAgent32&rdquo;</b> in the results as shown in the above picture. If you see this, you should go and change the run settings as shown below to 64 Bit. On a 64 bit run, the Agent process is listed as <b>&ldquo;QTAgent&rdquo;</b> with no &ldquo;32&rdquo; suffix! </p>
<p>&nbsp;</p>
<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/31/02/Bit64Exec/4338.Setting64Bit.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-31-02-Bit64Exec/4338.Setting64Bit.jpg" />
<p>
<p>
<p>Finally here is a graph of a successful 64 bit run for a 1000 Vusers, which clearly shows that the Virtual Bytes of the QTAgent process has gone up close to&nbsp;5 GB. Notice the quick&nbsp;linear jump when VUsers were increased.</p>
<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/31/02/Bit64Exec/2311.memory64Bit.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-31-02-Bit64Exec/2311.memory64Bit.jpg" /> </p>
</p>
</p>
</p>
</p>]]></content:encoded>
    </item>
    <item>
      <title>VS 2010 Load Test Results Database Recovery Model</title>
      <link>https://docs.microsoft.com/archive/blogs/mahipalkante/vs-2010-load-test-results-database-recovery-model</link>
      <pubDate>Thu, 10 Jun 2010 01:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Mahipal Kante - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mahipalkante/2010/06/10/vs-2010-load-test-results-database-recovery-model/</guid>
      <description><![CDATA[&nbsp;
&nbsp;
To get the best performance while storing Load Test Results...]]></description>
      <content:encoded><![CDATA[<p>
<meta content="text/html; charset=windows-1252" />
<meta content="Word.Document" name="ProgId" />
<meta content="Microsoft Word 14" name="Generator" />
<meta content="Microsoft Word 14" name="Originator" />
<link href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/Recovery_files/filelist.xml" rel="File-List" />
<link href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/Recovery_files/editdata.mso" rel="Edit-Time-Data" />
<link href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/Recovery_files/themedata.thmx" rel="themeData" />
<link href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/Recovery_files/colorschememapping.xml" rel="colorSchemeMapping" />

</p>
<div class="WordSection1">
<p class="MsoNormal"><span style="color: black; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">To get the best performance while storing Load Test Results into Database, we need to make sure that the recovery model on the database is set to &ldquo;SIMPLE&rdquo;. Sometimes when the DB create script, <b style="mso-bidi-font-weight:
normal">loadtestresultrepository.sql</b>, that is in ~Program Files\Microsoft Visual Studio 10.0\Common7\IDE folder is used to create the results database, the recovery model is erroneously set to &ldquo;FULL&rdquo; which is not a desirable setting for Load Test Results DB.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">To check if the recovery model is set to &ldquo;SIMPLE&rdquo; and to fix, follow these steps:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 1: Run &ldquo;Visual Studio Command Prompt 2010&rdquo; in Administrator mode<o:p></o:p></p>
<p class="MsoNormal">Step 2: Open &ldquo;Notepad checkDB.sql&rdquo;<o:p></o:p></p>
<p class="MsoNormal">Step 3: Enter the following query into the file and save:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-family:">SELECT name,<span style="mso-spacerun:yes">&nbsp; </span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">CAST(DATABASEPROPERTYEX(name, 'Recovery') as nvarchar(30))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">FROM<span style="mso-spacerun: yes;">&nbsp;&nbsp; </span>master.dbo.sysdatabases;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">Go<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 4: Run the following command:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-family:">sqlcmd -S .\sqlexpress<span style="mso-spacerun:yes">&nbsp; </span>-i checkDB.sql<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 5: Make sure the Load Tet results DB is listed as "SIMPLE" for recovery model<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:">master<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SIMPLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">tempdb<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SIMPLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">model<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SIMPLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">msdb<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SIMPLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">LoadTest2010<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SIMPLE</span><span style="font-family:"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 6: If it is NOT set to SIMPLE, enter the following SQL into "fixDB.sql"<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-family:">ALTER DATABASE LoadTest2010 SET RECOVERY SIMPLE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:">GO <o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 7: Run command:<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="font-family:">sqlcmd -S .\sqlexpress<span style="mso-spacerun:yes">&nbsp; </span>-i fixDB.sql<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Step 8: Repeat step 5 to make sure it is now changed to "SIMPLE".<o:p></o:p></p>
<p class="MsoNormal">The reason why we want to set recovery model to SIMPLE is that the Load Test results are always bulk loaded into database. So we do not need to maintain database logs, which makes the DB operations slow. You can read more about the <a href="https://msdn.microsoft.com/en-us/library/ms175987.aspx">recovery models</a> on MSDN <o:p></o:p></p>
</div>]]></content:encoded>
    </item>
    <item>
      <title>VS2010 Web Test Plugins for Web Service Messages</title>
      <link>https://docs.microsoft.com/archive/blogs/mahipalkante/vs2010-web-test-plugins-for-web-service-messages</link>
      <pubDate>Tue, 06 Apr 2010 23:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Mahipal Kante - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mahipalkante/2010/04/06/vs2010-web-test-plugins-for-web-service-messages/</guid>
      <description><![CDATA[When testing Silver Light applications, we frequently run into dealing with non-Html content...]]></description>
      <content:encoded><![CDATA[<p sizset="0" sizcache="5"><span sizset="0" sizcache="5" style="FONT-FAMILY: Calibri; FONT-SIZE: 14px">
<p>When testing Silver Light applications, we frequently run into dealing with non-Html content types. This is because most of the Silver Light applications use WCF RIA web services. Typically, this will be a binary format called MSBin1. Also, Silver Light applications may use other content types such as JSON, SOAP and REST to communicate with server. In general there is significantly greater use of Web Services and JSON in today's web&nbsp;applications.</p>
<p>To test these applications under various scenarios we really need to edit, parameterize, extract values from responses and data drive these messages rather than simply playing back the same messages that are captured by Web Test recorder.</p>
<p>There is currently no editing capability for MSBin1 content in Web Test and JSON messages are difficult to read or edit. Also, in general Xml needs better editing capabilities than simple text editor that we have currently in Web Test. </p>
<p>Luckily there is a good set of extensibility points in Web Test for providing additional support for these content types. There are a number of plugins available to be downloaded from Code Plex project <a href="https://teamtestplugins.codeplex.com/">Web and Load Test Plugins for Visual Studio Team Test</a></p>
<p>The <a href="https://teamtestplugins.codeplex.com/releases/view/43166">Web Test Plugins for Web Service Messages</a> leverage these extensibility points to provide the following functionality for all these content types:</p>
<ol>
<li><b>Editor for Request body</b>: The plugins provide a tree view of the structured data which allows easy editing, parameterization and data binding.</li>
<li><b>XPath based Extraction and Validation Rules</b>: XPath is a powerful tool to extract required data from Xml. This provides an additional capability for Xml and JSON based messages which can use existing extraction and validation rules that work on text. But for Msbin1, none of the existing rules work, because it is binary. So, these plugins are only way to extract and validate data from MSbin1 content types.</li>
<li><b>Data Driving for MSBin1</b>: Using these plugins, you can parameterize and data drive MSBin1 content.</li>
<li><b>Additional tab in Web Test results</b> that shows Request and Response in hierarchical view side by side. Using this user can add extraction/validation rules on response messages and parameterize requests.</li>
</ol>
<p><img height="371" width="591" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/99/15/63/result.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-09-99-15-63/result.jpg" style="width: 591px; height: 371px;" /></p>
<p>When installed, the following components will be added to the user's file system:</p>
</span></p>
<table cellpadding="0" cellspacing="0" border="1" style="width: 563px; height: 358px;">
<tbody>
<tr>
<td width="187" valign="top">
<p><b>Plugin</b></p>
</td>
<td width="168" valign="top">
<p><b>Assembly/Files</b></p>
</td>
<td width="145" valign="top">
<p><b>Folder</b></p>
</td>
<td width="156" valign="top">
<p><b>Functionality</b></p>
</td>
</tr>
<tr>
<td width="187" valign="top">
<p><b>Visual Studio Addin</b> - Additional tab in Web Test Result</p>
</td>
<td width="168" valign="top">
<p>WebServicePluginFor WebTestResultTab.AddIn</p>
<p>WebTest.WebService. Plugin.ResultTab.dll</p>
</td>
<td width="145" valign="top">
<p>&lt;User Documents&gt;\Visual Studio 2010\Addins</p>
</td>
<td width="156" valign="top">
<p>Adds a new tab called "Web Service" into Web Test results</p>
</td>
</tr>
<tr>
<td width="187" valign="top">
<p><b>Msbin1MessageEditor</b> (IBinaryHttpBodyEditorPlugin)</p>
<p><b>XmlMessageEditor</b> (IStringHttpBodyEditorPlugin)</p>
<p><b>WebServicePostRecording</b> (WebTestRecorderPlugin)</p>
</td>
<td width="168" valign="top">
<p>WebTest.WebService. Plugin.MessageEditors.dll</p>
</td>
<td width="145" valign="top">
<p>~Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies \WebTestPlugins</p>
</td>
<td width="156" valign="top">
<p>WebTest Editor Plugins - &nbsp;Request editors for various content types</p>
</td>
</tr>
<tr>
<td width="187" valign="top">
<p><b>XPathExtractionRule</b> (ExtractionRule)</p>
<p><b>XPathValidationRule</b> (ValidationRule)</p>
<p><b>WebServicePlugin </b>(WebTestPlugin)</p>
</td>
<td width="168" valign="top">
<p>WebTest.WebService. Plugin.Runtime.dll</p>
</td>
<td width="145" valign="top">
<p>~Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies</p>
</td>
<td width="156" valign="top">
<p>Runtime assembly -contains extraction/validation rules, data binding for binary content types.</p>
</td>
</tr>
</tbody>
</table>
<p sizset="0" sizcache="5"><span sizset="0" sizcache="5" style="FONT-FAMILY: Calibri; FONT-SIZE: 14px">
<p>All three assemblies work together, so all of them need to be present when authoring Web Test. Only runtime assembly (WebTest.WebService. Plugin.Runtime.dll) is required to run Web Test.</p>
<a href="https://teamtestplugins.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=115534">Read more about the plugins...</a><br />
<p>Download the plugins (WebServicePlugins.zip) from <a href="https://teamtestplugins.codeplex.com/releases/view/43166">Code Plex</a> and install under Visual Studio 2010 Ultimate and let me know your feedback.</p>
</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/99/15/63/result.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-99-15-63/result.jpg">result.jpg</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>