<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Saagara&#039;s Blog</title>
	<atom:link href="http://saagara.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://saagara.wordpress.com</link>
	<description>Relodead !!!!</description>
	<lastBuildDate>Thu, 27 Jan 2011 12:18:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='saagara.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Saagara&#039;s Blog</title>
		<link>http://saagara.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://saagara.wordpress.com/osd.xml" title="Saagara&#039;s Blog" />
	<atom:link rel='hub' href='http://saagara.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Checklist for Testing Web Parts</title>
		<link>http://saagara.wordpress.com/2010/07/16/checklist-for-testing-web-parts/</link>
		<comments>http://saagara.wordpress.com/2010/07/16/checklist-for-testing-web-parts/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 06:32:25 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Manual Testing]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=93</guid>
		<description><![CDATA[If you install and maintain the Web Parts for your Microsoft Office SharePoint Portal Server portal site or Microsoft Windows SharePoint Services team site, you should help ensure that the Web Parts are secure, well-written, and can integrate appropriately with other components on the Web Part Page. Verify that you can add the Web Part [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=93&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you install and maintain the Web Parts for your Microsoft Office SharePoint Portal Server portal site or Microsoft Windows SharePoint Services team site, you should help ensure that the Web Parts are secure, well-written, and can integrate appropriately with other components on the Web Part Page.</p>
<h3><a id="office_sharepointwebpartstestingchecklist_verifyaddwebpartproperly"></a>Verify that you can add the Web Part properly to a Web Part zone.</h3>
<p>Adding a Web Part to a Web Part zone is the most common user task. Therefore, it is essential that the Web Part works correctly to create a good user experience.</p>
<h4>To test</h4>
<ol>
<li>Create a new Web Part Page.</li>
<li>Click <strong>Modify Shared Page</strong>, click <strong>Add Web Parts</strong>, and then click <strong>Import</strong>.</li>
<li>Import the .dwp file for your Web Part.</li>
<li>Add the Web Part to a Web Part zone.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifystaticwebparts"></a>Verify that static Web Parts render appropriately and do not cause the Web Part Page to fail.</h3>
<p>Web Parts that are placed outside of a Web Part zone, or static Web Parts, are contained in .aspx pages, but not in the Web Part zone. Because the static Web Part is a Web form control, ASP.NET renders the Web Part. You cannot save changes in either shared or personal view.</p>
<h4>To test</h4>
<ol>
<li>Open FrontPage.</li>
<li>Create a new blank page.</li>
<li>In Design view, on the <strong>Data</strong> menu, click <strong>Insert Web Part</strong>.</li>
<li>From the Web Part Gallery that appears in the task pane, drag a Web Part onto the page.</li>
<li>Save the page as an .aspx page.</li>
<li>View the page in the browser.<br />
<blockquote>
<div><strong>Note</strong></div>
<div>   </div>
<p>Make sure that your Web Part is within the</p>
<div>&lt;form runat=&#8221;server&#8221;&gt;</div>
<p>tags.</p></blockquote>
</li>
<li>Verify that the part renders correctly (for example, you should not be able to save changes in a static Web Part).</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartworks"></a>Verify that the Web Part works correctly regardless of where the Web Part Page is located.</h3>
<p>You can add Web Parts to Web Part Pages that are contained in a document library as well as Web Part Pages that are contained in the top-level Web site. They should work correctly in either location.</p>
<h4>To test</h4>
<ol>
<li>Create a Web Part Page in a document library.
<ul>
<li>Browse to the portal site.</li>
<li>On the <strong>Create</strong> menu, click <strong>Web Part Page</strong>.</li>
<li>In the <strong>New Web Part Page</strong> creation form, <strong>Save Location</strong> lists the document libraries in which the Web Part can be saved. Select a document library, and then click <strong>Create</strong>.</li>
<li>Import your Web Part from the gallery.</li>
</ul>
</li>
<li>Create a Web Part Page in the top-level Web site.
<ul>
<li>Open a SharePoint site in FrontPage.</li>
<li>On the <strong>File</strong> menu, click <strong>New</strong>.</li>
<li>In the <strong>New Page</strong> section of the task pane, click <strong>More page templates</strong>, and on the <strong>Web Part Pages</strong> tab, select a template.</li>
<li>Click on a zone to bring up the gallery (or on the <strong>Data</strong> menu, click <strong>Insert Web Part</strong>), and then import your Web Part into a zone.</li>
<li>Save the Web Part Page in the top-level Web site, for example, at the same location where the default.aspx is located.</li>
</ul>
</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifypropertyattributes"></a>Verify that property attributes are correctly defined.</h3>
<p>You can specify Web Part properties in two ways: as an XML BLOB contained within the Web Part, or as an attribute within the Web Part.</p>
<p>Because of how the Web Part infrastructure handles property values, we recommend that you define properties as simple types rather than as complex types so that they work properly if specified as attributes of the Web Part.</p>
<h4>To test</h4>
<ol>
<li>Create a static Web Part in FrontPage and, in Code view, try setting every property the Web Part has as an attribute.</li>
<li>Browse to the page and see if the page fails or if the property was ignored.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartchanges"></a>Verify that Web Part changes made in personal view are not reflected in shared view.</h3>
<p>Changes made in shared view are seen by all users. Changes made in personal view should only be seen by the person that made them.</p>
<h4>To test</h4>
<ol>
<li>Add the Web Part in shared view.</li>
<li>Edit the properties in shared view.</li>
<li>Change to personal view.</li>
<li>Edit the property in personal view.</li>
<li>Change back to shared view, and then make sure the Web Part does not use any of the values changed while in personal view.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifypublicproperty"></a>Verify that every public property can handle bad input.</h3>
<p>As for any ASP.NET control or application, you should validate all user input before performing operations with it. This validation can help to protect against not only accidental misuse, but also deliberate attacks such as SQL injection, cross-site scripting, buffer overflow, and so on.</p>
<h4>To test</h4>
<ol>
<li>Verify that the Web Part can detect invalid input for properties and that it informs the end user that bad data was entered.</li>
<li>Verify that the property is not used outside of its intended purpose. For example, if a Web Part is intended to allow users to link URLs, limit the protocol usage to HTTP instead of allowing any protocol to be saved (for example, javascript://).</li>
<li>Verify that the Web Part HTML encodes the property value when rendering user input to the client.</li>
</ol>
<p>Check all the ways in which property values can be changed, including:</p>
<ul>
<li>Modifying the .dwp file in a text editor.</li>
<li>Modifying properties in the tool pane.</li>
<li>Modifying properties in Code view in FrontPage.</li>
<li>Using the Web Part Page Services Component (WPSC), which is a client-side object model that provides a way to set properties and persist them from the client browser.</li>
</ul>
<h3><a id="office_sharepointwebpartstestingchecklist_verifyexceptions"></a>Verify that the Web Part handles all of its exceptions.</h3>
<p>A Web Part should handle all exceptions rather than risk the possibility of causing the Web Part Page to stop responding.</p>
<h4>To test</h4>
<p>Enter error and boundary cases for Web Part properties to verify that the Web Part never breaks the page by not catching one of its own exceptions.</p>
<h3><a id="office_sharepointwebpartstestingchecklist_verifyfrontpage"></a>Verify that the Web Part renders correctly in Microsoft Office FrontPage.</h3>
<p>If your organization is using FrontPage to customize SharePoint sites, verify that the Web Part renders properly within FrontPage. To accomplish this, the Web Part developer must implement the <strong>IDesignTimeHtmlProvider</strong> interface.</p>
<h4>To test</h4>
<p>Open up a Web Part Page that contains the Web Part in Design view in FrontPage. Verify that the Web Part renders correctly and you do not see the message &#8220;There is no preview available for this part.&#8221;</p>
<h3><a id="office_sharepointwebpartstestingchecklist_verifytoolpane"></a>Verify that Web Part properties displayed in the tool pane are user-friendly.</h3>
<p>Because the tool pane is where users modify Web Part properties, it is important that users can work with Web Part properties easily in it.</p>
<h4>To test</h4>
<ol>
<li>Add the Web Part to a Web Part Page. Click <strong>Modify Shared Page</strong>, click <strong>Modify Shared Web Parts</strong>, and then select your Web Part. The tool pane should appear and display the Web Part properties.</li>
<li>Verify that the <strong>Friendly Name</strong> is easy to understand, for example, a property named <em>MyText</em> should be <em>My Text</em> (notice the space between the two words).</li>
<li>Make sure the <strong>Description</strong> (the ToolTip that appears) helps the user understand how and why to set the property.</li>
<li>Verify that the <strong>Category</strong> name makes sense. (<strong>Miscellaneous</strong> is used when no category is specified for the property, but it is not especially helpful to the user.)</li>
<li>Verify that the order of the properties makes sense.</li>
<li>If appropriate, check that these properties are localized using the following method:After installing the SharePoint language packs, create a new subsite and select a different language. Add the Web Part to a Web Part Page in the new subsite and verify that <strong>Friendly Name</strong>, <strong>Description</strong>, and <strong>Category</strong> are localized in the tool pane.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifysearch"></a>Verify that the Web Part appears appropriately in the search results.</h3>
<p>Because Web Part galleries can contain numerous custom Web Parts, the search capability helps users quickly find the Web Parts they want.</p>
<p>The Web Part infrastructure uses the <strong>Title</strong> and <strong>Description</strong> properties of the Web Part to build the result set, so comprehensive information in these fields results in easily searchable Web Parts.</p>
<h4>To test</h4>
<ol>
<li>Add the Web Part to the Site Web Part Gallery by navigating to <strong>Site Settings</strong>, clicking <strong>Go to Site Administration</strong>, clicking <strong>Manage Web Part Gallery</strong>, and then clicking <strong>New Web Part</strong>.</li>
<li>Choose the Web Part you&#8217;re testing, and then click <strong>Populate Gallery</strong>.</li>
<li>Browse to a Web Part Page, and then click <strong>Modify Shared Page</strong>, click <strong>Add Web Parts</strong>, and then click <strong>Search</strong>. Enter the appropriate search text and click <strong>Go</strong>. The Web Part should appear as one of the top choices.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifyimportexport"></a>Verify that you can import and export the Web Part properly.</h3>
<p>By default, whenever you export a Web Part, each Web Part property is included in the .dwp file. However, because properties can contain sensitive information, for example, a date of birth, you can identify a property as controlled, allowing you or the user to exclude the value if the Web Part is exported. Only properties that are exported when the user is in personal view can be controlled; in shared view, all property values are exported.</p>
<h4>To test</h4>
<ol>
<li>Add a Web Part from the gallery into a Web Part Page and set the Web Part&#8217;s properties.</li>
<li>On the Web Part chrome drop-down menu, click <strong>Export</strong> to export the Web Part.</li>
<li>Save the .dwp generated onto your local computer, and re-import the Web Part by clicking <strong>Modify Shared Page</strong>, clicking <strong>Add Web Parts</strong>, and then clicking <strong>Import</strong>.</li>
<li>Browse to the .dwp file, click <strong>Upload</strong>, and then click <strong>Import</strong>.</li>
<li>Make sure that the properties that were exported are correctly imported.</li>
<li>Verify that any property that would not make sense to export (for example, a Social Security number) has the <strong>ExportControlledProperties</strong> attribute set. (The <strong>Allow Export Sensitive Properties</strong> check box in the tool pane should be cleared.)</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartpreviews"></a>Verify that the Web Part previews properly.</h3>
<p>It is important to create previews for Web Parts so that administrators are able to review the parts included in the Web Part gallery.</p>
<h4>To test</h4>
<ol>
<li>Go to <strong>Site Settings</strong>, click <strong>Go to Site Administration</strong>, click <strong>Manage Web Part Gallery</strong>, and then click the Web Part. The preview should render.</li>
<li>Verify that there are no script errors.</li>
<li>Verify that the preview appears correctly.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartaccess"></a>Verify that the Web Part can access its resources in different setup configurations.</h3>
<p>Web Part resources cannot be part of the DLL because they must be URL-accessible. Examples of these resources are images, .js files, or .aspx pages.</p>
<h4>To test</h4>
<blockquote>
<div><strong>Note</strong>   Because a Web Part assembly can be installed in either the bin directory (</div>
<div>&lt;%<em>SystemDrive</em>%&gt;\Inetpub\wwwroot\bin</div>
<p>), or the global assembly cache, you must go through each of these test steps with the Web Part installed in the bin and again with the Web Part installed in the global assembly cache.</p></blockquote>
<p>Add the Web Part to your page in all the following scenarios and make sure that it can correctly access its resources:</p>
<ul>
<li>Add the Web Part to the top-level Web site.</li>
<li>Add the Web Part to a subsite with unique permissions, in which the user only has rights in the subsite.</li>
<li>Add the Web Part to a Web Part Page inside a folder in a document library.</li>
<li>Add a Web Part to a site with Self-Service Site Creation enabled on the virtual server.</li>
<li>Add a Web Part to a site with Host Header mode enabled.</li>
<li>Add the Web part to a site where the top-level Web site is not a SharePoint site, for example, <code>http:<em>//servername/customURL</em></code>.</li>
<li>Add to the Web Part to Web Part Pages that are in different subsite languages.</li>
</ul>
<h3><a id="office_sharepointwebpartstestingchecklist_verifypropdepend"></a>Verify that Web Part properties are not dependent on each other.</h3>
<p>Because you cannot guarantee the order that properties are set in the tool pane, you should avoid writing Web Part properties that are dependent on each other.</p>
<h4>To test</h4>
<ol>
<li>Test different values for properties in the tool pane.<br />
<blockquote>
<div><strong>Note</strong>   If a property is not visible in the UI, or is disabled, you can open the Web Part Page in FrontPage, switch to Code view, and then set the properties by editing the XML. Export the Web Part, save the .dwp file, and then modify the .dwp file.</div>
</blockquote>
</li>
<li>Import the .dwp file back into the page and check the property values.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartzone"></a>Verify that the Web Part works correctly with different combinations of Web Part zone settings.</h3>
<p>Web Part zones have properties that control whether a user can persist changes. If a user attempts to save changes to a Web Part without the correct permissions, a broken page can result.</p>
<p>The following Web Part zone properties affect Web Parts in the zone:</p>
<ul>
<li><strong>AllowCustomization </strong>If <strong>false</strong>, and a user is viewing the page in shared view, the Web Part cannot persist any changes to the database.</li>
<li><strong>AllowPersonalization </strong>If <strong>false</strong>, and a user is viewing the page in personal view, the Web Part cannot persist any changes to the database.</li>
<li><strong>LockLayout </strong>If <strong>true</strong>, changes to the <strong>AllowRemove</strong>, <strong>AllowZoneChange</strong>, <strong>Height</strong>, <strong>IsIncluded</strong>, <strong>IsVisible</strong>, <strong>PartOrder</strong>, <strong>Width</strong>, and <strong>ZoneID</strong> properties are not persisted to the database regardless of view.</li>
</ul>
<h4>To test</h4>
<ol>
<li>Create a page in the browser, and then add your Web Part into several zones, both in shared and personal views.</li>
<li>Open FrontPage. Open a Web Part Page on a SharePoint site and, in Design view, double-click a Web Part zone (or right-click over a Web Part zone, and then on the shortcut menu, click <strong>Web Part Zone Properties</strong>), and then change the zone properties. Alternatively, you can switch to Code view and type in the attributes for the Web Part zone control.</li>
<li>View the page in the browser.</li>
<li>Verify that the part does not break the page and functions correctly.</li>
<li>Verify that any UI displayed in the Web Part indicates to the user that changes cannot be persisted or that UI is disabled as appropriate for the zone settings.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartperms"></a>Verify that the Web Part renders appropriately based on user permissions.</h3>
<p>Because a Web Part is managed by the user at run time, the Web Part should render with a user interface that is appropriate for each user&#8217;s permissions.</p>
<h4>To test</h4>
<ol>
<li>Test with different <strong>User</strong> accounts that have only <strong>Reader</strong> or <strong>Contributor</strong> rights.</li>
<li>Make sure the UI is suppressed if the end user does not have permissions to perform a certain action. (For example, if a Web Part displays a <strong>Save</strong> button, it should be disabled or hidden if the user does not have permissions to perform that action.)</li>
<li>Turn on anonymous access for the site and browse a Web Part Page that has your Web Part, but make sure the sign-in button is still visible on the page. (When the sign-in button is displayed on the page, the user has not yet been authenticated.)</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifywebpartinstance"></a>Verify that adding several instances of the same Web Part to a Web Part Page (or in the same Web Part zone) works correctly.</h3>
<p>When you want multiple Web Parts to share client-side script, you should place the script in an external file and register the script for the page to improve performance and simplify maintenance.</p>
<h4>To test</h4>
<ol>
<li>Add several instances of the Web Part to the page. Be sure to execute any client-side script that is specific to the Web Part.</li>
<li>Add several instances of the Web Part to the same Web Part zone. Be sure to execute any client-side script that is specific to the Web Part.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifycaching"></a>Verify that Web Part caching works correctly.</h3>
<p>For any operation that works with a large amount of data, use a Web Part cache to store property values and to expedite data retrieval.</p>
<p>Web Part authors can choose to cache data in several ways, but ultimately the administrator decides the type of caching that a Web Part uses.</p>
<p>Following are the three types of cache:</p>
<ul>
<li><strong>None</strong>, which disables caching.</li>
<li><strong>Database</strong>, which uses the content database (and requires all objects to be serialized).</li>
<li><strong>CacheObject</strong>, which uses the ASP.NET <strong>Cache</strong> object (the default).</li>
</ul>
<h4>To test</h4>
<p>You set the type of cache using the value of the <strong>WebPartCache</strong> element in the web.config file.</p>
<ol>
<li>In the web.config file, change the <code>&lt;WebPartCache Storage="CacheObject"&gt;</code> statement to <code>&lt;WebPartCache Storage="Database"&gt;</code>, and make sure that the Web Part still works correctly.</li>
<li>Change the statement to <code>&lt;WebPartCache Storage="None"&gt;</code>, and then make sure that the Web Part still works correctly.<br />
<blockquote>
<div><strong>Note</strong>   By default, exceptions related to caching are not displayed by the Web Part infrastructure. For debugging purposes only, you can make the following changes to your web.config file.</div>
</blockquote>
<p>In the <code>&lt;system.web&gt;</code> tag, locate the <code>&lt;customErrors mode="On"&gt;</code> tag and change it to <code>&lt;customErrors mode="Off"&gt;</code> to see the ASP.NET exception when an error occurs instead of being redirected to the error page.</p>
<p>In the <code>&lt;SharePoint&gt;</code> tag, locate the <code>&lt;SafeMode MaxControls="50" CallStack="false"/&gt;</code> tag and change it to <code>&lt;SafeMode MaxControls="50" CallStack="true"/&gt;</code>. This causes the ASP.NET error message to display with stack trace information.</li>
</ol>
<h3><a id="office_sharepointwebpartstestingchecklist_verifyasynchronous"></a>Verify that requests to other HTTP sites or Web services are asynchronous.</h3>
<p>For performance reasons, you should use an asynchronous thread for any operation that works with a large amount of data.</p>
<h4>To test</h4>
<ol>
<li>Check with the developer to see if she or he is making any calls to Web services or other HTTP sites. Confirm that the calls are asynchronous.</li>
<li>Run some performance tests on a page with the Web Part.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=93&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/07/16/checklist-for-testing-web-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>
	</item>
		<item>
		<title>How to remove orphaned domains from Active Directory</title>
		<link>http://saagara.wordpress.com/2010/06/17/how-to-remove-orphaned-domains-from-active-directory/</link>
		<comments>http://saagara.wordpress.com/2010/06/17/how-to-remove-orphaned-domains-from-active-directory/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 06:07:17 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Active Directory (AD)]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=81</guid>
		<description><![CDATA[Typically, when the last domain controller for a domain is demoted, the administrator selects the This server is the last domain controller in the domain option in the DCPromo tool, which removes the domain meta-data from Active Directory. This article describes how to remove domain meta-data from Active Directory if this procedure is not used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=81&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://saagara.files.wordpress.com/2010/06/images.jpeg"><img class="alignright size-full wp-image-84" title="images" src="http://saagara.files.wordpress.com/2010/06/images.jpeg" alt="" width="100" height="127" /></a>Typically, when the last domain controller for a domain is demoted, the administrator selects the <strong>This server is the last domain controller in the domain</strong> option in the DCPromo tool, which removes the domain meta-data from Active Directory. This article describes how to remove domain meta-data from Active Directory if this procedure is not used or if or all domain controllers are taken offline but not demoted first. <strong>CAUTION</strong>: The administrator must verify that replication has occurred since the demotion of the last domain controller before manually removing the domain meta-data. Using the NTDSUTIL tool improperly can result in partial or complete loss of Active Directory functionality.</p>
<h3 id="tocHeadRef">Removing Orphaned Domains from Active Directory</h3>
<ol>
<li>Determine the domain controller that holds the Domain Naming Master Flexible Single Master Operations (FSMO) role. To identify the server holding this role:
<ol>
<li>Start the Active Directory Domains and Trusts Microsoft Management Console (MMC) snap-in from the <strong>Administrative Tools</strong> menu.</li>
<li>Right-click the root node in the left pane titled <strong>Active Directory Domains and Trusts</strong>, and then click <strong>Operations Master</strong>.</li>
<li>The domain controller that currently holds this role is identified in the Current Operations Master frame.<strong>NOTE</strong>: If this changed recently, not all computer may have received this change yet due to replication.For more information about FSMO roles, click the following article number to view the article in the Microsoft Knowledge Base:
<div><a href="http://support.microsoft.com/kb/197132/">197132</a> (http://support.microsoft.com/kb/197132/                         )            Windows 2000 Active Directory FSMO Roles</div>
</li>
</ol>
</li>
<li>Verify that all servers for the domain have been demoted.</li>
<li>Click <strong>Start</strong>, point to <strong>Programs</strong>, point to <strong>Accessories</strong>, and then click <strong>Command Prompt</strong>.</li>
<li>At the command prompt, type: ntdsutil.</li>
<li>Type: metadata cleanup, and then press ENTER.</li>
<li>Type: connections, and then press ENTER. This menu is used to connect to the specific server on which the changes will occur. If the currently logged-on user is not a member of the Enterprise Admins group, alternate credentials can be supplied by specifying the credentials to use before making the connection. To do so, type: set creds domainname username password , and then press ENTER. For a null password, type: null for the password parameter.</li>
<li>Type: connect to server <var>servername</var> (where <var>servername</var> is the name of the domain controller holding the Domain Naming Master FSMO Role), and then press ENTER. You should receive confirmation that the connection is successfully established. If an error occurs, verify that the domain controller being used in the connection is available and that the credentials you supplied have administrative permissions on the server.</li>
<li>Type: quit, and then press ENTER. The <strong>Metadata Cleanup</strong> menu is displayed.</li>
<li>Type: select operation target, and then press ENTER.</li>
<li>Type: list domains, and then press ENTER. A list of domains in the forest is displayed, each with an associated number.</li>
<li>Type: select domain <var>number</var>, and then press ENTER, where <var>number</var> is the number associated with the domain to be removed.</li>
<li>Type: quit, and then press ENTER. The <strong>Metadata Cleanup</strong> menu is displayed.</li>
<li>Type: remove selected domain, and then press ENTER. You should receive confirmation that the removal was successful. If an error occurs, please refer to the Microsoft Knowledge Base for articles on specific error messages.</li>
<li>Type: quit at each menu to quit the NTDSUTIL tool. You should receive confirmation that the connection disconnected successfully.</li>
</ol>
<p><strong>Domain controllers do not demote gracefully when you use the Active Directory Installation Wizard to force demotion in Windows Server 2003</strong></p>
<h3 id="tocHeadRef">Windows Server 2003 domain controllers</h3>
<ol>
<li>By default, Windows Server 2003 domain controllers support forced demotion. Click <strong class="uiterm">Start</strong>, click <strong class="uiterm">Run</strong>, and then type the following command:
<div class="indent"><span class="userInput">dcpromo /forceremoval</span></div>
</li>
<li> Click <strong class="uiterm">OK</strong>.</li>
<li>At the <strong class="uiterm">Welcome to the Active Directory Installation Wizard</strong> page, click <strong class="uiterm">Next</strong>.</li>
<li>At the <strong class="uiterm">Force the Removal of Active Directory</strong> page, click <strong class="uiterm">Next</strong>.</li>
<li>In <strong class="uiterm">Administrator Password</strong>, type the password and confirmed password that you want to assign to the Administrator account of the local SAM database, and then click <strong class="uiterm">Next</strong>.</li>
<li>In <strong class="uiterm">Summary</strong>, click <strong class="uiterm">Next</strong>.</li>
<li>Perform a metadata cleanup for the demoted domain controller on a surviving domain controller in the forest.</li>
</ol>
<p>If you removed a domain from the forest by using the <strong>remove selected domain</strong> command in Ntdsutil, verify that all the domain controllers and the global catalog servers in the forest have removed all the objects and the references to the domain that you just removed before you promote a new domain into the same forest with the same domain name. Windows 2000 Service Pack 3 (SP3) and earlier global catalog servers are noticeably slower to remove objects and naming contexts than Windows Server 2003 is.</p>
<p>If resource access control entries (ACEs) on the computer that you removed Active Directory from were based on domain local groups, these permissions may have to be reconfigured, because these groups will not be available to member or stand-alone servers. If you plan to install Active Directory on the computer to make it a domain controller in the original domain, you do not have to configure access control lists (ACLs) any more. If you prefer to leave the computer as a member or stand-alone server, any permissions that are based on domain local groups must be translated or replaced. For more information about how permissions are affected after you remove Active Directory from a domain controller, click the following article number to view the article in the Microsoft Knowledge Base:</p>
<div class="indent"><a class="KBlink" href="http://support.microsoft.com/kb/320230/">320230</a> <span class="pLink"> (http://support.microsoft.com/kb/320230/                         ) </span> Permissions are affected after you demote a domain controller</div>
<div class="indent">
<h3 id="tocHeadRef">If the domain controller cannot start in normal mode</h3>
<p><strong>Important</strong> This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:</p>
<div class="indent"><a class="KBlink" href="http://support.microsoft.com/kb/322756/">322756</a> <span class="pLink"> (http://support.microsoft.com/kb/322756/                         ) </span> How to back up and restore the registry in Windows</div>
<p><strong>Important</strong> Follow these steps only as a last resort if the domain controller cannot start in normal mode.</p>
<p>To remove Active Directory from a domain controller, follow these steps:</p>
<ol>
<li>Restart the computer, and then press F8 to display the <strong class="uiterm">Windows 2000 Advanced Options</strong> menu.</li>
<li> Choose <strong class="uiterm">Directory Services Restore Mode</strong>, press ENTER, and then press ENTER again to continue restarting.</li>
<li>Modify the ProductType entry in the registry. To do this, follow these steps:
<ol>
<li>Click <strong class="uiterm">Start</strong>, click <strong class="uiterm">Run</strong>, type <span class="userInput">regedit</span>, and then click <strong class="uiterm">OK</strong>.</li>
<li>Locate the following registry subkey:
<div class="indent">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions</div>
</li>
<li>In the right-pane, double-click <strong class="uiterm">ProductType</strong>.</li>
<li>Type <span class="userInput">ServerNT</span> in the <strong class="uiterm">Value data</strong> box, and then click <strong class="uiterm">OK</strong>.<strong>Note</strong> If this value is not set correctly or is misspelled, you may receive the following error message:
<div class="kb_errormsgbody">
<div class="kb_errorcontent">
<div class="errormsg">System Process &#8211; License Violation: The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with product type is not permitted.</div>
</div>
</div>
</li>
<li>Quit Registry Editor.</li>
</ol>
</li>
<li>Restart the computer.</li>
<li>Log on with the administrator account and password that is used for Directory Service Repair mode.The computer will behave as a member server. However, there are still some remaining files and registry entries on the computer that are associated with the domain controller.</li>
<li>Start Registry Editor and locate the following registry entry:
<div class="indent">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters</div>
<p>If there is an entry for  Src Root Domain Srv, right-click the value and then click <strong class="uiterm">Delete</strong>. This value must be deleted so that the domain controller sees itself as the only domain controller in the domain after promotion.</p>
<p><strong>Important</strong> The above step is critical. Without it the re-promotion into the temporary AD forest will not complete and you will not be able to log on to the domain controller.</li>
<li> Remove the remaining files and registry entries. To do this, follow these steps:
<ol>
<li>Start the Active Directory Installation Wizard.</li>
<li>Install Active Directory to make the computer a domain controller for a new, temporary domain, such as &#8220;psstemp.deleteme.&#8221;<strong>Note</strong> Make sure that you make the computer a domain controller in a different forest.</li>
<li>After you install Active Directory, start the Active Directory Installation Wizard again, and then remove Active Directory from the domain controller.</li>
</ol>
</li>
<li>After you remove Active Directory from a domain controller, remove metadata that is left in the domain. For more information about how to remove this metadata, click the following article number to view the article in the Microsoft Knowledge Base:
<div class="indent"><a class="KBlink" href="http://support.microsoft.com/kb/216498/">216498</a> <span class="pLink"> (http://support.microsoft.com/kb/216498/                         ) </span> How to remove data in Active Directory after an unsuccessful domain controller demotion</div>
</li>
</ol>
</div>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:673px;width:1px;height:1px;">
<h1 class="title">Domain controllers do not demote gracefully when you use the Active Directory Installation Wizard to force demotion in Windows Server 2003</h1>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=81&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/06/17/how-to-remove-orphaned-domains-from-active-directory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://saagara.files.wordpress.com/2010/06/images.jpeg" medium="image">
			<media:title type="html">images</media:title>
		</media:content>
	</item>
		<item>
		<title>Step By Step Guide for Windows Server 2003 Domain Controller and DNS Server Setup</title>
		<link>http://saagara.wordpress.com/2010/06/01/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/</link>
		<comments>http://saagara.wordpress.com/2010/06/01/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 13:47:33 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Active Directory (AD)]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=76</guid>
		<description><![CDATA[Windows Server 2003 includes all the functionality customers expect from a mission critical Windows Server operating system, such as security, reliability, availability, and scalability. In addition, Microsoft has improved and extended the Windows server product family to enable organizations to experience the benefits of Microsoft .NET—a set of software for connecting information, people, systems, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=76&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Windows Server 2003 includes all the functionality customers expect from a mission critical <a id="KonaLink0" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">Windows Server</span></a> operating system, such as security, reliability, availability, and scalability. In addition, Microsoft has improved and extended the <a id="KonaLink1" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">Windows server</span></a> product family to enable organizations to experience the benefits of Microsoft .NET—a set of software for connecting information, people, systems, and devices.<a href="http://saagara.files.wordpress.com/2010/06/ws_spider_1280x1024.jpg"><img class="alignright size-thumbnail wp-image-77" title="ws_Spider_1280x1024" src="http://saagara.files.wordpress.com/2010/06/ws_spider_1280x1024.jpg?w=150&#038;h=112" alt="" width="150" height="112" /></a></p>
<p>This tutorial will explain how to create a first domain controller(DC) in your network or company includes DNS server setup in windows server 2003 .You have to install DNS server for DC without DNS the client computers wouldn’t know which one is DC.You can host DNS on a different server than DC.</p>
<p>Before Starting the DC installation process you need to make sure the following points</p>
<ul>
<li>You have installed Basic windows server 2003  installation</li>
</ul>
<ul>
<li>Make sure you have assigned a static ip address to your server</li>
</ul>
<p>Now start DC and DNS Setup process</p>
<p>First you need to go to Start–&gt;All Programs–&gt;Administrative Tools–&gt;Manage Your Server</p>
<p><img src="http://www.windowsreference.com/images/dc/1.png" alt="" width="533" height="566" align="middle" /></p>
<p>Here you need to select Add or remove a role</p>
<p><img src="http://www.windowsreference.com/images/dc/2.png" alt="" width="562" height="193" align="middle" /></p>
<p>Verify the following steps click on Next</p>
<p><img src="http://www.windowsreference.com/images/dc/3.png" alt="" width="596" height="445" align="middle" /></p>
<p>Select Server Role as <a id="KonaLink2" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">Domain</span></a> Controller option click on Next</p>
<p><img src="http://www.windowsreference.com/images/dc/4.png" alt="" width="595" height="445" align="middle" /></p>
<p>Summary of Your Selections click on Next</p>
<p><img src="http://www.windowsreference.com/images/dc/5.png" alt="" width="598" height="446" align="middle" /></p>
<p>Active Directory Installation Wizard click on Next</p>
<p><img src="http://www.windowsreference.com/images/dc/6.png" alt="" width="505" height="387" align="middle" /></p>
<p>Click “Next” on the compatibility window</p>
<p><img src="http://www.windowsreference.com/images/dc/7.png" alt="" width="502" height="385" align="middle" /></p>
<p>Next window select the default option of “Domain Controller for a new domain” and click “Next”</p>
<p><img src="http://www.windowsreference.com/images/dc/8.png" alt="" width="505" height="385" align="middle" /></p>
<p>In this tutorial we will create a domain in a new forest, because it is the first DC, so keep that option selected</p>
<p><img src="http://www.windowsreference.com/images/dc/9.png" alt="" width="502" height="385" align="middle" /></p>
<p>Now we have to think of a name for our domain. If you have a domain like windowsreference.com”, you can use it, but it isn’t suggested because computers nside of <a id="KonaLink3" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">your domain</span></a> may not be able to reach the <a id="KonaLink4" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">company website</span></a>. Active directory domains don’t need to be “real” domains like the one above – they can be anything you wish. So i will create “windowsreference.int”.</p>
<p><img src="http://www.windowsreference.com/images/dc/10.png" alt="" width="504" height="387" align="middle" /></p>
<p>Now in order to keep things simple, we will use “windowsreferenc”, which is the default selection, as the NetBIOS name of the domain.</p>
<p><img src="http://www.windowsreference.com/images/dc/11.png" alt="" width="505" height="387" align="middle" /></p>
<p>The next dialog suggests storing the AD database and log on separate hard disks and you can just leave the default settings.</p>
<p><img src="http://www.windowsreference.com/images/dc/12.png" alt="" width="502" height="383" align="middle" /></p>
<p>The SYSVOL folder is a public share, where things like .MSI software packages can be kept when you will distribute packages and you can just leave the default settings or you can change the path.</p>
<p><img src="http://www.windowsreference.com/images/dc/13.png" alt="" width="504" height="384" align="middle" /></p>
<p>Next Screen basically says that you will need a DNS server in order for everything to work the way we want it (i.e., our “windowsreference.int” to be reachable).we will install the DNS server on this machine or if you want you can installed else where select “Install and Configure…” and click next.</p>
<p><img src="http://www.windowsreference.com/images/dc/14.png" alt="" width="503" height="385" align="middle" /></p>
<p>Here you need to select the permissions for win 2000 or win 2003 server if you have any NT4 select first option otherwise select second option and click next</p>
<p><img src="http://www.windowsreference.com/images/dc/15.png" alt="" width="503" height="384" align="middle" /></p>
<p>The restore mode password is the single password that all administrators hope to never use, however they should also never forget it because this is the single password that might save a failed server.click next</p>
<p><img src="http://www.windowsreference.com/images/dc/16.png" alt="" width="502" height="387" align="middle" /></p>
<p>Now we will see a summary of what will happen click next</p>
<p><img src="http://www.windowsreference.com/images/dc/17.png" alt="" width="503" height="385" align="middle" /></p>
<p>Active directory installation process started this can take several minutes.  It’s likely that you will be prompted for your <a id="KonaLink5" href="http://www.windowsreference.com/dns/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/#" target="undefined"><span style="color:#7da7d9;">Windows Server 2003</span></a> CD (for DNS) so have it handy.</p>
<p><img src="http://www.windowsreference.com/images/dc/18.png" alt="" width="436" height="272" align="middle" /></p>
<p>Active directory Installation finish screen click Finish.</p>
<p><img src="http://www.windowsreference.com/images/dc/19.png" alt="" width="503" height="385" align="middle" /></p>
<p>Now you need to select “Restart Now” option to reboot your server.</p>
<p><img src="http://www.windowsreference.com/images/dc/20.png" alt="" width="360" height="139" align="middle" /></p>
<p>After rebooting you can see new option for logon</p>
<p><img src="http://www.windowsreference.com/images/dc/21.png" alt="" width="417" height="288" align="middle" /></p>
<p>After logging in you can see similar to the following screen saying your server is now domain controller.</p>
<p><img src="http://www.windowsreference.com/images/dc/22.png" alt="" width="597" height="447" align="middle" /></p>
<p>That’s it now your server is configured as domain controller and DNS server.</p>
<p>If you want Step by step guide how to install windows server 2003 check <a href="http://www.windowsreference.com/windows-2003/step-by-step-windows-server-2003-installation-guide/" target="_blank">here</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=76&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/06/01/step-by-step-guide-for-windows-server-2003-domain-controller-and-dns-server-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://saagara.files.wordpress.com/2010/06/ws_spider_1280x1024.jpg?w=150" medium="image">
			<media:title type="html">ws_Spider_1280x1024</media:title>
		</media:content>

		<media:content url="http://www.windowsreference.com/images/dc/1.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/2.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/3.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/4.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/5.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/6.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/7.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/8.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/9.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/10.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/11.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/12.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/13.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/14.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/15.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/16.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/17.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/18.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/19.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/20.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/21.png" medium="image" />

		<media:content url="http://www.windowsreference.com/images/dc/22.png" medium="image" />
	</item>
		<item>
		<title>10 Steps to Install and Use the Free VMware ESXi 4</title>
		<link>http://saagara.wordpress.com/2010/05/30/10-steps-to-install-and-use-the-free-vmware-esxi-4/</link>
		<comments>http://saagara.wordpress.com/2010/05/30/10-steps-to-install-and-use-the-free-vmware-esxi-4/#comments</comments>
		<pubDate>Sun, 30 May 2010 15:40:04 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=72</guid>
		<description><![CDATA[Introduction In my recent article 10 Reasons why VMware ESXi 4 is perfect for the SMB I covered why VMware ESXi 4 is perfect for the SMB. In this follow up article, I will show you, step by step, how to download, install, and get started using VMware ESXi version 4. Let us get started [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=72&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In my recent article <a href="http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-articles/general/10-reasons-why-vmware-esxi-4-perfect-smb.html">10 Reasons why VMware ESXi 4 is perfect for the SMB</a><strong> </strong>I covered why VMware ESXi 4 is perfect for the SMB. In this follow up article, I will show you, step by step, how to download, install, and get started using VMware ESXi version 4. Let us get started then!</p>
<h2>1.      Make sure your Hardware is Compatible</h2>
<p>Before starting the process of downloading VMware ESXi, you must make sure that your hardware is compatible with VMware ESXi version 4. This is especially true because ESX and ESXi version 4 require a server with a 64 bit CPU. In other words, ESXi 4 would not run on a server with a 32 bit CPU.</p>
<p>To verify that your hardware is compatible, checkout <a href="http://vmware.com/resources/compatibility/search.php" target="_blank">VMware’s Hardware Compatibility List</a>. If you do have a 64 bit CPU but your hardware is not on the list, I encourage you to still try out ESXi 4 to see if it works on your hardware.</p>
<p>If you only have a 32 bit CPU, VMware is still offering <a href="https://www.vmware.com/go/getesxi/" target="_blank">ESXi 3.5 Free Edition</a> that is compatible with 32 bit CPUs.</p>
<h2>2.      Register with VMware and Activate your account</h2>
<p>Once you know that your hardware is compatible, you are ready to obtain ESXi 4. However, to obtain it, you need to register to download it. To do this, go to the <a href="https://www.vmware.com/tryvmware/index.php?p=free-esxi&amp;lp=1" target="_blank">ESXi Free Download website</a>. Enter your name and email address to activate your account.</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0021261229318990.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 1:</strong> Registering to download the free VMware ESXi 4</p>
<p>You will receive an email where you will click to activate your registration. That will take you to the download site for ESXi 4.</p>
<h2>3.      Download ESXi Free</h2>
<p>Next, you will see that ISO and ZIP versions available for download. You will also see your activation code. Make sure you keep that code handy for later.</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0041261229319006.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 2: </strong>Downloading the VMware ESXi ISO Image</p>
<p>Click on the ISO image and download the 341MB file. You do not want the ZIP file as that is for upgrading, not a fresh install.</p>
<h2>4.      Burn a CD</h2>
<p>Once downloaded, that image needs to be burned to a physical CD (unless you are going to <a href="http://www.vmwarevideos.com/running-vmware-esx-35-and-esxi-in-workstation-on-your-desktop-pc" target="_blank">run ESXi inside VMware Workstation</a>). In other words, if you are going to run ESXi on a physical server (everyone is except in rare cases), then you need to put it on a CD and boot that server off of the CD.</p>
<p>To do this, you will need to burn the CD using CD Burning / CD Authoring software and a CD recordable drive.</p>
<p>In my case, I had a CD authoring software installed (called Power2Go) that came with my CD/DVD drive so when I double-clicked on the download, the burning software started.</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0061261229319006.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 3: </strong>Burning ESXi to a CD</p>
<p>You should note that you only need to insert a CD recordable disk, not a DVD as this image is only 340MB. Also, because of this, the burning will only take a few minutes.</p>
<p>For more information on ISO Burning, see this article – <a href="http://www.petri.co.il/how_to_write_iso_files_to_cd.htm" target="_blank">How to Write ISO Files to CD</a>.</p>
<h2>5.      Obtain IP address and register hostname in DNS</h2>
<p>While the image is burning and you have a few minutes to spare, I recommend that you figure out what static IP address you will use for the new ESXi host. Also, you want to figure out what DNS name you will use and create an alias for the ESX hostname in your DNS server. Of course, that DNS host name will map up with the static IP address you carved out for the new ESXi host.</p>
<h2>6.      Boot ESXi and Install</h2>
<p>At this point, you can take your burned VMware ESXi 4 CD, insert it into the server and start the installation process. Like any CD that you are trying to boot, you may need to check the boot order in your BIOS or press a key (like ESC) to manually boot from the ESXi CD in the CDROM drive.</p>
<p>The ESXi installation process is quick and easy. It is likely that you will take all the defaults, with the only deterrent being that you should enter all the necessary network information such as:</p>
<ul>
<li>
<div>Static IP address and hostname you defined in step 5</div>
</li>
<li>
<div>DNS servers and DNS suffix</div>
</li>
<li>
<div>Default gateway</div>
</li>
</ul>
<p>For some basic step by step on the installation process with screenshots, please see my article- <a href="http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-articles/installation-and-deployment/new-vmware-esxi-server-configuration-checklist.html">New VMware ESXi Server – Configuration Checklist</a>.</p>
<h2>7.      Initial ESXi Server Configure</h2>
<p>To initially set up the new server, again, I am going to refer you to another of my articles that covers this step by step. Please see <a href="http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-articles/installation-and-deployment/new-vmware-esxi-server-configuration-checklist.html">New VMware ESXi Server – Configuration Checklist</a>. This will guide you through doing things like setting the root password, locking down the server, and more.</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0081261229408365.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 4: </strong>Configuring your new server at the console</p>
<h2>8.      Install your vSphere Client</h2>
<p>To manage the new server, you need to install the vSphere client. The vSphere client is used whether you purchase the vSphere Enterprise Plus Suite for thousands of dollars or if you are using the Free ESXi only.</p>
<p>To download and install the vSphere client, just open your web browser and enter that static IP address or hostname of the new ESXi server in the address bar. This will take you to the webpage for that server where you can download the client.</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0101261229408365.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 5: </strong>Downloading the vSphere client</p>
<h2>9.      Enter your Free ESXi Activation Code</h2>
<p>Once your vSphere client is installed, you can connect to the hostname of your new ESXi host. When you do connect, you will get the message that your 60 day trial has started. “Hey wait!”, you say, “this was supposed to be a Free ESXi host, not a 60 day trial”. Well, to make it “free” you need to use the activation code that you see up in <strong>Figure 2. </strong></p>
<p>In the vSphere client, go to the <strong>Configuration</strong> tab, then to <strong>Licensed Features</strong> and add your <strong>License Key, </strong>like this:</p>
<p><img src="http://www.virtualizationadmin.com/img/upl/image0121261229408365.jpg" border="0" alt="" hspace="0" align="baseline" /><br />
<strong>Figure 6:</strong> Entering your License Key</p>
<p>At that point, you can use this ESXi host forever at no cost!</p>
<h2>10.  Install or Import a VM</h2>
<p>Finally, you need some virtual machines. You can import VMs from the Virtual Appliance Marketplace by going to <strong>File &gt; Browse Virtual Appliance Marketplace</strong> or by creating your own VM by going to <strong>File &gt; New &gt; Virtual Machine.</strong></p>
<p>You can even convert physical machines into virtual machines using a P2V conversion application.</p>
<p>At this point we are all done Downloading, Installing, and getting started with the free VMware ESXi 4 server! Do not forget to document changes for your junior IT staff and educate them how to use the new virtual infrastructure. Once you spend some time using and evaluating VMware ESXi, you may want to consider a full 60 day eval of the complete vSphere suite.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=72&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/05/30/10-steps-to-install-and-use-the-free-vmware-esxi-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0021261229318990.jpg" medium="image" />

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0041261229319006.jpg" medium="image" />

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0061261229319006.jpg" medium="image" />

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0081261229408365.jpg" medium="image" />

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0101261229408365.jpg" medium="image" />

		<media:content url="http://www.virtualizationadmin.com/img/upl/image0121261229408365.jpg" medium="image" />
	</item>
		<item>
		<title>Database Testing guidelines</title>
		<link>http://saagara.wordpress.com/2010/05/12/database-testing-guidelines/</link>
		<comments>http://saagara.wordpress.com/2010/05/12/database-testing-guidelines/#comments</comments>
		<pubDate>Wed, 12 May 2010 10:46:30 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Manual Testing]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=60</guid>
		<description><![CDATA[S. No Guide Lines Examples 1 Validate the connectivity of the DB Check whether the user is able to connect to the database 2 Validating the data that is getting stored in the table If user is giving some inputs through GUI then check for the data that is getting stored in the tables 3 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=60&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table style="height:1824px;" border="0" cellspacing="0" cellpadding="0" width="856">
<col width="64"></col>
<col width="321"></col>
<col width="338"></col>
<tbody>
<tr>
<td width="64" height="20">
<h3>S. No</h3>
</td>
<td width="321">
<h3>Guide Lines</h3>
</td>
<td width="338">
<h3>Examples</h3>
</td>
</tr>
<tr>
<td height="40">1</td>
<td width="321">Validate   the connectivity of the DB</td>
<td width="338">Check   whether the user is able to connect to the database</td>
</tr>
<tr>
<td height="40">2</td>
<td width="321">Validating   the data that is getting stored in the table</td>
<td width="338">If   user is giving some inputs through GUI then check for the data that is   getting stored in the tables</td>
</tr>
<tr>
<td height="60">3</td>
<td width="321">Field   type validation for each input</td>
<td width="338">Suppose   if user enters some alphabets in the place of pin code, In GUI we will get   error message but what happens at the table level</td>
</tr>
<tr>
<td height="120">4</td>
<td width="321">Validating   the integrity of the data that is getting stored in the table</td>
<td width="338">Assume   that user is giving his bank details and it is supposed to be stored in   bank_details table and if he gives his personal details it is supposed to be   stored in personal_details table. Now when try to get the all details in a   report, check how the data in the two tables are integrated.</td>
</tr>
<tr>
<td height="80">5</td>
<td width="321">Validating   the Data corruption</td>
<td width="338">Check   directly in the table for data corruption &#8211; means that what ever the data   that we feed the system should be saved in the proper readable format</td>
</tr>
<tr>
<td height="80">6</td>
<td width="321">Validating   the Data Encryption and decryption</td>
<td width="338">For   some sensitive data, while saving the records in table it should be encrypted   and while displayed in the GUI it should be decrypted Eg: Password, IPIN,   QPIN etc</td>
</tr>
<tr>
<td height="60">7</td>
<td width="321">Validating   the users (with appropriate role) who can access the DB directly</td>
<td width="338">Generally   end users are not allowed to access the DB. Login as end user and check   whether you can access the DB.</td>
</tr>
<tr>
<td height="80">8</td>
<td width="321">Validating   the users (with appropriate role) who can change the Data in the DB   directly</td>
<td width="338">Even   if users has read permission on DB not all the users will have the write   permission, Check for the update, delete operations on DB directly with   proper and improper permissions</td>
</tr>
<tr>
<td height="100">9</td>
<td width="321">Lack   of data integrity across multiple tables in the DB</td>
<td width="338">When   some user details are getting stored in the multiple table then the data   across table should be integrated with primary key (which can&#8217;t be null or   duplicated) or else it will create problem in accessing the data.</td>
</tr>
<tr>
<td height="140">10</td>
<td width="321">Validate   the data that is displayed in the user viewable report</td>
<td width="338">Genarally   the report will fetch data from multiple tables. In this case check the data   in the report. We can also check whether the sensitive data are displayed in   the report and in some pages there will be some option like display my   personal information to others, check the data that is getting displayed   based on the selection.</td>
</tr>
<tr>
<td height="60">11</td>
<td width="321">Validate   the store procedure that is getting the data for the report</td>
<td width="338">Assume   that the report is getting generated by executing the SP, then if possible   take the SP break it down to small queries and we can check the SP</td>
</tr>
<tr>
<td height="100">12</td>
<td width="321">Depending   on the application size try to get the health of the DB Server (Not all   client would be expecting this but this can used by our company to get more   work)</td>
<td width="338">In   windows we can monitor the health of DB by perfmon and in Linux we have   command like Vmstat. For any DB input output operation is very important. We   should also track the CPU, memory utilizations along with locks, dead loacks   etc.</td>
</tr>
<tr>
<td height="80">13</td>
<td width="321">Performance   of the DB if the number of records in the reports are huge</td>
<td width="338">Check   the performance of the DB when the number of records are huge &#8211; means after   getting the request how much time does the DB takes to respond to that query.</td>
</tr>
<tr>
<td height="60">14</td>
<td width="321">Finally,   make sure that test cases are there are for certain basic operation like   create, update, retrieve &amp; deleting</td>
<td width="338">This   is called CURD testing. Any user should be allowed to this operation from UI   level (again based on permission and type of application).</td>
</tr>
<tr>
<td height="20"></td>
<td width="321"></td>
<td width="338"></td>
</tr>
<tr>
<td height="20">
<h3>S.No</h3>
</td>
<td width="321">
<h3>Advanced points   during DB Testing</h3>
</td>
<td width="338"></td>
</tr>
<tr>
<td height="100">1</td>
<td width="321">Before   we start testing the DB we would need enough realistic data which should be   similar to production environment (as much as possible). Dummy test data that   we are using will not catch all bugs</td>
<td width="338"></td>
</tr>
<tr>
<td height="60">2</td>
<td width="321">Dummy   DB should be created and by adding, deleting the records we could easily know   the relation between the tables</td>
<td width="338"></td>
</tr>
<tr>
<td height="80">3</td>
<td width="321">Some   basic adjustments for DB tuning like primary heap size, secondary heap size,   query logs etc should be analyzed so that we can have better idea about the   testing</td>
<td width="338"></td>
</tr>
<tr>
<td height="40">4</td>
<td width="321">Testing   indexes &#8211; Before index what is the time taken and after indexing what is the   time taken</td>
<td width="338"></td>
</tr>
<tr>
<td height="80">5</td>
<td width="321">Validating   the need of SP &#8211; SP will store the data in the temp table before it gives   data to the user, Some kind of validation should be there to decide the need   of store procedure</td>
<td width="338"></td>
</tr>
<tr>
<td height="60">6</td>
<td width="321">Testing   SP &#8211; Testing the store procedure could be break the SP in to smaller queries   and execute one by one.</td>
<td width="338"></td>
</tr>
<tr>
<td height="80">7</td>
<td width="321">Error   Handling of SP can be tested &#8211; Pass parameters which is not accepteable or   pass parameters which give the unexpected parameter during the execution of   SP</td>
<td width="338"></td>
</tr>
<tr>
<td height="40">8</td>
<td width="321">Get   the health report of the DB like CPU utlization, Memory utilization</td>
<td width="338"></td>
</tr>
<tr>
<td height="60">9</td>
<td width="321">Get   the query logs which can say give you the details about the query which has   taken more than the expected seconds</td>
<td width="338"></td>
</tr>
<tr>
<td height="40">10</td>
<td width="321">Get   the Input output report of the DB which plays the vital role in the DB tuning</td>
<td width="338"></td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=60&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/05/12/database-testing-guidelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>
	</item>
		<item>
		<title>Automate your web applications with WatiN</title>
		<link>http://saagara.wordpress.com/2010/05/11/automate-your-web-applications-with-watin/</link>
		<comments>http://saagara.wordpress.com/2010/05/11/automate-your-web-applications-with-watin/#comments</comments>
		<pubDate>Tue, 11 May 2010 12:00:14 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Automation Testing]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=46</guid>
		<description><![CDATA[Getting started with WatiN This article explains some of the basics to get you up and running to automate your web applications with WatiN. Index Download and install WatiN. Using WatiN from a console application. Using IE Developer Toolbar with WatiN. Download and install WatiN If you haven&#8217;t already done this, you should download the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=46&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="content-wrap">
<div id="main">
<h1>Getting started with WatiN<a href="http://saagara.files.wordpress.com/2010/05/cheshirecat1.jpg"><img class="alignright size-thumbnail wp-image-50" title="CheshireCat" src="http://saagara.files.wordpress.com/2010/05/cheshirecat1.jpg?w=150&#038;h=112" alt="" width="150" height="112" /></a></h1>
<p>This article explains some of the basics to get you up and running             to automate your web applications with WatiN.<br />
<strong>Index</strong></p>
<ol>
<li> Download and install WatiN.</li>
<li> Using WatiN from a console application.</li>
<li> Using IE Developer Toolbar with WatiN.</li>
</ol>
<p><strong>Download and install WatiN</strong></p>
<p>If you haven&#8217;t already done this, you should download the latest release of WatiN 			<a href="http://sourceforge.net/project/showfiles.php?group_id=167632">WatiN</a>.             Alternatively you could get the latest source from the <a href="http://sourceforge.net/svn/?group_id=167632">Subversion             repository</a> (using <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a>) and build it yourself.             After you downloaded the version run the installer or Unzip the  			download in a directory. Lets assume you used the msi installer, 			then WatiN will be installed in c:\Program Files\WatiN\&lt;version&gt;-&lt;.net version&gt;<br />
<strong>Using WatiN from a console application</strong></p>
<p>Start your favourite .Net ide. In this example I will use             Visual Studio 2003. Create a new console application named WatiNGettingStarted. 		    Next, add a reference to WatiN.Core.dll by opening the Add Reference             dialog and selecting the assembly from the WatiN installation directory.</p>
<p><img src="http://watin.sourceforge.net/gettingstarted_bestanden/image009.jpg" border="0" alt="" width="607" height="455" /></p>
<p><img src="http://watin.sourceforge.net/gettingstarted_bestanden/image010.jpg" border="0" alt="" width="607" height="455" /><br />
Rename the file Class1.cs to WatinConsoleExample.cs and replace             the existing code with the following code. This code will:</p>
<ol>
<li>Open a new Internet Explorer window and go to the                 Google.com website (it might be redirected to a localised                 version).</li>
<li>Type the text WatiN in the search text field which can be                 uniquely identified in the html code by the name q.</li>
<li>Click the search button which can be uniquely identified by                 the text Google Search (this is the value attribute of the html                 input element).</li>
</ol>
<p><code> using System;<br />
using WatiN.Core;</code></p>
<p>namespaceWatiNGettingStarted<br />
{<br />
class WatiNConsoleExample<br />
{<br />
[STAThread]<br />
static void Main(string[] args)<br />
{<br />
// Open a new Internet Explorer window and<br />
// goto the google website.<br />
IE ie = new IE(&#8220;http://www.google.com&#8221;);</p>
<p>// Find the search text field and type Watin in it.<br />
ie.TextField(Find.ByName(&#8220;q&#8221;)).TypeText(&#8220;WatiN&#8221;);</p>
<p>// Click the Google search button.<br />
ie.Button(Find.ByValue(&#8220;Google Search&#8221;)).Click();</p>
<p>// Uncomment the following line if you want to close<br />
// Internet Explorer and the console window immediately.<br />
//ie.Close();<br />
}<br />
}<br />
}</p>
<p>Build and start the project and see Internet Explorer go to the             Google website, search for WatiN and finally show the results             webpage.<br />
<strong>Using IE Developer Toolbar with WatiN</strong></p>
<p>Lets make this example a bit more interesting by writing the             results statistics to the console window.</p>
<p>First we need to find out how we can get this information from the             Google results webpage by using WatiN. Lets inspect the webpage             with the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en" target="_blank">Internet Explorer Developer toolbar</a> (this is a             must have if you want to do serious web automation!).</p>
<p><img src="http://watin.sourceforge.net/gettingstarted_bestanden/image011.jpg" border="0" alt="" width="607" height="455" /><br />
After opening the Dom Explorer with the View DOM button from the             DevToolBar, select Select element by click in the Find menu and             click on the results table cell on the webpage. The DOM Explorer             then shows where the table cell is located in the DOM hierarchy             (see screenshot).</p>
<p>Since the results table cell hasnt a unique identifier, like an Id             or name, we cant get a reference to the table cell in an easy way.             We need to use the hierarchy of the html elements in the page to             get to the results table cell. First lets concentrate on finding             the table the results table cell is located in. The table is the             third table so we could use the Table collection to get a reference             to this table. The code would look like this:</p>
<p><code> Table table = ie.Tables[2]; </code></p>
<p>There is another way to get this same table, using the classname of             this Table. Since no other table has the classname t assigned to             it, this makes it unique to the table we are looking for. To find             this table by its classname we will use the Find.By factory             method like this:</p>
<p><code> Table table = ie.Table(Find.By("classname","t")); </code></p>
<p>At this point we have a reference to the table the results             statistics are in. Next, find the table row and table cell the             actual info is located in.</p>
<p>Finding the right table row is simple,             there is only one row (&lt;TR&gt;) in this table. To get the             results table cell we will use the TableCells collection. The text             in the second table cell (&lt;TD&gt;) contains the info we are             looking for. This results in the following code:</p>
<p><code> string resultStats = table.TableRows[0].TableCells[1].Text; </code></p>
<p>The last thing we have to do is write this info to the Console             window. And here is the final code for this example.</p>
<p><code> using System;<br />
using WatiN.Core;</code></p>
<p>namespaceWatiNGettingStarted<br />
{<br />
class WatiNConsoleExample<br />
{<br />
[STAThread]<br />
static void Main(string[] args)<br />
{<br />
// Open an new Internet Explorer Window and<br />
// goto the google website.<br />
IE ie = new IE(&#8220;http://www.google.com&#8221;);</p>
<p>// Find the search text field and type Watin in it.<br />
ie.TextField(Find.ByName(&#8220;q&#8221;)).TypeText(&#8220;WatiN&#8221;);</p>
<p>// Click the Google search button.<br />
ie.Button(Find.ByValue(&#8220;Google Search&#8221;)).Click();</p>
<p>// Find the table cell which shows the search result statistics.<br />
Table table = ie.Table(Find.By(&#8220;classname&#8221;,&#8221;t&#8221;));<br />
string resultStats = table.TableRows[0].TableCells[1].Text;</p>
<p>// Write these statistics to the console window.<br />
Console.WriteLine(resultStats);</p>
<p>// Uncomment the following line if you want to close<br />
// Internet Explorer and the console window immediately.<br />
//ie.Close();<br />
}<br />
}<br />
}</p>
<p>Build and start the project and youll see something like this:</p>
<p><img src="http://watin.sourceforge.net/gettingstarted_bestanden/image012.jpg" border="0" alt="" width="607" height="455" /><br />
<strong>And now its up to you. Enjoy testing with WatiN!</strong></p>
</div>
<p><!-- content-wrap ends here --></p>
</div>
<p><!-- footer starts here --></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=46&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/05/11/automate-your-web-applications-with-watin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://saagara.files.wordpress.com/2010/05/cheshirecat1.jpg?w=150" medium="image">
			<media:title type="html">CheshireCat</media:title>
		</media:content>

		<media:content url="http://watin.sourceforge.net/gettingstarted_bestanden/image009.jpg" medium="image" />

		<media:content url="http://watin.sourceforge.net/gettingstarted_bestanden/image010.jpg" medium="image" />

		<media:content url="http://watin.sourceforge.net/gettingstarted_bestanden/image011.jpg" medium="image" />

		<media:content url="http://watin.sourceforge.net/gettingstarted_bestanden/image012.jpg" medium="image" />
	</item>
		<item>
		<title>Some useful QTP Scripts</title>
		<link>http://saagara.wordpress.com/2010/03/22/some-useful-qtp-scripts/</link>
		<comments>http://saagara.wordpress.com/2010/03/22/some-useful-qtp-scripts/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 09:45:41 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[QTP]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=43</guid>
		<description><![CDATA[&#8216;Get edit objects from application Set desc=Description.Create() desc(&#8220;nativeclass&#8221;).value=&#8221; Button&#8221; Set ob=window(&#8220;Flight Reservation&#8221;).ChildObjects(desc) x=ob.count for i=0 to x-1 n=n&#38;ob(i).getroproperty(&#8220;text&#8221;)&#38;ob(i).getroproperty(&#8220;attached text&#8221;)&#38;chr(10) next msgbox n &#8216;script to display the files in the given folder set fol=createobject(&#8220;Scripting.FileSystemObject&#8221;) Set fol1=fol.Getfolder(&#8220;C:\Documents and Settings\vishal\Desktop\Test3&#8243;) Set fc=fol1.Files For each f1 in fc s=s&#38;f1.name&#38;chr(10) Next msgbox s &#8216;gets subfolders from folder folderspec=inputbox(&#8220;Enter the folder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=43&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#000099;"><strong><span style="color:#3333ff;">&#8216;Get edit objects from application</span><br />
</strong></span>Set desc=Description.Create()<br />
desc(&#8220;nativeclass&#8221;).value=&#8221;</p>
<div>Button&#8221;<br />
Set ob=window(&#8220;Flight Reservation&#8221;).ChildObjects(desc)<br />
x=ob.count<br />
for i=0 to x-1<br />
n=n&amp;ob(i).getroproperty(&#8220;text&#8221;)&amp;ob(i).getroproperty(&#8220;attached text&#8221;)&amp;chr(10)<br />
next<br />
msgbox n</div>
<div><span style="color:#3333ff;"><strong>&#8216;script to display the files in the given folder<br />
</strong></span>set fol=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set fol1=fol.Getfolder(&#8220;C:\Documents and Settings\vishal\Desktop\Test3&#8243;)<br />
Set fc=fol1.Files<br />
For each f1 in fc<br />
s=s&amp;<a href="http://f1.name/" target="_blank">f1.name</a>&amp;chr(10)<br />
Next<br />
msgbox s</div>
<div><span style="color:#3333ff;"><strong>&#8216;gets subfolders from folder</strong></span><br />
folderspec=inputbox(&#8220;Enter the folder name&#8221;)<br />
x=&#8221;"<br />
Showfolderlist(folderspec)<br />
public function Showfolderlist(folderspec)<br />
set fso=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
set f=fso.GetFolder(folderspec)<br />
set sf=f.SubFolders<br />
for each f1 in sf<br />
a=<a href="http://f1.name/" target="_blank">f1.name</a><br />
b=f1.path<br />
x=x&amp;a&amp;chr(10)<br />
Showfolderlist(b)<br />
next<br />
end function<br />
msgbox x</div>
<div><span style="color:#3333ff;"><strong>&#8216;Comparing two bit maps</strong></span></div>
<div>a=&#8221;E:\\sunset.bmp&#8221;<br />
b=&#8221;E:\\sunset1.bmp&#8221;<br />
t=0<br />
set f=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set fr1=f.opentextfile(a,1)<br />
Set fr2=f.opentextfile(b,1)<br />
Do while not fr1.AtEndOfStream  and not fr2.AtEndOfStream<br />
If fr1.readline &lt;&gt; fr2.readline Then<br />
t=1<br />
Exit do<br />
End If<br />
Loop<br />
If t=1  Then<br />
msgbox(&#8220;Not Same Baba&#8221;)<br />
else msgbox (&#8220;Same Baba&#8221;)<br />
End If</div>
<div><span style="color:#3333ff;"><strong>&#8216; Links on the page</strong></span></div>
<div>Systemutil.Run &#8220;Iexplore&#8221;, &#8220;<a href="http://www.yahoomail.com/" target="_blank">www.yahoomail.com</a>&#8220;<br />
Set s=datatable.GlobalSheet<br />
Set p=s.addparameter(&#8220;Links&#8221;,&#8221;")<br />
Set sagar=description.Create ()<br />
sagar(&#8220;micclass&#8221;).value=&#8221;Link&#8221;<br />
Set baba=browser(&#8220;Yahoo! Mail &#8211; The best&#8221;).Page(&#8220;Yahoo! Mail &#8211; The best&#8221;).ChildObjects(sagar)<br />
x=baba.count<br />
msgbox x<br />
For i=0 to x-1<br />
p.valuebyrow(i+1)=baba(i).getroproperty(&#8220;Text&#8221;)<br />
Next</div>
<div><strong><span style="color:#3333ff;">&#8216;Copy text from one Notepad to another notepad</span></strong></div>
<div>a=&#8221;E:\\new1.txt&#8221;<br />
b=&#8221;E:\\new2.txt&#8221;<br />
Set f=createobject(&#8220;Scripting.FileSystemObject&#8221;)<br />
Set fr=f.opentextfile(a,1)<br />
Set fw=f.Createtextfile(b,2)<br />
While not fr.AtEndofStream<br />
a= fr.readline()<br />
fw.writeline(a)<br />
Wend</div>
<div><strong><span style="color:#3333ff;">&#8216;Connecting SQL<br />
</span></strong></div>
<div>Set cob=createobject(&#8220;ADODB.Connection&#8221;)<br />
Set ds=datatable.AddSheet(&#8220;copy&#8221;)<br />
cob.open=&#8221;DSN=dataq&#8221;<br />
Set rs=cob.execute(&#8220;select * from datt where sal =(select max(sal) from datt where sal &lt; (select max(sal) from datt))&#8221;)<br />
n=rs.fields.count<br />
For i=0 to n-1<br />
k=1<br />
x=rs.fields(i).name<br />
Set p=ds.addparameter(x,&#8221;")<br />
While not rs.eof<br />
p.valuebyrow(k)=rs(x)<br />
rs.movenext<br />
k=k+1<br />
Wend<br />
rs.movefirst<br />
Next</div>
<div><strong><span style="color:#3333ff;">&#8216;Exp on XL sheet</span></strong></div>
<div>Datatable.ImportSheet &#8220;C:\Documents and Settings\vishal\Desktop\new.xls&#8221;,1,&#8221;Action1&#8243;<br />
Set ds=datatable.GetSheet(&#8220;Action1&#8243;)<br />
rc=ds.getrowcount<br />
&#8216;msgbox rc<br />
Set pm=ds.getparameter (&#8220;col1&#8243;)<br />
Set pm1=ds.getparameter(&#8220;col2&#8243;)<br />
For i=1 to rc<br />
val=pm1.valuebyrow(i)<br />
If val=&#8221;yes&#8221; Then<br />
vall=pm.valuebyrow(i)<br />
msgbox (vall)<br />
End If<br />
Next</div>
<div><strong><span style="color:#3333ff;">&#8216;Check wether string contains upper case letter</span></strong></div>
<div>str=inputbox(&#8220;Enter the string&#8221;)<br />
lenn=len(str)<br />
j=0<br />
For i=1 to lenn<br />
ad=mid(str,i,lenn)<br />
asq=asc(ad)<br />
If asq&gt;=65 and asq&lt; 97 Then<br />
j=j+1<br />
End If<br />
Next<br />
If j&gt;0  Then<br />
msgbox (&#8220;Upper case exists&#8221;)<br />
else msgbox(&#8220;No baba&#8221;)<br />
End If</div>
<div><span style="color:#3333ff;"><strong>&#8216; Prime number</strong></span></div>
<div>Dim num<br />
Dim i<br />
num=inputbox(&#8220;Enter the number&#8221;)<br />
For i=2 to num<br />
If ((num mod i)=0) Then<br />
flag=1<br />
End If<br />
i=i+1<br />
Next<br />
if flag=0 Then<br />
msgbox(&#8220;number is  prime&#8221;)<br />
else<br />
msgbox(&#8220;number is not prime&#8221;)<br />
End If</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=43&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/03/22/some-useful-qtp-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>
	</item>
		<item>
		<title>QTP script video&#8217;s</title>
		<link>http://saagara.wordpress.com/2010/03/01/qtp-script-videos/</link>
		<comments>http://saagara.wordpress.com/2010/03/01/qtp-script-videos/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 13:12:32 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[QTP]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=35</guid>
		<description><![CDATA[Sample Keyword driven framework using QTP Script to display total number of mails in Gmail Inbox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=35&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Sample Keyword driven framework using QTP</strong></p>
<span style="text-align:center; display: block;"><a href="http://saagara.wordpress.com/2010/03/01/qtp-script-videos/"><img src="http://img.youtube.com/vi/vcoERsatw0w/2.jpg" alt="" /></a></span>
<p><strong>Script to display total number of mails in Gmail Inbox </strong></p>
<span style="text-align:center; display: block;"><a href="http://saagara.wordpress.com/2010/03/01/qtp-script-videos/"><img src="http://img.youtube.com/vi/OOxNhHR2oBk/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=35&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/03/01/qtp-script-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>
	</item>
		<item>
		<title>pyWinAuto &#8211; Automate the Microsoft Windows GUI</title>
		<link>http://saagara.wordpress.com/2010/02/23/pywinauto-automate-the-microsoft-windows-gui/</link>
		<comments>http://saagara.wordpress.com/2010/02/23/pywinauto-automate-the-microsoft-windows-gui/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:42:15 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Automation Testing]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=26</guid>
		<description><![CDATA[What is it pywinauto is a set of python modules to automate the Microsoft Windows GUI. At it&#8217;s simplest it allows you to send mouse and keyboard actions to windows dialogs and controls. Installation Download pywinauto from https://sourceforge.net/project/showfiles.php?group_id=157379 Unzip the pywinauto zip file to a folder. Run python.exe setup.py install Install the following Python packages [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=26&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<h1><a id="what-is-it" name="what-is-it"></a><a href="http://saagara.files.wordpress.com/2010/02/funnyfish1.jpeg"><img class="alignleft size-full wp-image-28" title="funnyFish" src="http://saagara.files.wordpress.com/2010/02/funnyfish1.jpeg" alt="" width="106" height="119" /></a>What is it</h1>
<p>pywinauto is a set of python modules to automate the Microsoft Windows GUI. At it&#8217;s simplest it allows you to send mouse and keyboard actions to windows dialogs and controls.</p>
</div>
<div>
<h1><a id="installation" name="installation">Installation</a></h1>
<ul>
<li>Download pywinauto from <a href="https://sourceforge.net/project/showfiles.php?group_id=157379">https://sourceforge.net/project/showfiles.php?group_id=157379</a></li>
<li>Unzip the pywinauto zip file to a folder.</li>
<li>Run <tt>python.exe setup.py install</tt></li>
<li>Install the following Python packages<br />
<blockquote>
<ul>
<li>ctypes       <a href="http://starship.python.net/crew/theller/ctypes/">http://starship.python.net/crew/theller/ctypes/</a> (download from <a href="http://sourceforge.net/project/showfiles.php?group_id=71702">http://sourceforge.net/project/showfiles.php?group_id=71702</a>)</li>
<li>Sendkeys     <a href="http://www.rutherfurd.net/python/sendkeys/index.html">http://www.rutherfurd.net/python/sendkeys/index.html</a></li>
<li><em>Optional</em> PIL          <a href="http://www.pythonware.com/products/pil/index.htm">http://www.pythonware.com/products/pil/index.htm</a></li>
<li><em>Optional</em> elementtree  <a href="http://effbot.org/downloads/">http://effbot.org/downloads/</a></li>
</ul>
</blockquote>
</li>
</ul>
<p>To check you have it installed correctly Run Python</p>
<pre>&gt;&gt;&gt; from pywinauto import application
&gt;&gt;&gt; app = application.Application.start("notepad.exe")
&gt;&gt;&gt; app.notepad.TypeKeys("%FX")</pre>
</div>
<div>
<h1><a id="where-to-start" name="where-to-start">Where to start</a></h1>
<p>Look at the examples provided in test_application.py There are examples in there to work with Notepad and MSPaint.</p>
</div>
<div>
<h1><a id="how-does-it-work" name="how-does-it-work">How does it work</a></h1>
<p>A lot is done through attribute access (__getattr__) for each class. For example when you get the attribute of an Application or Dialog object it looks for a dialog or control (respectively).</p>
<pre>myapp.Notepad # looks for a Window/Dialog of your app that has a title 'similar'
             # to "Notepad"

myapp.PageSetup.OK # looks first for a dialog with a title like "PageSetup"
                  # then it looks for a control on that dialog with a title
                  # like "OK"</pre>
<p>This attribute resolution is delayed (currently a hard coded amount of time) until it succeeds. So for example if you Select a menu option and then look for the resulting dialog e.g.</p>
<pre>app.Notepad.MenuSelect("File-&gt;SaveAs")
app.SaveAs.ComboBox5.Select("UTF-8")
app.SaveAs.edit1.SetText("Example-utf8.txt")
<span id="more-26"></span><!--more-->app.SaveAs.Save.Click()</pre>
<p>At the 2nd line the SaveAs dialog might not be open by the time this line is executed. So what happens is that we wait until we have a control to resolve before resolving the dialog. At that point if we can&#8217;t find a SaveAs dialog with a ComboBox5 control then we wait a very short period of time and try again, this is repeated up to a maximum time (currently 1 second!)</p>
<p>This avoid the user having to use time.sleep or a &#8220;WaitForDialog&#8221; function.</p>
</div>
<h1><a id="some-similar-tools-for-comparison" name="some-similar-tools-for-comparison">Some similar tools for comparison</a></h1>
<ul>
<li>Python tools<br />
<blockquote>
<ul>
<li>Watsup (<a href="http://www.tizmoi.net/watsup/intro.html">http://www.tizmoi.net/watsup/intro.html</a>)</li>
<li>winGuiAuto (<a href="http://www.brunningonline.net/simon/blog/archives/winGuiAuto.py.html">http://www.brunningonline.net/simon/blog/archives/winGuiAuto.py.html</a>)</li>
</ul>
</blockquote>
</li>
<li>Other scripting language tools<br />
<blockquote>
<ul>
<li>Perl Win32::GuiTest  (http://erngui.com/prog/perl/guitest/)</li>
<li>Ruby GuiTest (<a href="http://raa.ruby-lang.org/list.rhtml?name=win32-guitest">http://raa.ruby-lang.org/list.rhtml?name=win32-guitest</a>)</li>
<li>others (<a href="http://opensourcetesting.org/">http://opensourcetesting.org/</a>)</li>
</ul>
</blockquote>
</li>
<li>Other free tools<br />
<blockquote>
<ul>
<li>AutoIt (<a href="http://www.autoitscript.com/">http://www.autoitscript.com/</a>)</li>
<li>See collection at: <a href="http://tejasconsulting.com/open-testware/feature/gui-test-driver-survey.html">http://tejasconsulting.com/open-testware/feature/gui-test-driver-survey.html</a></li>
</ul>
</blockquote>
</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=26&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/02/23/pywinauto-automate-the-microsoft-windows-gui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://saagara.files.wordpress.com/2010/02/funnyfish1.jpeg" medium="image">
			<media:title type="html">funnyFish</media:title>
		</media:content>
	</item>
		<item>
		<title>Selenium Introduction/Overview</title>
		<link>http://saagara.wordpress.com/2010/02/23/selenium-introductionoverview/</link>
		<comments>http://saagara.wordpress.com/2010/02/23/selenium-introductionoverview/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:08:42 +0000</pubDate>
		<dc:creator>saagara</dc:creator>
				<category><![CDATA[Automation Testing]]></category>

		<guid isPermaLink="false">http://saagara.wordpress.com/?p=15</guid>
		<description><![CDATA[What does selenium do ? You can use opensource(ie free!) &#8211; Selenium tool ( selenium IDE is a plugin to firefox) to record and playback tests (like WinRunner, QTP). You can then export the recorded test in most language e.g. html, Java , .net , perl , ruby etc. The exported test can be run [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=15&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://saagara.files.wordpress.com/2010/02/selenium2.jpeg"><img class="alignleft size-full wp-image-22" title="selenium" src="http://saagara.files.wordpress.com/2010/02/selenium2.jpeg" alt="" width="104" height="94" /></a>What does selenium do ?<br />
</strong><br />
You can use opensource(ie free!) &#8211; Selenium tool ( selenium IDE is a plugin to firefox) to record and playback tests (like WinRunner, QTP). You can then export the recorded test in most language e.g. html, Java , .net , perl , ruby etc. The exported test can be run in any browser and any platform using &#8220;selenium remote control&#8221;.</p>
<p>Selenium Flash Demo(Highly recommended for beginners) :<br />
<a href="http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1" target="new">http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1 </a></p>
<p><strong>What are the components of selenium ?</strong></p>
<p>Selenium IDE &#8211; Plugin to Firefox to record and play test in firefox<br />
and also export tests in different languages. The most appealing<br />
format is the html  test case which seems to based on <a href="http://www.fitnesse.org/" target="new"> fit html </a>.<br />
Selenium RC- Allows playing of exported test in different platform/OS<br />
Selenium Grid &#8211; Allows to control lots of selenium machines..</p>
<p>Other Project Management/wrapper tools  around selenium:</p>
<p><strong> Bromine(wrapper for selenium tests): </strong><br />
<a href="http://bromine.openqa.org/" target="new">http://bromine.openqa.org/ </a><br />
<strong> Warning: </strong> The above tool at this moment(Oct 2008) is very primitive &#8211; with little<br />
documentation/flash demo. To uninstall bromine -<br />
you may have to kill all process(e.g. mysqld etc) it started and then<br />
delete the installation folder.</p>
<p><strong> How does Selenium remote control internally works ?<br />
</strong><br />
Selenium RC launches the browser with itself as the proxy server (hence you may get certificate warning in some modes) and then it injects javascript &#8211; to play the test. This also means it can easily work in ALL browsers/platform &#8211; and it can be easily used to test AJAX(unlike professional tools).</p>
<p><strong>What are the different modes that Selenium RC uses ?</strong><br />
With <a href="http://clearspace.openqa.org/community/selenium/blog/2009/01/13/selenium-rc-beta-2-goodies-and-gotchas" target="new"> latest release </a> of Selenium RC(1.0 beta 2) there<br />
are two modes for IE *iexplore(same as *iehta) and *iexploreproxy.<br />
Similarly for Firefox use *firefox(same as *chrome) and *firefoxproxy.<br />
You should prefere *iexplore(ie *iehta) and *firefox (ie *chrome)<br />
respectively as they work with cross domain.</p>
<p><strong><br />
Who should use it ? </strong></p>
<p>Developers can use it &#8211; for “browser” regression testing ( and replace htmlunit/httpunit in some cases) .</p>
<p>Per the one of the forces behind selenium(Neal ford) &#8211; it should really be used by Business Analyst first .</p>
<p>QA should enhance/use it do regression test/cross browsers testing on all platforms .</p>
<p><strong> Selenium IDE </strong></p>
<p>In below screen shot &#8211; you can see that you need to do recording in main firefox window.<br />
You can use selenium IDE to type any additional command that you may have missed(e.g. timeout)<br />
In selenium IDE &#8211; you can open Selenium IDE Options &#8211; to change default timeout or<br />
to add you own user extension to <a href="http://51elliot.blogspot.com/2008/02/selenium-ide-goto.html"> extend </a> selenium.</p>
<p><img src="http://www.jroller.com/selenium/resource/Untitled.jpg" alt="selenium/" /></p>
<p><a name="installation"> <strong> <span style="font-size:small;"> Selenium Installation </span> </strong> </a></p>
<hr size="10" noshade="noshade" />Pre Requisite :<br />
<a href="http://www.jroller.com/selenium/www.firefox.com"> Install Firefox </a><br />
<a href="http://java.sun.com/javase/downloads/index.jsp"> Install Java jdk</a>: Download jdk (not java SE) without Netbeans IDE or JEE. I am using jdk1.5(but it should work with jdk1.6)</p>
<p><a href="http://www.junit.org/"> Install (optional) Junit for java rc client</a>(ONLY  if you are using java client, you also need to add selenium  java client driver in classpath)</p>
<p><strong> Main TOOLS Installation: </strong></p>
<p><a href="http://seleniumhq.org/download/">Install Selenium IDE</a><br />
After installation &#8211; you should see selenium ide option in firefox.</p>
<p><a href="http://seleniumhq.org/download/">Install Selenium RC</a><br />
After installation &#8211; go to directory containing file &#8216;selenium-server.jar&#8217;-<br />
you will need to add appropriate bat/sh script as mentioned in<br />
below steps.</p>
<p><a name="steps"> <strong><br />
<span style="font-size:small;"> Getting Started with Selenium/ Selenium RC steps<br />
</span> </strong> </a></p>
<hr size="10" noshade="noshade" /><strong><br />
Step a) </strong> Record your test case using Selenium IDE as shown in earlier flash demo.</p>
<p>For intial recording- avoid using &#8220;cross domain&#8221;  testing (eg www.abc.com, www.def.com) and<br />
preferably use http site only.(till you figure out the workarounds)</p>
<p>eg You can use my test case that opens this tutorial(it searches for selenium tutorial<br />
on google and opens this tutorial):</p>
<pre>&lt;html&gt;

&lt;!--NOTE -  Sometimes you may have wrong or blank base url - as seen on top of IDE--&gt;

&lt;link rel="selenium.base" href="http://www.google.com/" /&gt;

&lt;title&gt;New Test&lt;/title&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;table cellpadding="1" cellspacing="1" border="1"&gt;

&lt;thead&gt;

&lt;tr&gt;&lt;td rowspan="1" colspan="3"&gt;New Test&lt;/td&gt;&lt;/tr&gt;

&lt;/thead&gt;&lt;tbody&gt;

&lt;tr&gt;

	&lt;td&gt;open&lt;/td&gt;

	&lt;td&gt;/&lt;/td&gt;

	&lt;td&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

	&lt;td&gt;type&lt;/td&gt;

	&lt;td&gt;q&lt;/td&gt;

	&lt;td&gt;selenium tutorial&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

	&lt;td&gt;clickAndWait&lt;/td&gt;

	&lt;td&gt;btnG&lt;/td&gt;

	&lt;td&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;!-- Note selenim ide noted this as click. you have to change it manually to clickAndWait--&gt;

	&lt;td&gt;clickAndWait&lt;/td&gt;

	&lt;td&gt;link=Selenium Tutorial for Beginner/Tips for Experts&lt;/td&gt;

	&lt;td&gt;&lt;/td&gt;

&lt;/tr&gt;

&lt;/tbody&gt;&lt;/table&gt;

&lt;/body&gt;

&lt;/html&gt;
</pre>
<p><strong> Step b) </strong> Play your test case using selenium IDE itself to make sure<br />
that your test case works.. Modify the recorded code if necessary(eg replace click by clickAndWait<br />
or change timeout) as explained in Quirks section.</p>
<p><strong> Step c) </strong> Export your recording  test case &#8211;  as html file<br />
and/or optionally in programming languages like java, perl etc</p>
<p><strong><br />
Do I Export in HTML or do I export in programming language like java client ? </strong></p>
<p>If you need dynamic capability (e.g. reading data from csv file or database) then<br />
you have to export it in programming language like java.<br />
You would also need to export in java &#8211; if your page has lots of flash<br />
components. e.g.<br />
<a href="http://www.adobe.com/devnet/flash/articles/flash_selenium_04.html"> http://www.adobe.com/devnet/flash/articles/flash_selenium_04.html </a></p>
<p>There is also attempt to make silverlight work with java and .net out <a href="http://code.google.com/p/silverlight-selenium/" target="new"> here.</a></p>
<p>The client code using java also is more stable (less permission denied errors) then<br />
the html case.<br />
But the html  is easy to modify/maintain and it generates nice results &#8211; whereas in<br />
java client code it tends to be cryptic(but again html test case &#8211; does not seem to be flexible).</p>
<p>I personally prefer the html option for the long term(if i don&#8217;t need dynamic capability)</p>
<p><strong> Step d) </strong> Create a test suite</p>
<p>After you saved your html test case (eg save as a.html) &#8211; you need to create<br />
a &#8220;Test Suite&#8221; (eg suite.html) &#8211; as you can NOT play test case  directly.<br />
Test suite is just a collection of test case which are defined/ordered using html table tags .<br />
If you are adding another test case in the same test suite, then &#8211; initially &#8211;  try to keep it to the<br />
same &#8211; base URL(ie starting point)<br />
- eg below</p>
<p><strong><span style="text-decoration:underline;">Suite.html</span></strong><br />
&lt;table &gt;<br />
&lt;tr&gt;&lt;td&gt;Overall Tests &lt;/td&gt;&lt;/tr&gt;<br />
&lt;tr&gt;&lt;td&gt;&lt;a href=&#8221;./a.html&#8221;&gt;TEST CASE A&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p><strong> Note: </strong><br />
1) The first row (e.g Overall Tests) in your suite is always considered as  Header<br />
2) Selnium RC does not support a TestSuite where you go across domains<br />
(ie the only domain that you would be allowed is for e.g. www.abc.com)<br />
You may be able to work around it with *chrome for firefox and *iehta for IE.</p>
<p><strong> Continue Next step? </strong></p>
<p>If you are happy in running you test suite manually in Firefox only with Selenium<br />
IDE &#8211; then you can skip below steps.(Its also the most stable &#8211; with no cross domain/security<br />
warnings)</p>
<p>But If you wish to run you test suite in IE or if you want to schedule your<br />
test suite bat file automatically via inbuilt Microsoft Scheduler on XP<br />
or cron on Unix &#8211; then follow below steps.</p>
<p><strong> Step e) </strong> Run your exported html test case in IE(or firefox)  using selenium rc</p>
<p>run it in command line/bat file with below command :<br />
java -jar selenium-server.jar -multiwindow -htmlSuite &#8220;*iexplore&#8221;   &#8220;https://www.abc.com&#8221; &#8220;C:\suite.html&#8221; &#8220;C:\results.html&#8221;<br />
REM  Use *chrome for firefox and try *iexploreproxy</p>
<p>You can then see the nice results it generated and you can write a simple script to<br />
email the results to yourself in case of failure(The result html file will contained &#8220;failed&#8221;<br />
keyword).<br />
You may also schedule your test suite with default/inbuilt Microsoft Scheduler on XP.</p>
<p><strong> NOTE: </strong><br />
1) You may use -port option to change ports in above.</p>
<p>2) You may have <a href="http://clearspace.openqa.org/thread/14116"> problems </a> in using *iehta (necessary for removing security warning<br />
and going across domains)  with above options..</p>
<p>3)Warning:Its better to use *chrome mode &#8211; which is more stable. Else- You are likely<br />
to get weird permission denied error or some script error with this option  &#8211; or<br />
maybe it will ask you to download your -.do/.faces page.<br />
(But note &#8211; I don&#8217;t seem to get similar problem with java client code ie<br />
using the code that was exported to java)<br />
In short firefox is more likely to be stable as compared with IE for selenium.<br />
In rare cases &#8211; You may get some lock errors with firefox though.(in<br />
which case you may try to create seperate profile eg http://seleniumhq.org/docs/05_selenium_rc.html#specifying-the-firefox-profile<br />
or in worst case &#8211; reboot machine/reinstall it )</p>
<p><strong> Continue Next step ?</strong></p>
<p>If you want dynamic capability (eg reading from CSV file or reading from database) &#8211; then<br />
you may want to export your test case in programming language like java etc.<br />
else skip next section.</p>
<p><strong> Step f) </strong> OPTIONAL &#8211; Run your exported test case in programming like java .</p>
<p>Once selenium rc is extracted/installed then go to the directory containing selenium-server.jar.<br />
If you want to use selenium-rc using programming language like java/.net/php  etc(most cases)</p>
<p>You may want to add a bat/sh script to keep selenium rc always running..</p>
<p>REM set PATH variable to contain location of firefox/IE binary<br />
REM set PATH=%PATH%;C:\firefox/bin<br />
java -jar selenium-server.jar -multiwindow<br />
REM -interactive is more user friendly &#8211; but does not work with websites using non frameable pages<br />
REM &#8211; optionally use -port , if you want to run more then 1 instance</p>
<p>Now compile your selenium java client code with junit jar files , use selenium<br />
java client driver,  point to above selenium RC server and run it.<br />
Assuming you exported the test case with name &#8220;NewTest.java&#8221; &#8211; you<br />
can try to use below bat file(after getting the junit*jar and selelenium-java-client.jar &#8211; and creating clases directory in same folder)</p>
<p>&#8212;&#8212;&#8212; eg. put below in compileJava.bat &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<pre>REM Get  junit*.jar (got from junit.org)

REM  Get selenium-java-client-driver.jar 

REM (got from selenum rc installation/selenium-java-client-driver* folder)

REM  NOTE: classes directory should already exist in current directory

set CLIENT_JAR=.

set CLASSPATH=%CLASSPATH%;.;.\classes;;%CLIENT_JAR%\junit-4.4.jar;%CLIENT_JAR%\selenium-java-client-driver.jar

REM COMPILE(note default package at first line is com.example.tests)

javac -d classes NewTest.java

REM ensure that selenim rc server is already running on current machine

REM Now running the actual test.

java junit.textui.TestRunner com.example.tests.NewTest

REM - remove pause if you are going to schedule it.

pause;
<span style="text-align:center; display: block;"><a href="http://saagara.wordpress.com/2010/02/23/selenium-introductionoverview/"><img src="http://img.youtube.com/vi/hWQdCdH77NA/2.jpg" alt="" /></a></span></pre>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>This implies that java(or programming) code is dependent on<br />
selenium rc server to be running on same(or other) machine. But the &#8220;html test case&#8221; &#8211; launches the &#8220;selenium rc server&#8221; every time.(hence you need different port &#8211; if you run html test cases in parallel)</p>
<table border="2" rules="none">
<tbody>
<tr>
<td><strong> TIP: </strong><br />
By default selenium java client does not give nice reports(seen with html option)<br />
You may use <a href="http://loggingselenium.sourceforge.net/"> loggingselenium&#8221; </a> project to get the nice reports(along with timing).<br />
Also if you use this, it will also embed the screenshot that you called- in the html file.<br />
Best way is to run/edit- after right click/saving this <a href="http://www.jroller.com/selenium/resource/NewTest.java"> attached code </a> as the usage on their website is incomplete/confusing.<br />
It depends on <a href="http://loggingselenium.sourceforge.net/"> loggingselenium </a> and apache commons jar.</td>
</tr>
</tbody>
</table>
<p><a name="tips"> <strong> <span style="font-size:small;"> Selenium Tips and Tricks/FAQ</span> </strong> </a></p>
<hr size="10" noshade="noshade" />
<ul>
<li> Do check the reference manual <a href="http://release.seleniumhq.org/selenium-core/1.0/reference.html" target="new"> here </a> to get concepts of  selenium locators<br />
and the various commands that are available. You could get condensed version of the manual <a href="http://svn.openqa.org/fisheye/browse/%7Eraw,r=1656/selenium-rc/trunk/website/dotnet/html/Selenium.html" target="new"> here. </a></p>
<p>Without reading the manual &#8211; You may easily miss useful commands like pause(to test session timeout), storeHtmlSource (you can potentially apply <a href="http://www.theautomatedtester.co.uk/seleniumtraining/regular_expression_exercise1.html" target="new"> selenium regular expression </a> to verify the values of hidden variables insides that html) , typeKeys (to do things like page up etc)</li>
<li> Assert vs verify: If you use seleniums verify command &#8211; then the test suite/case &#8211; will still run &#8211; and fail at the end. Hence in most cases you should use assert command which will cause the test to stop.</li>
<li> Sometimes selenium IDE may use &#8220;click&#8221; instead of &#8220;clickAndWait&#8221; for some<br />
&#8220;submit&#8221; button cases resulting in your next page&#8217;s assert/verify to fail. Hence<br />
you should change it manually or add waitForPageToLoad with some timeout.</li>
<li>If the recording is not working &#8211; then go to firefox and click on &#8220;Tools-&gt;Add on -&gt; Selenium IDE &#8221; .First disable it and then enable it and restart the browser. Sometimes clicking on Selenium IDEs<br />
Options-&gt;HTML Format helps.</li>
<li>If web site does not allow itself to be frameable then use -multiwidow option(instead of -interactive) with selenium rc.</li>
<li> To eliminate certificate warning(and work cross domains ) use chrome/iehta modes -<br />
which is now default(as compared with rc beta1 version)</p>
<p>http://selenium-rc.openqa.org/experimental.html</li>
<li> If you check selenium rc options  eg &#8220;java -jar selenium-server.jar -h&#8221;<br />
then you will find that it has a &#8220;timeout&#8221; option. But that timeout is for the overall<br />
run(and not for individual &#8220;clickAndWait&#8221; ) . Hence you may be advised to use &#8220;setTimeOut&#8221; via your<br />
java program or  in case of HTML use -Selenium IDE  open test case-&gt; Add Insert new command<br />
-&gt; setTimeout with value(not Target) of say 240000 (ms)</li>
<li> Selneium has this cool &#8211; captureEntirePageScreenShot command which works<br />
well with IDE/HTML . Consider using it at critical points(to debug<br />
issues, if you schedule your test cases).<br />
But with programming language like java &#8211; it may not work(try<br />
using the experimental &#8211; <a href="http://clearspace.openqa.org/message/50403"> captureScreenshot</a> .</li>
<li> Consider writing a wrapper for your TestCase/TestSuite in .net/jsp<br />
so that you can maintain your testcase/test suite in HTML.</li>
<li>Sometimes the browsers or the java process may not get killed after the test is run.. So you may need to manually<br />
kill it(you can try to use some automated tools like <a href="http://technet.microsoft.com/en-us/sysinternals/bb896683.aspx"> Pskill </a> on Windows ).</li>
<li>When your client java test (using RC) finishes with error &#8211; then it does not give clear error -<br />
you just the line number of the failed assert in stack trace &#8211; Hence you may need to trap all exceptions and &#8211; print the last body test</li>
<li> If you are testing with page where the id dynamically changes &#8211; then You may need to use lots of xpath in your test . In that case install firebug and use &#8220;Inspect element&#8221; by right clicking on the element -&gt; Copy XPath by right click on bottom-&gt; Add &#8220;/&#8221; in front of value you got in your clipboard-&gt; paste this as a &#8220;target&#8221; in Selenium IDE for your &#8220;clickAndWait&#8221; command. You can check the validility by &#8211; click on find button in Selenium IDE to ensure that your XPath is correct(assuming that page is open) . You may find more tip on xpath using firebug/xpather<a href="http://seleniumhq.org/projects/core/xpath-help.html"> here </a></li>
<li> If you are using Selenium HTML test case &#8211; then one way to remove hard coded values<br />
in your selenium test is to have simple JSP(or asp/php) that converts CSV file to HTML file.<br />
Then you just need to invoke that JSP page (for particular CSV) &#8211; and call various &#8220;store&#8221; values<br />
and replace hard coded values in your test with &#8220;get&#8221; values .<br />
That way you can just change your test/data by just replacing the CSV file.</li>
<li> The latest selenium rc(1.0 beta 2) does support Firefox 3..<br />
With firefox 3 you can easily add your local https server with invalid certificate in safe list(to remove warning message).<br />
Its difficult to do that with Firefox 2.</li>
<li> If you are running selenium rc test with IE a site which already has invalid certificate -<br />
then IE will give a warning for &#8220;invalid certificate&#8221;. You can have selenium<br />
automatically click on &#8220;Continue&#8221; link in it(which has ID of overridelink) by adding<br />
below command  in your IE specific test case.<br />
&lt;tr&gt;<br />
&lt;td&gt;clickAndWait&lt;/td&gt;&lt;td&gt;//a[@id='overridelink'] &lt;/td&gt;</p>
<p>&lt;td&gt;&lt;/td&gt;</p>
<p>&lt;/tr&gt;<br />
With firefox 3 &#8211; you can permanently store the exception. However selenium -rc starts<br />
new firefox profile every time(probably to get around lock issues) &#8211; hence you may<br />
need to start firefox with same/particular profile.</p>
<p>You may also consider changing IE options to be strict (eg Tool-&gt;Internet Options-&gt;Advanced-&gt;Display<br />
Notification on every script error) to have selenium catch any javascript issues/bugs in your website.</li>
<li> Consider use of UI-Element &#8211; which is now supported in RC <a href="http://svn.openqa.org/fisheye/browse/%7Eraw,r=trunk/selenium/trunk/src/main/resources/core/scripts/ui-doc.html"> here<br />
</a></li>
<li>There are other good tips here.<a href="http://blog.taragana.com/index.php/archive/9-important-tips-for-selenium-remote-control-java-client-test-tool/" target="new"> 9-important-tips-for-selenium-remote-control-java-client-test-tool </a><a href="http://wiki.openqa.org/display/SEL/Selenium+core+FAQ" target="new"> Selenium core faq(eg permission denied) &#8211; Must read</a><br />
<a href="http://wiki.openqa.org/display/SRC/Selenium+RC+FAQ" target="new"> Selenium rc Faq  &#8211; Must read</a></li>
<li> if you read above FAQ &#8211; you will realize selenium has limitation in IE with certain dialog box(eg upload file, basic auth). You can get around some of the limitation with autoit script<br />
from <a href="http://qtp-help.blogspot.com/2009/07/selenium-handle-dialogs.html" target="new">this site</a>.<br />
Its advisable not to directly download the exe from above site &#8211; but rather install autoit, compile autoit script &#8211; from one of it program menus options &#8211; to Exe and than use the compiled exe.<br />
For whatever reasons &#8211; the above scripts(or autoit) does not help in Firefox dialog boxes(but you dont need it anyway as in chrome mode &#8211; selenium automatically gets rids of dialog boxes)<br />
However if you are trying to get rid of basic authentication dialog &#8211; you can directly pass user/pass in URL.(however for IE you would need to add some registery settings)PS: Autoit and autohotkey seem to have same codebase &#8211; and both have primitive recorder.<br />
(else we probably wont have needed selenium)</p>
<p>NOTE: On windows &#8211; you should use &#8216;start&#8217; in front of exe/.au3 file to make it run in background -<br />
and then run your selenium rc test in the same batch file(eg start autotItscript.au3)</li>
</ul>
<p><a name="extending"> <strong> <span style="font-size:small;"> </span></strong></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/saagara.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/saagara.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/saagara.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=saagara.wordpress.com&amp;blog=11684230&amp;post=15&amp;subd=saagara&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://saagara.wordpress.com/2010/02/23/selenium-introductionoverview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0a044915555c99c48a0c46827a6be02?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">saagara</media:title>
		</media:content>

		<media:content url="http://saagara.files.wordpress.com/2010/02/selenium2.jpeg" medium="image">
			<media:title type="html">selenium</media:title>
		</media:content>

		<media:content url="http://www.jroller.com/selenium/resource/Untitled.jpg" medium="image">
			<media:title type="html">selenium/</media:title>
		</media:content>
	</item>
	</channel>
</rss>
