<?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/"
	>

<channel>
	<title>Altentee » Performance &#38; Test Automation Experts &#187; Altentee</title>
	<atom:link href="http://altentee.com/blogs/category/altentee/feed/" rel="self" type="application/rss+xml" />
	<link>http://altentee.com</link>
	<description>Performance and Test Automation Experts</description>
	<lastBuildDate>Fri, 04 Nov 2011 03:17:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Visualizing Web Performance</title>
		<link>http://altentee.com/blogs/2011/visualizing-web-performance/</link>
		<comments>http://altentee.com/blogs/2011/visualizing-web-performance/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 03:17:30 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1332</guid>
		<description><![CDATA[This really is a cool info graphic from strangeloopnetworks.com &#8230; via]]></description>
			<content:encoded><![CDATA[<p>This really is a cool info graphic from strangeloopnetworks.com &#8230;</p>
<div class="visually_embed"><img class="visually_embed_infographic" src="http://visually.visually.netdna-cdn.com/Visualizingwebsiteperformance_4e8251329bb8b_w587.jpg" alt="" /></p>
<div class="visually_embed_bar"><span> via </span><a class="logo" href="http://visual.ly" target="_blank"><img src="http://visual.ly/embeder/logo.png" border="0" alt="visually" /></a></div>
<p><a id="visually_embed_view_more" href="http://visual.ly/visualizing-website-performance" target="_blank"></a><br />
<script src="http://visual.ly/embeder/embed.js" type="text/javascript"> </script></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/visualizing-web-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Split panes and &#8216;remembered&#8217; sessions in iTerm2</title>
		<link>http://altentee.com/blogs/2011/split-panes-and-remembered-sessions-in-iterm2/</link>
		<comments>http://altentee.com/blogs/2011/split-panes-and-remembered-sessions-in-iterm2/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 01:13:59 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1326</guid>
		<description><![CDATA[If you&#8217;re a mac user and frequently use the terminal, then you should probably have a look at iTerm2. &#8220;Its focus is on performance, internationalization, and supporting innovative features that make your life better.&#8221; Amongst its many features, I love the ability to slit a pane horizontally or vertically. (Command-Shift-D or d) It&#8217;s great being [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a mac user and frequently use the terminal, then you should probably have a look at <a href="http://www.iterm2.com/#/section/home">iTerm2</a>.</p>
<blockquote><p>&#8220;Its focus is on performance, internationalization, and supporting innovative features that make your life better.&#8221;</p></blockquote>
<p>Amongst its many features, I love the ability to slit a pane horizontally or vertically. (Command-Shift-D or d) It&#8217;s great being able to be logged in to multiple backend servers at once.</p>
<p style="text-align: center;"><img class="aligncenter" title="split_panes" src="http://www.iterm2.com/images/screen-shots/split_panes.png" alt="" width="600" height="360" /></p>
<p>Another cool feature is the ability to send commands to all panes in a tab (Alt-Command-I), useful when editing multiple files on multiple servers or starting and stopping services etc.</p>
<p>But the coolest hack I reckon is using applescript to start up iTerm windows and sessions within them. I use something like the following to launch my workspace.</p>

<div class="wp_syntax"><div class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #0066ff;">launch</span> <span style="color: #009900;">&quot;iTerm&quot;</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;iTerm&quot;</span>
 <span style="color: #0066ff;">activate</span>
&nbsp;
 <span style="color: #808080; font-style: italic;">-- my project workspace</span>
 <span style="color: #ff0033; font-weight: bold;">set</span> myterm <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">&#40;</span><span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> terminal<span style="color: #000000;">&#41;</span>
 <span style="color: #ff0033; font-weight: bold;">tell</span> myterm
  <span style="color: #0066ff;">launch</span> session <span style="color: #009900;">&quot;varnish&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> columns <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">100</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> rows <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">30</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;cd Code/myproject &amp;amp;&amp;amp; git pull origin master&quot;</span>
 <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
 <span style="color: #808080; font-style: italic;">-- ssh in split panes to my varnish stack</span>
 <span style="color: #ff0033; font-weight: bold;">set</span> myterm <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">&#40;</span><span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> terminal<span style="color: #000000;">&#41;</span>
 <span style="color: #ff0033; font-weight: bold;">tell</span> myterm
  <span style="color: #0066ff;">launch</span> session <span style="color: #009900;">&quot;varnish&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> columns <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">100</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> rows <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">60</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh vara.cbr&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;varnishlog&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> i term <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> keystroke <span style="color: #009900;">&quot;D&quot;</span> using command down
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh varb.cbr&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> i term <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> keystroke <span style="color: #009900;">&quot;D&quot;</span> using command down
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh varc.cbr&quot;</span>
 <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
 <span style="color: #808080; font-style: italic;">-- ssh in split panes to my apache stack</span>
 <span style="color: #ff0033; font-weight: bold;">set</span> myterm <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">&#40;</span><span style="color: #0066ff;">make</span> <span style="color: #0066ff;">new</span> terminal<span style="color: #000000;">&#41;</span>
 <span style="color: #ff0033; font-weight: bold;">tell</span> myterm
  <span style="color: #0066ff;">launch</span> session <span style="color: #009900;">&quot;appserver&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> columns <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">100</span>
  <span style="color: #ff0033; font-weight: bold;">set</span> <span style="color: #0066ff;">number</span> <span style="color: #ff0033; font-weight: bold;">of</span> rows <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">60</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh appa.cbr&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> i term <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> keystroke <span style="color: #009900;">&quot;D&quot;</span> using command down
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh appb.cbr&quot;</span>
  <span style="color: #ff0033; font-weight: bold;">tell</span> i term <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> keystroke <span style="color: #009900;">&quot;D&quot;</span> using command down
  <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #ff0033;">the</span> <span style="color: #ff0033;">last</span> session <span style="color: #ff0033; font-weight: bold;">to</span> write <span style="color: #0066ff;">text</span> <span style="color: #009900;">&quot;ssh appc.cbr&quot;</span>
 <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span></pre></div></div>

<p>I did try other session management tools such as tmux, but whilst on OSX, am finding iTerm2 + Applescript perfect for my needs. YMMV.</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/split-panes-and-remembered-sessions-in-iterm2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WatirGrid 1.1.3 Released</title>
		<link>http://altentee.com/blogs/2011/watirgrid-1-1-3-released/</link>
		<comments>http://altentee.com/blogs/2011/watirgrid-1-1-3-released/#comments</comments>
		<pubDate>Thu, 26 May 2011 05:35:07 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[Gridinit]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[gridinit]]></category>
		<category><![CDATA[watirgrid]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1318</guid>
		<description><![CDATA[WatirGrid just passed 3,400 downloads. Help it get to 4,000 downloads in June 2011 and Altentee will donate a flock of 10 sheep to a respectable cause. 1.1.3 has been released which includes the following changes: Improved command line &#8211;help and more simple instructions in the Readme. There&#8217;s also a mention at watir.com/frameworks Deprecated support for -b [...]]]></description>
			<content:encoded><![CDATA[<p>WatirGrid <em>just passed 3,400 downloads</em>. Help it get to <strong><a href="https://rubygems.org/gems/watirgrid">4,000 downloads in June 2011</a></strong> and Altentee will <a href="http://www.youtube.com/v/vNnh7Jpk9LE?fs=1&amp;hl=en_US&amp;rel=0&amp;autoplay=1">donate a flock of 10 sheep to a respectable cause</a>.</p>
<p><img class="alignright" title="Sheep" src="http://donate.worldvision.org/OA_MEDIA/xxwvus/istore/L1577.jpg" alt="" width="160" height="177" /></p>
<p><strong>1.1.3</strong> has been released which includes the following changes:</p>
<ul>
<li>Improved command line &#8211;help and more simple instructions in the <a href="https://github.com/90kts/watirgrid/blob/master/README.rdoc">Readme</a>. There&#8217;s also a mention at <a href="http://watir.com/frameworks">watir.com/frameworks</a></li>
<li>Deprecated support for -b flag on provider where you used to specify a browser.<br />
Now just specify -d DRIVER flag to specify which driver you want to provide (watir, firewatir, safariwatir, webdriver or selenium)</li>
<li>Updated <a href="https://github.com/90kts/watirgrid/tree/master/examples/cucumber">basic cucumber examples</a></li>
<li><a href="https://github.com/90kts/watirgrid/blob/master/spec/webdriver_spec.rb">.control and .iterate</a> methods to yield browser objects so you don&#8217;t need to mess around with threads. Your test cases can start looking more like normal Watir code rather than a jungle of threads and remote DRb objects.</li>
<li>Put the code base on a diet with 400+ lines deleted, and cut out a lot of extraneous &#8216;features&#8217;</li>
</ul>
<p>On that last point, I&#8217;ve decided to keep <em>WatirGrid as slim as possible</em>. This means you won&#8217;t see development of extraneous features like grid management tasks such as starting/stopping VMs, killing browser processes and the like. For full fledged &#8216;grid management&#8217; you should of course check out <a href="http://gridinit.com">Gridinit</a> or Selenium Grid.</p>
<p>Gridinit is also getting some complimentary changes. Things to look out for in June include:</p>
<ul>
<li><strong>BYOG</strong> &#8211; bring your own grid, will let you use your own EC2 account, radically reducing costs and making Gridinit one of the most cost effective solutions out there.</li>
<li><strong>Zombies</strong> &#8211; currently working on a <a href="https://github.com/90kts/webdriver-zombie">remote WebDriver server implementation using Node.js and Zombie.js</a> for insanely fast headless browsers. This means you&#8217;ll get <em>much more bang for your buck </em>from a single core, and overcome many of the JavaScript woes that affect other headless solutions like HtmlUnit. Zombies will also be available for WatirGrid.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watirgrid-1-1-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gridinit Beta Released</title>
		<link>http://altentee.com/blogs/2011/gridinit-beta-released/</link>
		<comments>http://altentee.com/blogs/2011/gridinit-beta-released/#comments</comments>
		<pubDate>Fri, 13 May 2011 23:49:39 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[Gridinit]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1290</guid>
		<description><![CDATA[The Gridinit beta has been officially released this weekend. &#8221;Gridinit makes it incredibly simple to control hundreds of browsers from a single test case, with easy configuration and control of your own cloud based grid network.&#8221; You can see a quick overview and video here. Gridinit supports execution of Watir or Selenium test cases using Ruby [...]]]></description>
			<content:encoded><![CDATA[<h1><a href="http://gridinit.com?promo"><img class="alignleft" title="Gridinit" src="http://gridinit.com/images/gridinit.png" alt="Distributed testing made simple" width="146" height="50" /></a></h1>
<p>The Gridinit beta has been officially released this weekend. &#8221;<em>Gridinit makes it incredibly simple to control hundreds of browsers from a single test case, with easy configuration and control of your own cloud based grid network.</em>&#8221;</p>
<p>You can see a quick <a href="http://gridinit.com/public/overview?promo">overview and video here</a>.</p>
<p>Gridinit supports execution of <a href="http://watir.com">Watir</a> or <a href="http://seleniumhq.org/">Selenium</a> test cases using Ruby in parallel on real browsers across a grid network, allowing you to easily distribute your tests.</p>
<p><strong>Spend Less Time Scripting</strong></p>
<p>Watir and Selenium scripts let you interact with the browser, not at the protocol level. You can use the same scripts from acceptance testing right through to performance testing.</p>
<p><strong>Simply Powerful</strong></p>
<p>Gridinit gives you options to control the grid as you prefer:</p>
<ul>
<li>A command line interface available as a <a href="http://rubygems.org/gems/grid">gem</a></li>
<li>A RESTful <a href="http://gridinit.com/public/console">web service</a></li>
<li>A simple <a href="http://gridinit.com">web based interace</a></li>
</ul>
<p>Our powerful yet simple API lets you incorporate the grid into your existing test frameworks including RSpec, Capybara, Cucumber and others. Have a <a href="http://gridinit.com/public/examples">look at our examples</a> or write your own!</p>
<p><strong>Up Next</strong></p>
<p>Gridinit is the new kid on the block for cloud based distributed testing, with an eye for the Ruby community. We&#8217;ll be adding plenty more examples and integrating with more Ruby test frameworks as we listen to and explore user feedback through the beta. We&#8217;re also looking at BYO EC2 accounts, packaged installations for your own private networks, support for htmlunit, webrat and much more &#8230;</p>
<p><a href="http://gridinit.com/public/overview?promo">Learn more</a> or <a href="http://gridinit.com/public/account/signup?promo">sign up</a> for an account now.</p>
<p><span style="color: #999999;">Email us at support@gridinit.com or follow us on twitter @gridinit</span></p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/gridinit-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watirgrid and Gridinit on Watir Podcast</title>
		<link>http://altentee.com/blogs/2011/watirgrid-and-gridinit-on-watir-podcast/</link>
		<comments>http://altentee.com/blogs/2011/watirgrid-and-gridinit-on-watir-podcast/#comments</comments>
		<pubDate>Wed, 04 May 2011 21:53:56 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[Gridinit]]></category>
		<category><![CDATA[gridinit]]></category>
		<category><![CDATA[watir]]></category>
		<category><![CDATA[watirgrid]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1286</guid>
		<description><![CDATA[As the title implies, I get to spend 15 minutes talking about Watirgrid and Gridinit on the Watir podcast. This family of tools lets you easily distribute watir test cases onto a grid network, the latter being a commercial implementation on EC2 of the former. I&#8217;ll be posting more about Gridinit soon as we enter [...]]]></description>
			<content:encoded><![CDATA[<p>As the title implies, I get to spend 15 minutes talking about <a href="http://watirgrid.info">Watirgrid</a> and <a href="http://gridinit.com">Gridinit</a> on the <a href="http://watirpodcast.com/44-tim-koopmans-on-watirgrid-and-gridinit/">Watir podcast</a>.</p>
<p>This family of tools lets you easily distribute watir test cases onto a grid network, the latter being a commercial implementation on EC2 of the former. I&#8217;ll be posting more about Gridinit soon as we enter into our beta!</p>
<p>http://watirpodcast.com/44-tim-koopmans-on-watirgrid-and-gridinit/</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watirgrid-and-gridinit-on-watir-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to be a performance tester &#8230;</title>
		<link>http://altentee.com/blogs/2011/how-to-be-a-performance-tester/</link>
		<comments>http://altentee.com/blogs/2011/how-to-be-a-performance-tester/#comments</comments>
		<pubDate>Sun, 01 May 2011 23:28:45 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1283</guid>
		<description><![CDATA[I&#8217;ve come to a juncture (read voluntary unemployment) where I&#8217;ve had the chance to reflect on my last 6 years as a performance tester, working in the mostly enterprise / commercial test space in and around Australia&#8230; Here&#8217;s my reflections on what has worked for me as a performance tester: 1. Document templates: Everything from [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come to a juncture (read voluntary unemployment) where I&#8217;ve had the chance to reflect on my last 6 years as a performance tester, working in the mostly enterprise / commercial test space in and around Australia&#8230; Here&#8217;s my reflections on what has worked for me as a performance tester:</p>
<p>1. <strong>Document templates</strong>: Everything from a test strategy through to detailed plans, application simulation models, status updates or summary reports are all based on a template for me now.  A template view of things is also a good way of culling back all the unnecessary guff that you often find in these documents. Unless you&#8217;re legally obliged to, cut back on the guff and tell them what you&#8217;re planning to test, how you&#8217;re going to measure it, and what you&#8217;re going to do if things fall outside your hypotheses&#8230;</p>
<p>2. <strong>Look beyond LoadRunner</strong>: I&#8217;ve gained much self satisfaction and saved employers large sums along the way by looking at tools other than LoadRunner. You may feel like you&#8217;re shafting yourself initially as you fumble about in strange GUIs or delve into the command line /code but in reality, you&#8217;re making yourself a better tester by understanding what it is you&#8217;re trying to test/simulate, and the multitude of ways you can accomplish it. Time to wean yourself off that expensive teat and start looking at the alternatives.</p>
<p>3. <strong>Business intelligence</strong>: You need to be able to understand machine events and transform them back into business speak. Most managers don&#8217;t give a hoot about number of IO&#8217;s per second or the vagaries of GC algorithms. You need to transform this data into a language that you can communicate up the chain. Avoid the FUD (Fear, Uncertainty &amp; Doubt) and instead speak in terms of risk (probability, frequency, impact).</p>
<p>4. <strong>Monitor and measure</strong>: If you can&#8217;t monitor then you probably can&#8217;t measure. I&#8217;ve heard so many times that &#8220;you need this one tool because &#8230; &#8221; it pulls everything together in one interface &#8230; Really, you need to know what you can measure and monitor, what tools support capture (most platforms have native commands to do so) and how you&#8217;re going to pull it all together. Timestamps are your friend (for correlating events) and so too are databases for storage. More often than not I&#8217;ve employed some form of RRD or RDMS such as MySql and more recently have been looking at the virtues of NoSQL with things like CouchDB or MongoDB.</p>
<p>5. <strong>The web server bone&#8217;s connected to the, database bone</strong>: You need to understand the stack you&#8217;re playing in. Most prod environments don&#8217;t give you the luxury of prodding around, but VMs are your friend and you&#8217;ll probably find most platforms you&#8217;re working on have free or developer versions of their products to play with. Chances are if you&#8217;ve never installed and configured it, you&#8217;re probably not going to have the fuzziest on where to start debugging or tuning it!</p>
<p>6. <strong>Adopt a scripting language</strong>: You&#8217;ll no doubt need to munge data, fake stubs, mock services, crawl for information and the like. I&#8217;ve seen some hilarious examples of this using heavyweight tools such as QTP/LoadRunner and some downright painful (although closer to zen) alternatives in shell script. But honestly, adopt a scripting language like Ruby, Python or even Perl, buy the corresponding cookbook, and you&#8217;ll have an answer to just about every housekeeping task you might find yourself faced with.</p>
<p>7. <strong>Learn from others</strong>: Go on, be humble, get yourself an RSS reader and learn from others. My personal favourites to name a few are:</p>
<p>Scott Barber http://www.perftestplus.com/scott_blog.php<br />
Neil Gunther http://perfdynamics.blogspot.com/<br />
Stuart Moncrieff http://www.myloadtest.com/<br />
Corey Coldberg http://www.goldb.org/<br />
Jared Quinert http://www.software-testing.com.au/blog/<br />
Sam Abdelhamid http://mishmashmoo.com/blog/</p>
<p>8. <strong>Write your own blog</strong>: Got something to share? Want to improve your writing skills? Go on, write your own blog. I often find that in showing someone else either in person or the written form, I get to understand the subject matter better. So what are you waiting for?</p>
<p>Thanks for listening =)</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/how-to-be-a-performance-tester/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Watir-Webdriver-Performance gem released</title>
		<link>http://altentee.com/blogs/2011/watir-webdriver-performance-gem-released/</link>
		<comments>http://altentee.com/blogs/2011/watir-webdriver-performance-gem-released/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 04:09:59 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[watir]]></category>
		<category><![CDATA[webdriver]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1277</guid>
		<description><![CDATA[Today I added a simple watir-webdriver-performance gem whose purpose is to collect performance metrics specified for web applications to access timing information related to navigation and elements. User latency is an important quality benchmark for Web Applications. While JavaScript-based mechanisms can provide comprehensive instrumentation for user latency measurements within an application, in many cases, they [...]]]></description>
			<content:encoded><![CDATA[<p>Today I added a simple watir-webdriver-performance gem whose purpose is to collect performance metrics specified for web applications to access timing information related to navigation and elements.</p>
<blockquote><p>User latency is an important quality benchmark for Web Applications. While JavaScript-based mechanisms can provide comprehensive instrumentation for user latency measurements within an application, in many cases, they are unable to provide a complete end-to-end latency picture.</p>
<p>To address the need for complete information on user experience, this document introduces the <a href="http://w3c-test.org/webperf/specs/NavigationTiming/#nt-navigation-timing-interface">PerformanceTiming</a> interfaces. This interface allows JavaScript mechanisms to provide complete client-side latency measurements within applications. With the proposed interface, the previous example can be modified to measure a user&#8217;s perceived page load time.</p></blockquote>
<p><span id="more-1277"></span>You can read more about the PerformanceTiming <a href="http://w3c-test.org/webperf/specs/NavigationTiming/">specification here</a>. Essentially this gem collects all available metrics from the browser and summarises them in a format similar to the following diagram:</p>
<p style="text-align: center;"><img class="aligncenter" title="timing-overview" src="http://w3c-test.org/webperf/specs/NavigationTiming/timing-overview.png" alt="timing-overview" width="884" height="527" /></p>
<p>To use this gem simply install:</p>
<pre> gem install watir-webdriver-performance</pre>
<p>And use the browser.performance helper method to access the metrics.</p>
<pre>&gt;&gt; require 'watir-webdriver'
&gt;&gt; require 'watir-webdriver-performance'
&gt;&gt; b = Watir::Browser.new :chrome
&gt;&gt; b.goto "watirgrid.com"
=&gt; "https://github.com/90kts/watirgrid"
&gt;&gt; # End user response time was
?&gt; b.performance.summary[:response_time]/1000
=&gt; 8
&gt;&gt; #seconds ...
?&gt; # Time to first byte i.e. "server time" was
?&gt; b.performance.summary[:time_to_first_byte]
=&gt; 3341
&gt;&gt; #milliseconds ...
?&gt; # Summary timings available
{
    :summary => {
                   :redirect=>0,
                  :app_cache=>0,
                        :dns=>0,
            :tcp_connection=>982,
     :tcp_connection_secure=>721,
                  :request=>1222,
                    :response=>4,
           :dom_processing=>4293,
            :response_time=>7298,
       :time_to_first_byte=>2205,
        :time_to_last_byte=>2209
    },
    :navigation => {
                     :type => 0,
        :type_back_forward => 2,
           :redirect_count => 0,
            :type_reserved => 255,
            :type_navigate => 0,
              :type_reload => 1
    },
        :memory => {
        :total_js_heap_size => 0,
        :js_heap_size_limit => 0,
         :used_js_heap_size => 0
    },
        :timing => {
                   :domain_lookup_start => 1303180421599,
                        :load_event_end => 0,
                           :connect_end => 1303180421642,
                          :response_end => 1303180421853,
                           :dom_loading => 1303180421840,
                      :navigation_start => 0,
                          :redirect_end => 0,
                    :unload_event_start => 0,
               :secure_connection_start => 0,
                         :connect_start => 1303180421600,
          :dom_content_loaded_event_end => 1303180421934,
                     :domain_lookup_end => 1303180421600,
                       :dom_interactive => 1303180421934,
                      :load_event_start => 0,
                         :request_start => 1303180421642,
                        :response_start => 1303180421838,
                          :dom_complete => 0,
                           :fetch_start => 1303180421598,
        :dom_content_loaded_event_start => 1303180421934,
                        :redirect_start => 0,
                      :unload_event_end => 0
    }
  }</pre>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watir-webdriver-performance-gem-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WatirGrid 1.0.6 released &#8230; can haz Selenium?</title>
		<link>http://altentee.com/blogs/2011/watirgrid-1-0-6-released-can-haz-selenium/</link>
		<comments>http://altentee.com/blogs/2011/watirgrid-1-0-6-released-can-haz-selenium/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 20:54:42 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[seconf]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1271</guid>
		<description><![CDATA[I&#8217;ve just released WatirGrid 1.0.6 which now includes support for Selenium WebDriver&#8230; So can I really call it WatirGrid anymore? Realistically the Watir and Selenium projects are headed in the same direction courtesy of WebDriver, so it makes sense to give Watir users (I like to think of them as Ruby users ) the option [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released WatirGrid 1.0.6 which now <strong>includes support for Selenium WebDriver</strong>&#8230; So can I really call it WatirGrid anymore? Realistically the Watir and Selenium projects are headed in the same direction courtesy of WebDriver, so it makes sense to give Watir users (I like to think of them as Ruby users <img src='http://altentee.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) the option to use Selenium where it best fits.</p>
<p><span id="more-1271"></span></p>
<p>To use Selenium via WatirGrid &#8230;</p>
<p>Get it</p>
<pre>&lt;sudo&gt; gem install watirgrid</pre>
<p>Start a <strong>controller</strong> &#8230;</p>
<pre>controller
I, INFO -- : Controller started on : druby://10.0.1.3:11235</pre>
<p>Start a <strong>provider</strong> with -b selenium &#8230;</p>
<pre>provider -b selenium
I, INFO -- : Provider started on   : druby://10.0.1.3:11236
I, INFO -- : Controller found on   : druby://10.0.1.3:12358
I, INFO -- : Provider registered   : druby://10.0.1.3:12358</pre>
<p>Execute your Selenium code in Ruby!</p>
<pre>&gt;&gt; require 'watirgrid'
=&gt; true
&gt;&gt; Watir::Grid.control(
&gt;&gt;   :controller_uri=&gt;'druby://10.0.1.3:11235') do |driver, id|
&gt;&gt;   driver.navigate.to "http://google.com"
&gt;&gt;   element = driver.find_element(:name, 'q')
&gt;&gt;   element.send_keys "Hello WebDriver!"
&gt;&gt;   element.submit
&gt;&gt;   driver.quit
&gt;&gt; end</pre>
<p>So what&#8217;s the difference between <strong>WatirGrid</strong> and <strong>SeleniumGrid</strong>?</p>
<p>They have radically different architectures in terms of establishing a Grid network. WatirGrid is built on distributed programming paradigms such as Linda and is a pure Ruby implementation. <a href="http://selenium-grid.seleniumhq.org/run_the_demo.html">SeleniumGrid</a> is perhaps a more heavy weight Java implementation (you can still write your tests in most languages) and packs a lot more features for grid control into its design. Both have their own merits, you be the judge!</p>
<p>Next steps for WatirGrid is to look at implementing some type of Capybara adapter, since this tool (and WebRat) appear to dominate the Ruby test automation space. I&#8217;m also working on Gridinit, a commercial implementation on EC2 which is available for beta testing. <a href="http://gridinit.com">Sign up</a> and give it a try!</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watirgrid-1-0-6-released-can-haz-selenium/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Watir Day and Selenium Conference .. w00t</title>
		<link>http://altentee.com/blogs/2011/watir-day-and-selenium-conference-w00t/</link>
		<comments>http://altentee.com/blogs/2011/watir-day-and-selenium-conference-w00t/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 02:34:30 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1269</guid>
		<description><![CDATA[Wow, What an awesome experience. Despite spending most of it jet-lagged, travelling to San Francisco was such a great experience for me, and helped reaffirm just how strong the Watir and Selenium community is. Without dropping names, some of the experiences I got to enjoy were: Sharing late night beers and early morning burgers with [...]]]></description>
			<content:encoded><![CDATA[<p>Wow,</p>
<p>What an awesome experience. Despite spending most of it jet-lagged, travelling to San Francisco was such a great experience for me, and helped reaffirm just how strong the Watir and Selenium community is. Without dropping names, some of the experiences I got to enjoy were:</p>
<ol>
<li>Sharing late night beers and early morning burgers with the <a href="http://twitter.com/#!/charley_baker">leader of Watir development</a></li>
<li><a href="http://twitter.com/#!/charley_baker"></a>Pair coding on watir-webdriver performance extensions with the <a href="https://github.com/jarib">smartest kid in Norway</a></li>
<li>Finally meeting perhaps the <a href="http://watirmelon.com">leader of Australian based Watir testing</a></li>
<li><a href="http://watirmelon.com"></a>Eating chinese with the <a href="http://pettichord.com/">god-father of Watir</a> and hearing some great anecdotes on the origins of Selenium</li>
<li>Shown the light on page objects, opera and superbad with a <a href="http://www.slideshare.net/testrus">Polish born American</a></li>
<li>Hearing about the inner workings of &#8216;that other browser&#8217; from a <a href="http://home.e-tjenesten.org/~ato/">genius at Opera</a></li>
<li>Learning more about the Watir community and getting a t<a href="http://zeljkofilipin.com/">hirst for Croatian micro breweries</a></li>
<li>Meeting my <a href="http://lightbody.net/blog/">role model in person</a> and perhaps feeling a bit shied by his awesomeness!</li>
<li>Getting <a href="http://www.linkedin.com/in/bramhaghosh">some great advice</a> and tips for my own startup</li>
<li>Being awed and perhaps jealous (in a slightly convict vs. colonial way) of the <a href="http://www.google.com.au/search?q=steel+cage+knife+fight">greatest mind behind webdriver</a></li>
</ol>
<p>I met many other people whilst there, did tons of late night coding and got to experience public speaking for the first time. A big thank you to all the organisers of #watirday and #seconf. Looking forward to the next!</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watir-day-and-selenium-conference-w00t/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Watir Day, WatirGrid and the GRIDinit.iative!</title>
		<link>http://altentee.com/blogs/2011/watir-day-watirgrid-and-the-gridinit-iative/</link>
		<comments>http://altentee.com/blogs/2011/watir-day-watirgrid-and-the-gridinit-iative/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 08:54:24 +0000</pubDate>
		<dc:creator>Tim Koopmans</dc:creator>
				<category><![CDATA[Altentee]]></category>
		<category><![CDATA[seconf]]></category>
		<category><![CDATA[watir]]></category>
		<category><![CDATA[watirday]]></category>
		<category><![CDATA[watirgrid]]></category>

		<guid isPermaLink="false">http://altentee.com/?p=1249</guid>
		<description><![CDATA[The last few days have been busy for me as I had the privilege to present WatirGrid at the Watirday conference in San Francisco. You can catch the slide deck here in case you couldn&#8217;t make it. WatirGrid lets you test Watir in parallel, why not give it a shot yourself? &#60;sudo&#62; gem install watirgrid [...]]]></description>
			<content:encoded><![CDATA[<p>The last few days have been busy for me as I had the privilege to present <strong><a href="http://watirgrid.com">WatirGrid</a></strong> at the Watirday conference in San Francisco. You can catch the <strong><a href="http://www.slideshare.net/90kts/watirgrid">slide deck here</a></strong> in case you couldn&#8217;t make it. WatirGrid lets you test Watir in parallel, why not give it a shot yourself?</p>
<pre>&lt;sudo&gt; gem install watirgrid</pre>
<p>I&#8217;m also attending the Selenium Conference which is giving me lots of great ideas and inspiration in the performance &amp; automation space. It&#8217;s great to see a greater shift to open source testing tools and some may argue that QTP and the like perhaps <a href="http://paulhammant.com/blog/die-qtp-die.html"><strong>could die a graceful death</strong></a>. It&#8217;s also been fun meeting <strong><a href="http://pettichord.com/">the god-father</a></strong> of Selenium and confirming that his choice of product-name really was intended as an antidote to Mercury!<br />
<span id="more-1249"></span><br />
Recently I decided to lighten the load with my commercial contract work and contribute / commit more to the open source space. Part of that effort involves further strengthening and stabilising the WatirGrid project, which I&#8217;ll definitely keep open source. I&#8217;d also like to get more into watir-webdriver as I see this as the future for the Watir project.</p>
<p>The other part (half?) of my time involves getting my own startup <strong><a href="http://gridinit.com">GRIDinit.com</a> </strong>up and running. The GRID is a commercial implementation of WatirGrid, which simplifies management of a GRID network across different cloud providers. Basically it&#8217;s a RESTful API for WatirGrid. I&#8217;m presently running a private alpha on EC2 with 50 instances but I hope to open the doors for a public beta with both International (US, EU, Tokyo and Singapore) and Domestic (Australia) cloud providers in May/June! If you&#8217;d like to participate send an email to <a href="mailto:support@gridinit.com"><strong>support@gridinit.com</strong></a></p>
<p><strong><a rel="attachment wp-att-1250" href="http://altentee.com/blogs/2011/watir-day-watirgrid-and-the-gridinit-iative/screen-shot-2011-04-05-at-1-46-32-am/"><img class="alignnone size-full wp-image-1250" title="GRIDinit Alpha" src="http://altentee.com/blogs/wp-content/uploads/Screen-shot-2011-04-05-at-1.46.32-AM.png" alt="" width="288" height="312" /></a></strong></p>
<p>Having a commercial implementation will help pay the bills and let me channel necessary improvements back into WatirGrid itself. If you&#8217;re keen you can keep track of the pre-release gems via:</p>
<pre>&lt;sudo&gt; gem install watirgrid --pre</pre>
<p>A recent improvement is the addition of a GRID control method, to take the somewhat confusing (for first timers) Thread calls out of the picture. For example:</p>
<p>1. Start a controller (from a command line)</p>
<pre>controller</pre>
<p>2. Start your providers (from a command line) on remote machines (typically same LAN as the controller). It supports all major browsers/platforms including webdriver. I hope to add Opera soon as well.</p>
<pre>provider -b webdriver|safari|ie|firefox</pre>
<p>3. Control your GRID from your code (the pre-release let&#8217;s us contact our controller direct via the controller_uri, no need to broadcast via UDP anymore)</p>
<pre>Watir::Grid.control({
  :controller_uri =&gt; 'druby://127.0.0.1:12357'}) do |browser, id|
  3.times do |iteration| # because we love to iterate right!?
    browser.goto "http://your.awesome.test.environment"
    sleep 2
  end
  browser.close
end
=&gt;
DRb server started on : druby://127.0.0.1:61325
Controller found on   : druby://127.0.0.1:12357
Found 2 tuples.
Grid size                         : 2
Grid rampup                       : 0.5 secs
Browser 1#2171119800 start         : Tue Apr 05 01:39:03 -0700 2011
Browser 1#2171119800 architecture  : universal-darwin10.0
Browser 1#2171119800 type          : webdriver
Browser 1#2171119800 hostname      : air.local
Browser 2#2172047580 start         : Tue Apr 05 01:39:04 -0700 2011
Browser 2#2172047580 architecture  : universal-darwin10.0
Browser 2#2172047580 type          : webdriver
Browser 2#2172047580 hostname      : air.local
Browser 1#2171119800 stop          : Tue Apr 05 01:39:18 -0700 2011
Browser 1#2171119800 elapsed       : 15 secs
Browser 2#2172047580 stop          : Tue Apr 05 01:39:20 -0700 2011
Browser 2#2172047580 elapsed       : 16 secs</pre>
<p>In other words, I&#8217;ll be abstracting a lot of the WatirGrid&#8217;isms and making it easier for you to wrap in your own test frameworks be they rspec, cukes, plain old ruby or whatever. This is my philosophy when designing GRIDinit. I won&#8217;t be dictating how you should run your tests or what you should monitor, I&#8217;ll leave that to your control with as few lines as possible required from GRIDinit. Good times ahead!</p>
<p>Still a couple more days left at Selenium Conference, so if you&#8217;d like to catch up send us a hoy on Twitter @90kts.</p>
<p>Cheers,<br />
Tim</p>
]]></content:encoded>
			<wfw:commentRss>http://altentee.com/blogs/2011/watir-day-watirgrid-and-the-gridinit-iative/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

