<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ranorex Blog</title>
	
	<link>http://www.ranorex.com/blog</link>
	<description>Software Automation &amp; Automated Testing Blog</description>
	<lastBuildDate>Thu, 16 May 2013 11:56:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ranorex-blog" /><feedburner:info uri="ranorex-blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ranorex-blog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Franorex-blog" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Automated Testing and Dynamic IDs</title>
		<link>http://feedproxy.google.com/~r/ranorex-blog/~3/AJMGJB3XjIc/automated-testing-and-dynamic-ids</link>
		<comments>http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#comments</comments>
		<pubDate>Thu, 16 May 2013 08:40:43 +0000</pubDate>
		<dc:creator>twalter</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Improve Object Recognition]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[RanoreXPath]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tester]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.ranorex.com/blog/?p=3151</guid>
		<description><![CDATA[If software is configurable, it often means that the software relies on dynamic content – dynamic content is typically based on dynamic identifiers (IDs). Using dynamic IDs often leads to problems in test automation because they are newly generated each and every time an element is displayed. This blog post will illustrate how easy it [...]]]></description>
			<content:encoded><![CDATA[<p>If software is configurable, it often means that the software relies on dynamic content – dynamic content is typically based on dynamic identifiers (IDs). Using dynamic IDs often leads to problems in test automation because they are newly generated each and every time an element is displayed. This blog post will illustrate how easy it is with Ranorex to overcome this frequent problem in test automation in an automated way.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/robust-automation-dynamic-ids.jpg"><img class="aligncenter size-medium wp-image-3210" title="Robust Test Automation with Dynamic IDs" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/robust-automation-dynamic-ids-546x211.jpg" alt="Robust Test Automation with Dynamic IDs" width="546" height="211" /></a></p>
<ul>
<li><a href="http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#problem">What is the Problem?</a></li>
<li><a href="http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#dynamic">Identify Dynamic Content</a></li>
<li><a href="http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#add-rule">Add a Weight Rule</a></li>
<li><a href="http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#add-condition">Add a Condition to the Weight Rule</a></li>
<li><a href="http://www.ranorex.com/blog/automated-testing-and-dynamic-ids#conclusion">Conclusion</a></li>
</ul>
<p><span id="more-3151"></span><br />
<a id="problem"><br />
<h2>What is the Problem</h2>
<p>Ranorex decides which attribute will be used for object identification based on predefined attribute weights (or &#8220;RanoreXPath weights&#8221;). Usually the ID of an object will be the best and most stable attribute for identifying and object and therefore has the highest weight. But when facing dynamic IDs, the ID cannot be used to identify an element anymore because it changes each time the element is reloaded/displayed. That means that you manually have to change how the objects are identified in your repository (which might be previously created by the recorder). This blog post will illustrate how you can add so called &#8220;weight rules&#8221; (RanoreXPath weight rules) allowing you to continue using the recorder and no longer changing your repository manually afterwards.</a></p>
<p><a id="dynamic"><br />
<h2>Identify Dynamic Content</h2>
<p>First of all we have to identify in general whether we do have a dynamic ID problem or not. Let&#8217;s have a look at <a href="http://www.yahoo.com/">yahoo.com</a> which is based on YUI (Yahoo User Interface library), a free open source JavaScript and CSS library. This library uses dynamic IDs by default. To analyze the occurrence of dynamic contents you can use Ranorex Spy from the start menu. Use the &#8220;Track&#8221; button to analyze an element of the web page.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/track-element-with-dynamic-id1.jpg"><img class="aligncenter size-medium wp-image-3212" title="Identify UI element with dynamic ID" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/track-element-with-dynamic-id1-546x386.jpg" alt="Identify UI element with dynamic ID" width="546" height="386" /></a></p>
<p>When you take a closer look at the attribute &#8220;Id&#8221; of the just tracked element, you will see that it contains dynamic content (yui_3_8_1_1_13679224741219_543).</p>
<p>That leads on the one hand to a poor readability, and on the other hand destroys the testability of the page as the element cannot be identified by its ID anymore after reloading.</p>
<p>To illustrate this behavior, add the analyzed element to the repository (using the context menu), reload the website and add the element again. You will see that the same element will occur twice in your repository having different RanoreXPaths based on different IDs. Highlighting the first (red) repository element will not work as an element with the given ID is not available anymore. Also, the second (blue) element will only work until you reload the page again and a new ID is generated.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Different-Paths-After-Reload.jpg"><img class="aligncenter size-medium wp-image-3162" title="Different Paths After Reload" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Different-Paths-After-Reload-546x236.jpg" alt="Different Paths After Reload" width="546" height="236" /></a></p>
<p>So this way we identified that we do have a dynamic ID problem. (For the sake of completeness: In most of the cases the attribute &#8220;Id&#8221; leads to dynamic content issues, but of course there can be other attributes creating identification problems as well.)</a></p>
<p><a id="add-rule"><br />
<h2>Add a Weight Rule</h2>
<p>What we know now is that we will run into a problem when choosing the attribute &#8220;Id&#8221; to identify elements. Now we have to identify where our dynamic ID belongs to and create a rule on the base of that. As we can see in the &#8220;Overview&#8221; tab of Ranorex Spy, it belongs to the capability &#8220;WebElement&#8221;:</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Identify-Problem.jpg"><img class="aligncenter size-full wp-image-3164" title="Identify Problem" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Identify-Problem.jpg" alt="Identify Problem" width="389" height="394" /></a></p>
<p>Write down the capability and the belonging attribute.</p>
<p>After identifying the correct capability and its attribute, we add a path weight rule to &#8220;filter out&#8221; the dynamic content and use another property for object identification. To do so, make sure that all other Ranorex instances (Studio, Recorder, Spy, etc.) are closed and only the currently using Spy instance is open. Then open &#8220;RanoreXPath Weight Rules&#8221; editor from settings dialog and add a new weight rule by pressing the &#8220;+&#8221; button:</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight.jpg"><img class="aligncenter size-medium wp-image-3158" title="Add Path Weight " src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight-546x363.jpg" alt="Add Path Weight " width="546" height="363" /></a></p>
<p>Choose an appropriate rule name, select the previously identified capability as well as the attribute, and set the weight to 0:</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight-02.jpg"><img class="aligncenter size-medium wp-image-3159" title="Add Path Weight 02" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight-02-546x364.jpg" alt="Add Path Weight 02" width="546" height="364" /></a></p>
<p>Have a look at the attribute overview (&#8220;Show Attribute Overview…&#8221;) to get a feeling for the existing attribute weights. In order to navigate to a specific capability, simply press the initial letter of the capability&#8217;s name on your keyboard.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Attributes-Overview.jpg"><img class="aligncenter size-medium wp-image-3161" title="Attributes Overview" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Attributes-Overview-546x441.jpg" alt="Attributes Overview" width="546" height="441" /></a></p>
<p>As you can see in this dialog, the weight of the attribute &#8220;Id&#8221; is set to a value of 200. When lowering this weight to &#8220;0&#8243; the attribute &#8220;InnerText&#8221; will be used to identify the element as it&#8217;s the next higher value of 140. If no other attribute is available (because the weight is set to zero or it has no value) the index of the element will be taken to identify it (e.g. [1]).</p>
<p>(For the sake of completeness: In addition to lowering the weight of attributes you don&#8217;t want to use, you can also raise an attribute&#8217;s weight to favor the use of this specific attribute for object identification.)</a></p>
<p><a id="add-condition"><br />
<h2>Add a Condition to the Weight Rule</h2>
<p>By lowering the weight of the attribute &#8220;Id&#8221; for the capability &#8220;WebElement&#8221;, the attribute &#8220;Id&#8221; will no longer be used for object identification in general. This rule will not only filter out dynamic IDs on yahoo.com but also all other IDs for all other web pages which might not be what you want to achieve.</p>
<p>To overcome this behavior, you can add a condition by pressing the &#8220;Add Condition&#8221; button. This defines which IDs should be filtered and which shouldn&#8217;t.</p>
<p>You might have found out already that dynamically generated YUI IDs always have the prefix &#8220;yui&#8221; followed by &#8220;_&#8221; and a number for x times. This can simply be represented by the regular expression</p>
<p><strong>yui(_[0-9]+)+</strong></p>
<p>The matching expression must start with the string &#8220;yui&#8221; followed by &#8220;_&#8221; and a number for one or more times. The whole &#8220;_&#8221; and number stuff must occur one or more times. For further details about regular expression have a look at the <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expressions wiki page</a> or the chapter <a href="http://www.ranorex.com/support/user-guide-20/ranorexpath.html#c3294">RanoreXPath</a> in our user guide. Select the attribute you want to match against the regular expression from the dropdown, and then enter the regular expression.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight-Rule.jpg"><img class="aligncenter size-medium wp-image-3160" title="Add Path Weight Rule" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Add-Path-Weight-Rule-546x364.jpg" alt="Add Path Weight Rule" width="546" height="364" /></a></p>
<p>Check whether the newly created rule in the left sided list is enabled, and save your changes by pressing the &#8220;OK&#8221; button.</p>
<p>You can check whether the newly added RanoreXPath weight rule works or not by tracking the element again on the website. You will see that the attribute &#8220;Id&#8221; is no longer used to identify the element, but by the &#8220;InnerText&#8221; attribute now.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/track-element-with-dynamic-id-Filtered1.jpg"><img class="aligncenter size-medium wp-image-3214" title="Identify UI element without the use of the dynamic ID " src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/track-element-with-dynamic-id-Filtered1-546x482.jpg" alt="Identify UI element without the use of the dynamic ID " width="546" height="482" /></a></p>
<p>You can best see the difference by adding the element to the repository again (green).</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Repository.jpg"><img class="aligncenter size-medium wp-image-3165" title="Repository" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Repository-546x254.jpg" alt="Repository" width="546" height="254" /></a></a></p>
<p><a id="conclusion"><br />
<h2>Conclusion</h2>
<p>Using the RanoreXPath Weight Rules can assist you in automatically creating a robust repository which is the fundament of a robust test automation framework.</p>
<p>Also, it gives you the great advantage to continue using the recorder, and no longer being forced to change all your dynamic UI-elements in the repository manually. Just re-record and you will be fine.</p>
<p>Since you created a global &#8220;path weight rule&#8221; for your object identification, the rule will also be applied if you create a repository manually (as described in the blog post &#8220;<a href="http://www.ranorex.com/blog/manually-generate-a-test-recording#TheRepository">Did you know… that you can manually generate a recording?</a>&#8220;).</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Added-Path-Weight1.jpg"><img class="aligncenter size-medium wp-image-3157" title="Added Path Weight" src="http://www.ranorex.com/blog/wp-content/uploads/2013/05/Added-Path-Weight1-546x211.jpg" alt="Added Path Weight" width="546" height="211" /></a></a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ranorex.com%2Fblog%2Fautomated-testing-and-dynamic-ids&amp;title=Automated%20Testing%20and%20Dynamic%20IDs" id="wpa2a_2"><img src="http://www.ranorex.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><img src="http://feeds.feedburner.com/~r/ranorex-blog/~4/AJMGJB3XjIc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ranorex.com/blog/automated-testing-and-dynamic-ids/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ranorex.com/blog/automated-testing-and-dynamic-ids</feedburner:origLink></item>
		<item>
		<title>Share your Ranorex Report using any Browser</title>
		<link>http://feedproxy.google.com/~r/ranorex-blog/~3/6fEBpMrQa-Y/share-your-ranorex-report-using-any-browser</link>
		<comments>http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser#comments</comments>
		<pubDate>Wed, 17 Apr 2013 14:01:54 +0000</pubDate>
		<dc:creator>twalter</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Report]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.ranorex.com/blog/?p=3093</guid>
		<description><![CDATA[This blog post will discuss the possibilities to share your automatically generated Ranorex Reports over your local network or via email. There is no need to have Ranorex installed on the machine you will open the shared report. This is possible because the Ranorex Report format is based on XSL, XML and HTML. Performing the [...]]]></description>
			<content:encoded><![CDATA[<p>This blog post will discuss the possibilities to share your automatically generated Ranorex Reports over your local network or via email. There is no need to have Ranorex installed on the machine you will open the shared report. This is possible because the Ranorex Report format is based on XSL, XML and HTML. </p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Share-Report-Header1.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Share-Report-Header1-546x229.jpg" alt="Share Report" title="Share Report" width="546" height="229" class="aligncenter size-medium wp-image-3119" /></a></p>
<p>Performing the following very simple adaptions, you will be able to open the report file using any common browser.<br />
<span id="more-3093"></span></p>
<ul>
<li><a href="http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser#mail">Share via Mail</a></li>
<li><a href="http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser#nw">Share Over Local Network</a></li>
<li><a href="http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser#conclusion">Conclusion</a></li>
</ul>
<p><a id="mail"></p>
<h2>Share via Mail</h2>
<p></a></p>
<p>To share a Ranorex Report you can manually compress all files necessary for reporting and attach the corresponding package to your mail. Or you can simply activate the creation of a zipped report file and attach the generated zipped report file (*.rxzlog) to your mail. These two mentioned methods require that the Ranorex Report Viewer is installed on the machine receiving the shared Report.</p>
<p>To overcome this requirement simply change the extension form &#8220;*.rxlog&#8221; to &#8220;*.html&#8221; in the Test Suites properties pane.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Change-Report-Extendion-To-HTML.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Change-Report-Extendion-To-HTML-546x474.jpg" alt="Change Report Extendion To HTML" title="Change Report Extension To HTML" width="546" height="474" class="aligncenter size-medium wp-image-3099" /></a></p>
<p>After that, you will be able to open the generated report file using any common browser as well as compress all files necessary for reporting and attach them to an email.</p>
<p><a id="nw"></p>
<h2>Share Over Local Network</h2>
<p></a></p>
<p>Next to sharing your Ranorex Reports via mail, you can also share them over your company network. You can for example use the <a href="http://msdn.microsoft.com/en-us/library/ms181052(v=vs.80).aspx" target="_blank">Microsoft Internet Information Service (IIS)</a> for doing so. </p>
<p>In Ranorex Studio right-click on the project you want to share the report of and choose &#8220;Open Folder in Explorer&#8221;. Right-click the &#8220;bin&#8221; folder and open the &#8220;Properties&#8221; dialog. Switch to the &#8220;Security&#8221; tab and click on &#8220;Edit&#8221; button.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Open-Permissions.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Open-Permissions-546x288.jpg" alt="Open Permissions" title="Open Permissions" width="546" height="288" class="aligncenter size-medium wp-image-3141" /></a></p>
<p>Click on Add, enter &#8220;Authenticated Users&#8221; in the &#8220;Names&#8221; edit field and confirm the added permissions by pressing the &#8220;OK&#8221; button in all opened dialogs.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-Permission.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-Permission-546x264.jpg" alt="Add Permission" title="Add Permission" width="546" height="264" class="aligncenter size-medium wp-image-3142" /></a><br />
Define a folder in your Test Suite settings, where the report files should be stored at and change the report file extension from &#8220;*.rxlog&#8221; to &#8220;*.html&#8221;. </p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Change-Report-Filename1.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Change-Report-Filename1-546x474.jpg" alt="Change Report Filename" title="Change Report Filename" width="546" height="474" class="aligncenter size-medium wp-image-3124" /></a></p>
<p>After doing so, add a website linking to the defined Content Directory in Internet Information Service Manager.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-Website-To-IIS.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-Website-To-IIS-514x500.jpg" alt="Add Website To IIS" title="Add Website To IIS" width="514" height="500" class="aligncenter size-medium wp-image-3098" /></a></p>
<p>To correctly display your report data you have to add the extension “.data” to the list of “MIME-Types”. To do so, open the “MIME Types” settings dialog. Add a MIME Type for the file name extension “.data” with the type “application/xml”.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-MIME-Type-data.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Add-MIME-Type-data-546x324.jpg" alt="Add MIME Type data" title="Add MIME Type data" width="546" height="324" class="aligncenter size-medium wp-image-3096" /></a></p>
<p>Enable “Directory Browsing” for displaying all generated report files on your website.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Enable-Directory-Browsing.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Enable-Directory-Browsing-546x308.jpg" alt="Enable Directory Browsing" title="Enable Directory Browsing" width="546" height="308" class="aligncenter size-medium wp-image-3110" /></a></p>
<p>Now you are able to view your report file over the network using all common browsers.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Shared-Report1.jpg"><img src="http://www.ranorex.com/blog/wp-content/uploads/2013/04/Shared-Report1-546x466.jpg" alt="Shared Report" title="Shared Report" width="546" height="466" class="aligncenter size-medium wp-image-3126" /></a> </p>
<p><a id="conclusion"></p>
<h2>Conclusion</h2>
<p></a></p>
<p>By performing these easy to follow steps you will be able to share your Ranorex Reports to any machine regardless of a Ranorex installation or even the operating system by opening them using any common browser. You can even share Ranorex Reports to mobile devices.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ranorex.com%2Fblog%2Fshare-your-ranorex-report-using-any-browser&amp;title=Share%20your%20Ranorex%20Report%20using%20any%20Browser" id="wpa2a_4"><img src="http://www.ranorex.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><img src="http://feeds.feedburner.com/~r/ranorex-blog/~4/6fEBpMrQa-Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.ranorex.com/blog/share-your-ranorex-report-using-any-browser</feedburner:origLink></item>
		<item>
		<title>Automate MonoTouch and Mono for Android Cross-Platform  App Testing</title>
		<link>http://feedproxy.google.com/~r/ranorex-blog/~3/X2EgKqnlj3M/automate-monotouch-and-mono-for-android-cross-platform-app-testing</link>
		<comments>http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing#comments</comments>
		<pubDate>Thu, 14 Feb 2013 07:51:43 +0000</pubDate>
		<dc:creator>twalter</dc:creator>
				<category><![CDATA[Improve Object Recognition]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.ranorex.com/blog/?p=2840</guid>
		<description><![CDATA[This blog post illustrates how to automate testing of cross-platform apps implemented with MonoTouch for iOS and Mono for Android with Ranorex. Infrastructure Make Your &#8220;MonoTouch&#8221; (iOS) App Testable with Ranorex Make Your &#8220;Mono for Android&#8221; App Testable with Ranorex Conclusion &#160; Infrastructure MonoTouch and Mono for Android, both developed by Xamarin, are commercial implementations of [...]]]></description>
			<content:encoded><![CDATA[<p>This blog post illustrates how to <a href="http://www.ranorex.com/mobile-automation-testing.html">automate testing of cross-platform apps</a> implemented with MonoTouch for iOS and Mono for Android with Ranorex.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/Mono-Header1.jpg"><img class="aligncenter size-medium wp-image-2891" title="Automate &quot;MonoTouch&quot; and &quot;Mono for Android&quot;  Cross-Platform  App Testing" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/Mono-Header1-546x237.jpg" alt="Automate &quot;MonoTouch&quot; and &quot;Mono for Android&quot;  Cross-Platform  App Testing" width="546" height="237" /></a></p>
<p><span id="more-2840"></span></p>
<ul>
<li><a href="http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing#infrastructure">Infrastructure</a></li>
<li><a href="http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing#monotouch">Make Your &#8220;MonoTouch&#8221; (iOS) App Testable with Ranorex</a></li>
<li><a href="http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing#monoforandroid">Make Your &#8220;Mono for Android&#8221; App Testable with Ranorex</a></li>
<li><a href="http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing#conclusion">Conclusion</a></li>
</ul>
<p>&nbsp;<br />
<a id="infrastructure"></p>
<h2>Infrastructure</h2>
<p></a><br />
<a href="http://xamarin.com/monotouch" target="_blank">MonoTouch</a> and <a href="http://xamarin.com/monoforandroid" target="_blank">Mono for Android</a>, both developed by <a href="http://xamarin.com/" target="_blank">Xamarin</a>, are commercial implementations of Mono &#8211; a cross-platform implementation of C# &#8211; for iPhone and Android-based smartphones.</p>
<p>Using these two implementations it’s easy to reuse most of your existing code when porting from Android to iOS or vice versa. Next to that it&#8217;s possible to import existing .NET libraries and to use them in your Android/iOS apps.</p>
<p>Ranorex supports test automation for both, Mono Touch and Mono for Android. Simply follow the steps below to make your cross-platform app testable.</p>
<p>&nbsp;<br />
<a id="monotouch"></p>
<h2>Make Your MonoTouch (iOS) App Testable with Ranorex</h2>
<p></a><br />
To instrument your MonoTouch app you simply have to add the <a href="http://www.ranorex.com/support/user-guide-20/ios-testing.html#c4576" target="_blank">Ranorex automation library for iOS</a>  to your MonoTouch project as native library.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/00-Add-Lib.jpg"><img class="aligncenter size-medium wp-image-2911" title="Add Library as Native Lib" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/00-Add-Lib-492x500.jpg" alt="Add Library as Native Lib" width="392" height="398" /></a></p>
<p>&nbsp;<br />
<a id="monoforandroid"></p>
<h2>Make Your Mono for Android App Testable with Ranorex</h2>
<p></a><br />
To instrument your Mono for Android app simply follow the step by step instructions below.</p>
<ul>
<li>Add the Ranorex automation library for Android (&lt;<em>RanorexInstallDir</em>&gt;\bin\RxEnv\Android\Ranorex.jar) to your Mono for Android project.<br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/01-Add-Lib-01.jpg"><img class="aligncenter size-medium wp-image-2899" title="Add Ranorex Automation Library 1" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/01-Add-Lib-01-546x409.jpg" alt="Add Ranorex Automation Library 1" width="517" height="387" /></a><br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/02-Add-Lib-02.jpg"><img class="aligncenter size-full wp-image-2852" title="Add Ranorex Automation Library 2" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/02-Add-Lib-02.jpg" alt="Add Ranorex Automation Library 2" width="323" height="231" /></a><br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/03-Copy-Lib.jpg"><img class="aligncenter size-medium wp-image-2853" title="Copy Ranorex Automation Library" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/03-Copy-Lib-546x239.jpg" alt="Copy Ranorex Automation Library" width="384" height="168" /></a></li>
<li>Open the properties of the added file and set the build action to &#8220;AndroidJavaLibrary&#8221;.<br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/04-set-build-action-01.jpg"><img class="aligncenter size-full wp-image-2902" title="Set Build Action 1" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/04-set-build-action-01.jpg" alt="Set Build Action 1" width="209" height="322" /></a><br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/05-set-build-action-021.jpg"><img class="aligncenter size-medium wp-image-2883" title="Set Build Action 2" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/05-set-build-action-021-423x500.jpg" alt="Set Build Action 2" width="304" height="359" /></a></li>
<li>Download the file <a href="http://www.ranorex.com/download/mobile/RanorexAndroidMonoInstrumentation.cs">RanorexAndroidMonoInstrumentation.cs</a> and add it to your project (the same way as described in the first step).</li>
<li>Add the following lines of code to each activity in your project:
<pre name="code" class="c#">public override bool DispatchKeyEvent (KeyEvent e)
{
  Ranorex.RanorexAndroidMonoInstrumentation.dispatchKeyEvent(e);
  return base.DispatchKeyEvent (e);
}

protected override void OnResume ()
{
  base.OnResume ();
  Ranorex.RanorexAndroidMonoInstrumentation.onResume(this);
}

protected override void OnPause ()
{
  base.OnPause ();
  Ranorex.RanorexAndroidMonoInstrumentation.onPause(this);
}</pre>
</li>
<li>Open the properties of your project and add a new &#8220;Android Manifest&#8221; in the &#8220;Mono for Android Application&#8221; area.<br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/06-Add-Manifest.jpg"><img class="aligncenter size-medium wp-image-2862" title="Add a Manifest" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/06-Add-Manifest-546x388.jpg" alt="Add a Manifest" width="400" height="272" /></a></li>
<li>Add &#8220;(RxInstrumented$4.x.x)&#8221; to the version name (whereas 4.x.x is the Ranorex version you are using) and activate the check boxes &#8220;INJECT_EVENTS&#8221; and &#8220;INTERNET&#8221; in the &#8220;Required permission&#8221; area.<br />
<a href="http://www.ranorex.com/blog/wp-content/uploads/2013/02/07-Update-Manifest.jpg"><img class="aligncenter size-medium wp-image-2863" title="Update Manifest" src="http://www.ranorex.com/blog/wp-content/uploads/2013/02/07-Update-Manifest-546x381.jpg" alt="Update Manifest" width="508" height="355" /></a></li>
</ul>
<p>&nbsp;<br />
<a id="conclusion"></p>
<h2>Conclusion</h2>
<p></a><br />
Following these simple step by step instructions will make your MonoTouch and Mono for Android apps accessible for Ranorex and nothing should be standing between you and your robust cross-platform test automation.</p>
<p>To get started with mobile test automation, have a look at the chapters &#8220;<a href="http://www.ranorex.com/support/user-guide-20/android-testing.html" target="_blank">Android Testing</a>&#8221; and &#8220;<a href="http://www.ranorex.com/support/user-guide-20/ios-testing.html" target="_blank">iOS Testing</a>&#8221; in our user guide.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ranorex.com%2Fblog%2Fautomate-monotouch-and-mono-for-android-cross-platform-app-testing&amp;title=Automate%20MonoTouch%20and%20Mono%20for%20Android%20Cross-Platform%20%20App%20Testing" id="wpa2a_6"><img src="http://www.ranorex.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><img src="http://feeds.feedburner.com/~r/ranorex-blog/~4/X2EgKqnlj3M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ranorex.com/blog/automate-monotouch-and-mono-for-android-cross-platform-app-testing</feedburner:origLink></item>
		<item>
		<title>Bamboo CI with Ranorex Test Automation</title>
		<link>http://feedproxy.google.com/~r/ranorex-blog/~3/HK7GIUjIFBk/bamboo-ci-with-ranorex-test-automation</link>
		<comments>http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#comments</comments>
		<pubDate>Wed, 14 Nov 2012 15:00:51 +0000</pubDate>
		<dc:creator>twalter</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[Agile Software Developement]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Command Line Arguments]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Report]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Test Suite]]></category>

		<guid isPermaLink="false">http://www.ranorex.com/blog/?p=2649</guid>
		<description><![CDATA[The common method for developing software has been shifting more and more from classical development models to more agile software development. In response to numerous inquiries from Ranorex customers, we have decided to write another Ranorex integration blog. This blog post will illustrate the integration of Ranorex Automation into a Bamboo Continuous Integration Process. Infrastructure [...]]]></description>
			<content:encoded><![CDATA[<p>The common method for developing software has been shifting more and more from classical development models to more agile software development. In response to numerous inquiries from Ranorex customers, we have decided to write another Ranorex integration blog. This blog post will illustrate the integration of Ranorex Automation into a Bamboo Continuous Integration Process.</p>
<p><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Integration-Header1-546x122.png" alt="Bamboo Integration" title="Bamboo Integration" width="546" height="122" class="aligncenter size-medium wp-image-2741" /></p>
<p><span id="more-2649"></span></p>
<ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#infrastructure">Infrastructure</a></li>
<ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#vcs">Version Control System</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#bamboo-server">Bamboo Server</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#build-agent">Build Agent</a></li>
</ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#add-plan">Add a new Plan</a></li>
<ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#vcsettings">Version Control Settings</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#tasks">Configure Tasks</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#artifacts">Configure Artifacts</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#notifications">Configure Notifications</a></li>
</ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#run-job">Run Job</a></li>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation#conclusion">Conclusion</a></li>
</ul>
<p><a id="infrastructure" /></p>
<h2>Infrastructure</h2>
<p>The fundamental principle of agile software development is to control changes and rapidly get response about the effects of the changes.<br />
Applied to your Continuous Integration Process the infrastructure can be sketched as follows:</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Bamboo-Integration1.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Bamboo-Integration1-546x198.png" alt="Bamboo Integration" title="Bamboo Integration" width="546" height="198" class="aligncenter size-medium wp-image-2745" /></a></p>
<p>A developer or test engineer commits his changes to the version control system. Based on the committed change, the version control system triggers the continuous integration system to start a job which triggers the build agent to</p>
<ul>
<li>check out the modified source from the version control system,</li>
<li>build the application under test (AUT),</li>
<li>build the Ranorex Test Suite and</li>
<li>execute the Ranorex Test Suite which tests the AUT.</li>
</ul>
<p>The corresponding Ranorex Report file as well as a build log will be attached to the build iteration.<br />
The developer and/or test engineer responsible for the changes will be notified about the build and test success.</p>
<p><a id="vcs" /></p>
<h3>Version Control System</h3>
<p>Bamboo provides built-in support for source control systems like Subversion, Mercurial, Git, Perforce and CVS. For this blog we are going to use Subversion as version control of choice.</p>
<p>In this sample we have two solutions placed in our repository: the application we are going to test and the testing application.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Repository-Structure.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Repository-Structure.png" alt="Repository-Structure" title="Repository-Structure" width="118" height="64" class="aligncenter size-full wp-image-2683" /></a></p>
<p>To start the application under test from your test project, simply add a new ‘Run Application’ action to your recorder action table which starts the application under test using a relative path from the bin folder of the testing application.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Add-RunApplication-Action.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Add-RunApplication-Action-546x35.png" alt="Add RunApplication Action" title="Add RunApplication Action" width="546" height="35" class="aligncenter size-medium wp-image-2682" /></a></p>
<p><a id="bamboo-server" /></p>
<h3>Bamboo Server</h3>
<p>Download the Bamboo installation package and follow the installation instructions.<br />
A download link and further information about Bamboo can be found on the <a href="http://www.atlassian.com/software/bamboo/overview">Atlassian homepage</a>.</p>
<p>If you are going to use the default build agent running locally on the server, make sure to not start the Bamboo Server as service, but to start the server in a console as you can see in following figure. The reason is that a service does not have sufficient rights to start and access UI applications.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Start-Bamboo-Server-From-Console.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/Start-Bamboo-Server-From-Console.png" alt="Start Bamboo Server From Console" title="Start Bamboo Server From Console" width="231" height="133" class="aligncenter size-full wp-image-2703" /></a></p>
<p>After starting the server in a console, you can access the web interface of your server from the address shown in the console window (e.g. localhost:8085).</p>
<p>Follow the instructions of the <a href="https://confluence.atlassian.com/display/BAMBOO033/Running+the+Setup+Wizard">Setup Wizard</a> to configure your CI server.</p>
<p>To allow your CI process to notify the responsible developers and testers about a build success, configure your mail server (Administration -> Communication -> Mail Server).</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/00-Bamboo-Configure-Mail-Server.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/00-Bamboo-Configure-Mail-Server-522x500.png" alt="Bamboo Configure Mail Server" title="Bamboo Configure Mail Server" width="522" height="500" class="aligncenter size-medium wp-image-2684" /></a></p>
<p><a id="build-agent" /></p>
<h3>Build Agent</h3>
<p>The default installation of the Bamboo Server includes a build agent running on the local machine. You can scale out your build infrastructure on multiple machines by installing several remote build agents using following instructions: <a href="https://confluence.atlassian.com/display/BAMBOO033/Bamboo+Remote+Agent+Installation+Guide">Bamboo Remote Agent Installation Guide</a></p>
<p><strong>Note:</strong> Make sure that a valid Ranorex license as well as the Ranorex main components are installed on every Build Agent you are going to build/execute Ranorex automation code. </p>
<p><a id="add-plan" /></p>
<h2>Add a new Plan</h2>
<p>After setting up all necessary components, it’s time to add a new Bamboo plan.</p>
<p>For this purpose click the &#8216;+ Create Plan&#8217; button in the upper right and choose &#8216;Create a New Plan&#8217;.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/00-Bamboo-Create-Plan-00.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/00-Bamboo-Create-Plan-00-546x252.png" alt="Bamboo Create Plan 00" title="Bamboo Create Plan 00" width="546" height="252" class="aligncenter size-medium wp-image-2685" /></a></p>
<p>Choose a project the plan will be added to and a plan name.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/01-Bamboo-Create-Plan-01.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/01-Bamboo-Create-Plan-01-546x407.png" alt="Bamboo Create Plan 01" title="Bamboo Create Plan 01" width="546" height="407" class="aligncenter size-medium wp-image-2686" /></a></p>
<p><a id="vcsettings" /></p>
<h3>Version Control Settings</h3>
<p>Set up the path to your source repository and the build strategy.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/02-Bamboo-Create-Plan-02.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/02-Bamboo-Create-Plan-02-546x382.png" alt="Bamboo Create Plan 02" title="Bamboo Create Plan 02" width="546" height="382" class="aligncenter size-medium wp-image-2687" /></a></p>
<p><a id="tasks" /></p>
<h3>Configure Tasks</h3>
<p>After automatically adding the first task which checks out the source code, add a MSBuild task for building the application under test by choosing the solution file (*.sln) of the application under test relatively to the SVN working copy root.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/03-Bamboo-Configure-Tasks-01.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/03-Bamboo-Configure-Tasks-01-520x500.png" alt="Bamboo Configure Tasks 01" title="Bamboo Configure Tasks 01" width="520" height="500" class="aligncenter size-medium wp-image-2688" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/04-Bamboo-Add-MSBuild-Task-01.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/04-Bamboo-Add-MSBuild-Task-01-546x346.png" alt="Bamboo Add MSBuild Task-01" title="Bamboo Add MSBuild Task-01" width="546" height="346" class="aligncenter size-medium wp-image-2689" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/05-Bamboo-Add-MSBuild-Task-02.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/05-Bamboo-Add-MSBuild-Task-02-509x500.png" alt="Bamboo Add MSBuild Task 02" title="Bamboo Add MSBuild Task 02" width="509" height="500" class="aligncenter size-medium wp-image-2690" /></a></p>
<p>Add a MSBuild task for building the testing application by choosing the solution file (*.sln) of the Ranorex Automation project relatively to the SVN working copy root.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/06-Bamboo-Configure-Tasks-02.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/06-Bamboo-Configure-Tasks-02-546x425.png" alt="Bamboo Configure Tasks 02" title="Bamboo Configure Tasks 02" width="546" height="425" class="aligncenter size-medium wp-image-2691" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/04-Bamboo-Add-MSBuild-Task-01.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/04-Bamboo-Add-MSBuild-Task-01-546x346.png" alt="Bamboo Add MSBuild Task-01" title="Bamboo Add MSBuild Task-01" width="546" height="346" class="aligncenter size-medium wp-image-2689" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/07-Bamboo-Add-MSBuild-Task-03.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/07-Bamboo-Add-MSBuild-Task-03-515x500.png" alt="Bamboo Add-MSBuild Task 03" title="Bamboo Add-MSBuild Task 03" width="515" height="500" class="aligncenter size-medium wp-image-2692" /></a></p>
<p>Add a command task which starts the Ranorex Test Suite executable.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/08-Bamboo-Configure-Tasks-03.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/08-Bamboo-Configure-Tasks-03-546x426.png" alt="Bamboo Configure Tasks 03" title="Bamboo Configure Tasks 03" width="546" height="426" class="aligncenter size-medium wp-image-2693" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/09-Bamboo-Add-Command-Task-01.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/09-Bamboo-Add-Command-Task-01-546x346.png" alt="Bamboo Add Command Task 01" title="Bamboo Add Command Task 01" width="546" height="346" class="aligncenter size-medium wp-image-2694" /></a></p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/10-Bamboo-Add-Command-Task-02.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/10-Bamboo-Add-Command-Task-02-546x496.png" alt="Bamboo Add Command Task 02" title="Bamboo Add Command Task 02" width="546" height="496" class="aligncenter size-medium wp-image-2695" /></a></p>
<p>As you can see, we defined a set of command line arguments.</p>
<p>In this sample the command parameter ‘/zr’, which triggers the test suite executable to generate a zipped report file and ‘/zrf:.\Reports\Report.rxzlog’ which defines the name and the location of the generated zipped report file, as well as the command parameter ‘tc:/TestCase’ which specifies the test case to be executed are used. The location of the report file will later be used to define the build artifacts.</p>
<p>You can find a list of all available command line arguments in the section &#8216;<a href="http://www.ranorex.com/support/user-guide-20/lesson-4-ranorex-test-suite.html#c3022">Running Tests without Ranorex Studio</a>&#8216; in our user guide.</p>
<p>The test suite executable returns ’0′ on success and ‘-1′ on a failure which allows the test agent to either mark this build step as successfully or failed.</p>
<p>After defining the tasks, the newly added plan can be enabled and created.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/11-Bamboo-Configure-Tasks-04.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/11-Bamboo-Configure-Tasks-04-510x500.png" alt="Bamboo Configure Tasks 04" title="Bamboo Configure Tasks 04" width="510" height="500" class="aligncenter size-medium wp-image-2696" /></a></p>
<p>This will trigger an initial build.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/12-Bamboo-Initial-Build.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/12-Bamboo-Initial-Build-546x296.png" alt="Bamboo Initial Build" title="Bamboo Initial Build" width="546" height="296" class="aligncenter size-medium wp-image-2697" /></a></p>
<p><a id="artifacts" /></p>
<h3>Configure Artifacts</h3>
<p>To attach a Ranorex Report to every build (= test run), you have to create an artifact definition, specifying the path and the name of the files to attach to the build.<br />
For this purpose click &#8216;Configure Plan&#8217; in the plan&#8217;s &#8216;Actions&#8217; menu.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/13-Bamboo-Configure-Plan.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/13-Bamboo-Configure-Plan-546x295.png" alt="Bamboo Configure Plan" title="Bamboo Configure Plan" width="546" height="295" class="aligncenter size-medium wp-image-2698" /></a></p>
<p>In the plan&#8217;s configuration choose the default job and the &#8216;Artifacts&#8217; tab and click on the &#8216;Create Definition&#8217; button.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/14-Bamboo-Create-Artifact-Definition.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/14-Bamboo-Create-Artifact-Definition-546x263.png" alt="" title="Bamboo Create Artifact Definition" width="546" height="263" class="aligncenter size-medium wp-image-2699" /></a></p>
<p>Choose a name for your definition and define the path where the Report files will be stored, relatively to the SVN working copy root (e.g. ./TestCIProject/TestCIProject/bin/Debug/Reports/). If you want to attach all files in that path to your build, you can use the copy pattern &#8216;*.*&#8217;. Otherwise you have to use a more specific copy pattern like &#8216;*.rxzlog&#8217; which would only copy zipped report files.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/15-Bamboo-Edit-Artifact-Definition.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/15-Bamboo-Edit-Artifact-Definition-546x247.png" alt="Bamboo Edit Artifact Definition" title="Bamboo Edit Artifact Definition" width="546" height="247" class="aligncenter size-medium wp-image-2700" /></a></p>
<p><a id="notifications" /></p>
<h3>Configure Notifications</h3>
<p>To notify the responsible test engineer and/or developer about the build status, you can add email notifications. For this purpose open the &#8216;Notifications&#8217; tab in the &#8216;Plan Configuration&#8217;.</p>
<p>There you can add several kinds of build notifications.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/16-Bamboo-Add-Notification.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/16-Bamboo-Add-Notification-546x457.png" alt="Bamboo Add Notification" title="Bamboo Add Notification" width="546" height="457" class="aligncenter size-medium wp-image-2679" /></a></p>
<p><a id="run-job" /></p>
<h2>Run Job</h2>
<p>As the configuration of the plan is now finished, you can try out if everything works as expected by committing a change to either your application under test or your Ranorex project. The build will automatically be triggered and a notification will be sent to the user or email address you specified.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/17-Bamboo-Successfully-Build.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/17-Bamboo-Successfully-Build-546x275.png" alt="Bamboo Successfully Build" title="Bamboo Successfully Build" width="546" height="275" class="aligncenter size-medium wp-image-2680" /></a></p>
<p>You can investigate the attached Report file of a specific build by opening the &#8216;Artifacts&#8217; tab of the build and clicking the Report file.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/11/18-Bamboo-Artifact.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/11/18-Bamboo-Artifact-546x271.png" alt="Bamboo Artifact" title="Bamboo Artifact" width="546" height="271" class="aligncenter size-medium wp-image-2681" /></a></p>
<p><a id="conclusion" /></p>
<h2>Conclusion</h2>
<p>With this step by step instruction you will be able to easily setup a Bamboo CI process executing an automated test for each committed change, thereby providing rapid feedback to the responsible test engineer and/or developer about the build success.</p>
<p>Please feel free to share your thoughts on this topic in the comments section.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.ranorex.com%2Fblog%2Fbamboo-ci-with-ranorex-test-automation&amp;title=Bamboo%20CI%20with%20Ranorex%20Test%20Automation" id="wpa2a_8"><img src="http://www.ranorex.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><img src="http://feeds.feedburner.com/~r/ranorex-blog/~4/HK7GIUjIFBk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation</feedburner:origLink></item>
		<item>
		<title>Integrate Ranorex into Any Continuous Integration Process</title>
		<link>http://feedproxy.google.com/~r/ranorex-blog/~3/ujgRfnDLbO8/integrate-ranorex-in-any-continuous-integration-process</link>
		<comments>http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#comments</comments>
		<pubDate>Thu, 18 Oct 2012 09:01:55 +0000</pubDate>
		<dc:creator>twalter</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[Agile Software Developement]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Command Line Arguments]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[HP Quality Center]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Microsoft Test Manager]]></category>
		<category><![CDATA[Report]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TeamCity]]></category>
		<category><![CDATA[Test Suite]]></category>

		<guid isPermaLink="false">http://www.ranorex.com/blog/?p=2603</guid>
		<description><![CDATA[This blog post will illustrate how to integrate Ranorex automation in your Continuous Integration Process and as a result into your Agile Development Process.]]></description>
			<content:encoded><![CDATA[<p>Recently, the more commonly used method for developing software has been shifting from traditional models like the waterfall or the v model to a more iterative model: the agile software development.</p>
<p>Agile development processes are implemented using continuous integration tools. To keep individual iterations speedy, it’s absolutely essential to bring automated testing into the continuous integration process&#8230; and likewise into the agile development process.</p>
<p>Ranorex can easily be integrated into continuous integration systems as Ranorex Studio creates an executable from of its Test Suite projects that can be triggered by almost any CI system.</p>
<p>This blog post explains how to integrate Ranorex automation into your existing continuous integration process.</p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/10/CI-Integration.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/10/CI-Integration-546x309.png" alt="CI Integration" title="CI Integration" width="546" height="309" class="aligncenter size-medium wp-image-2627" /></a></p>
<p><span id="more-2603"></span></p>
<ul>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#how">How it should work</a></li>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#ci-system">A closer look at the CI System</a></li>
<ul>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#build-aut">Build Application Under Test</a></li>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#build-test-suite">Build Ranorex Test Suite</a></li>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#exec-test-suite">Execute Ranorex Test Suite</a></li>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#feedback">Provide Feedback</a></li>
</ul>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#links">Blog posts concerning integration into specific systems</a></li>
<li><a href="http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process#conclusion">Conclusion</a></li>
</ul>
<p><a id="how" /></p>
<h2>How it should work</h2>
<p>The principle behind CI approach is to frequently promote code changes and rapidly get feedback about the impact these changes have on the existing system.<br />
So basically every time a developer or a tester commits changes to the version control system, the version control system should inform the CI system that there are changes to the system under test.</p>
<p>This information triggers the CI system to build the application under test as well as the Ranorex automation project if necessary and executes the Ranorex automation project.</p>
<p>To evaluate the outcome of the test, the CI system usually examines the return value of the executable or its output text (e.g. &#8220;TEST FAILED&#8221; for failure). With Ranorex the return value &#8217;0&#8242; signals the successful execution of the test script and the return value &#8216;-1&#8242; signals a failure.</p>
<p>Each involved team member should get notified about a finished build. The notification should include build logs as well as reports of the executed automation.</p>
<p><a id="ci-system" /></p>
<h2>A closer look at the CI System</h2>
<p>Let’s have a closer look at the CI System.  </p>
<p><a href="http://www.ranorex.com/blog/wp-content/uploads/2012/10/CI-System.png"><img src="http://www.ranorex.com/blog/wp-content/uploads/2012/10/CI-System-546x334.png" alt="CI System" title="CI System" width="546" height="334" class="aligncenter size-medium wp-image-2628" /></a></p>
<p><strong>Note:</strong> It is necessary to have the Ranorex main components – and a valid Ranorex license – installed on each machine on which you are going to build and execute Ranorex code.</p>
<p>The whole build process will be triggered by committing changes to the version control system. For this reason the source repository as well as a mechanism for checking for changes (e.g. a checking interval) in the repository has to be configured.</p>
<p>After checking out the committed code from your version control system three steps in your build process have to be added.<br />
One for building the application under test, one for building the Ranorex automation project and one for executing the Ranorex automation project.</p>
<p><a id="build-aut" /></p>
<h3>Build Application Under Test</h3>
<p>The first step should generate an executable of you application under test which will later be triggered from the Ranorex Test Suite project.<br />
For this reason add a build step which will build your AUT (e.g. MSBuild build step, Ant build step, &#8230;).</p>
<p><a id="build-test-suite" /></p>
<h3>Build Ranorex Test Suite</h3>
<p>The second step should generate the executable automating your application under test. To do so, add a build step (MSBuild or Visual Studio) and choose the project file (*.csproj) of your Ranorex project which should be built.</p>
<p><a id="exec-test-suite" /></p>
<h3>Execute Ranorex Test Suite</h3>
<p>The third step should execute the just created executable. Therefore simply add an execution step triggering the *.exe file and define some command line arguments if needed.</p>
<p>Basically, the test execution can be triggered on the same system as the projects were built. If the execution should be triggered on another system, make sure to deploy the built executable and all necessary files to that system.<br />
Also make sure that the executing process is able to execute the AUT and the Ranorex Test Suite in a desktop session and not in a console session (don&#8217;t start as service).</p>
<p>With frequently applying code changes, it does not make sense to run the whole test suite with all it&#8217;s test cases but a subset of test cases regarding the affected area. For this reason, you can use so called run configurations which can be added and edited directly in the test suite editor (as you can see in the section <a href="http://www.ranorex.com/support/user-guide-20/lesson-4-ranorex-test-suite.html#c3019">&#8216;Running a Test Suite&#8217;</a> in our user guide).<br />
The following example will illustrate how a run configuration can be triggered using command line arguments:</p>
<p>Executing following command line will run the test suite executable called &#8216;TestCIProject&#8217;, run the run configuration called &#8216;SmokeTest&#8217; and generate a zipped report file called &#8216;Report.rxzlog&#8217; stored in a folder called &#8216;/Reports/&#8217;:</p>
<p><code>TestCIProject.exe /rc:SmokeTest /zr /zrf:Reports/Report.rxzlog</code></p>
<p>You can find a list of all available command line arguments in the section ‘<a href="http://www.ranorex.com/support/user-guide-20/lesson-4-ranorex-test-suite.html#c3022">Running Tests without Ranorex Studio</a>‘ in our user guide.</p>
<p><a id="feedback" /></p>
<h3>Provide Feedback</h3>
<p>After finishing all build and execution steps, the responsible developers and tester should be informed about the success of the builds as well as the outcome of the test execution. To do so, add a post build action which sends a mail having the build log of the build steps as well as the generated zipped report file attached.</p>
<p><a id="links" /></p>
<h2>Blog posts concerning integration into specific systems</h2>
<p>Have a look at the following blog posts which explain how to integrate into some specific systems in detail:</p>
<ul>
<li><a href="http://www.ranorex.com/blog/bamboo-ci-with-ranorex-test-automation">Bamboo CI with Ranorex Test Automation</a></li>
<li><a href="http://www.ranorex.com/blog/integrating-ranorex-automation-in-teamcity-ci-process">Integrating Ranorex Automation in TeamCity CI Process</a></li>
<li><a href="http://www.ranorex.com/blog/integrating-ranorex-automation-in-jenkins-continuous-integration-process">Integrating Ranorex Automation in Jenkins CI Process</a></li>
<li><a href="http://www.ranorex.com/blog/running-ranorex-automated-tests-with-hp-quality-center">Running Ranorex Automated Tests with HP Quality Center</a></li>
<li><a href="http://www.ranorex.com/blog/running-ranorex-automated-tests-using-microsoft-test-manager">Running Ranorex Automated Tests with Microsoft Test Manager</a></li>
</ul>
<p><a id="conclusion" /></p>
<h2>Conclusion</h2>
<p>As you can see, it&#8217;s easy to integrate Ranorex Automation in any system, simply by triggering the system to execute the Ranorex executable.<br />
Please feel free to share your thoughts on this topic in the comments section.</p>
<img src="http://feeds.feedburner.com/~r/ranorex-blog/~4/ujgRfnDLbO8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.ranorex.com/blog/integrate-ranorex-in-any-continuous-integration-process</feedburner:origLink></item>
	</channel>
</rss>
