<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1" -->
<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/"
	>

<channel>
	<title>90kts</title>
	<link>http://90kts.com/blog</link>
	<description>Notes from a performance tester, 90kts = 46.3 m/s</description>
	<pubDate>Fri, 03 Oct 2008 06:48:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1</generator>
	<language>en</language>
			<item>
		<title>Performance Testing MQ with JMeter</title>
		<link>http://90kts.com/blog/2008/performance-testing-mq-with-jmeter/</link>
		<comments>http://90kts.com/blog/2008/performance-testing-mq-with-jmeter/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 06:45:58 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[MQ]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/performance-testing-mq-with-jmeter/</guid>
		<description><![CDATA[This is a relatively new example of how to use JMeter with WebSphere MQ. This approach is a clever way of inserting messages into MQ using a JMS sampler (point to point) with a JNDI binding within MQ.
I had not heard of this approach before and am sure it will be useful in future, provided [...]]]></description>
			<content:encoded><![CDATA[<p>This is a relatively new example of how to use <a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0808_vandekuil/0808_vandekuil.html"><strong>JMeter with WebSphere MQ</strong></a>. This approach is a clever way of inserting messages into MQ using a JMS sampler (point to point) with a JNDI binding within MQ.</p>
<p>I had not heard of this approach before and am sure it will be useful in future, provided you have sufficient access to create the bindings in the first place.</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/performance-testing-mq-with-jmeter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Performance Testing with Apdex</title>
		<link>http://90kts.com/blog/2008/performance-testing-with-apdex/</link>
		<comments>http://90kts.com/blog/2008/performance-testing-with-apdex/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 05:03:41 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[LoadRunner]]></category>

		<category><![CDATA[Analysis]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/performance-testing-with-apdex/</guid>
		<description><![CDATA[Often when performance testing in a black box environment, you are left with the onerous responsibility to report against response time performance.
A typical approach by performance testers is to rely on 95th percentiles, which is effectively a Service Level Agreement (SLA) saying that 95 percent of all my samples have a response time below 5 [...]]]></description>
			<content:encoded><![CDATA[<p>Often when performance testing in a black box environment, you are left with the onerous responsibility to report against response time performance.</p>
<p>A typical approach by performance testers is to rely on 95th percentiles, which is effectively a Service Level Agreement (SLA) saying that 95 percent of all my samples have a response time below 5 seconds. This is often specified as a Non Functional Requirement (NFR).</p>
<p>But so what? What does this really tell us? More importantly, if the SLA fails, you&#8217;re probably left hanging in the wind trying to explain how &#8220;bad&#8221; it failed to a (now interested) Project Manager. On the flip side, if everything is green, how close were you to failing? Are you an n&#8217;th degree away from failing? What about comparing two different  application&#8217;s response time performance when they have different NFRs to begin with? Getting confused?</p>
<p>Enter the <a href="http://www.apdex.org"><strong>Apdex</strong></a> performance index. Apdex is a numerical measure of user satisfaction that can be built from metrics expressed via more traditional SLAs and/or NFRs. The fundamental objective of Apdex is to simplify the reporting of application response time measurements by making it possible to represent any such measurement using a common metric. This can be reported on by extracting data from Load Runner / JMeter and analysing within Excel as demonstrated below.<br />
<a href='http://90kts.com/blog/wp-content/uploads/2008/08/excel2007_apdex.png' title='apdex_2007'><img src='http://90kts.com/blog/wp-content/uploads/2008/08/excel2007_apdex.png' alt='apdex_2007' /></a></p>
<p>Read on to find out more about these scores and how they are calculated.<br />
 <a href="http://90kts.com/blog/2008/performance-testing-with-apdex/#more-198" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/performance-testing-with-apdex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Throughput vs. Latency</title>
		<link>http://90kts.com/blog/2008/throughput-vs-latency/</link>
		<comments>http://90kts.com/blog/2008/throughput-vs-latency/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 08:03:31 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/throughput-vs-latency/</guid>
		<description><![CDATA[When/if I am asked to conduct interviews again for potential performance test analysts, I think I will include this question in my repertoire to suss out those in the know, and those just, um, pretending &#8230;
Here is a great analogy of throughput and latency. I don&#8217;t pretend to understand queuing theory (just yet), but am [...]]]></description>
			<content:encoded><![CDATA[<p>When/if I am asked to conduct interviews again for potential performance test analysts, I think I will include this question in my repertoire to suss out those in the know, and those just, um, pretending &#8230;</p>
<p>Here is a great <a href="http://www.forsythesunsolutions.com/node/114">analogy of throughput and latency</a>. I don&#8217;t pretend to understand <a href="http://en.wikipedia.org/wiki/Queueing_theory"><strong>queuing theory</strong></a> (just yet), but am working on it <img src='http://90kts.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/throughput-vs-latency/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FireWatir 1.2.1 is released</title>
		<link>http://90kts.com/blog/2008/firewatir-121-is-released/</link>
		<comments>http://90kts.com/blog/2008/firewatir-121-is-released/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 00:03:37 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/firewatir-121-is-released/</guid>
		<description><![CDATA[A new version of FireWatir has been released. This includes some fixes related to Firefox 3 but more importantly, it marks the merger of FireWatir and Watir projects, allowing for tighter coupling of methods and functionality between the two, allowing you to write less code =)
To use FireWatir, you will have to install a Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of FireWatir has been released. This includes some fixes related to Firefox 3 but more importantly, it <strong>marks the merger of FireWatir and Watir</strong> projects, allowing for tighter coupling of methods and functionality between the two, allowing you to write less code =)</p>
<p>To use FireWatir, you will have to install a Firefox plugin that enables use of a JavaScript Shell (jssh). FireWatir works on Windows, Mac and Linux.<br />
Install FireWatir: <code>[sudo] gem install FireWatir</code><br />
Install Plugin: <a href="http://wiki.openqa.org/display/WTR/FireWatir">http://wiki.openqa.org/display/WTR/FireWatir</a></p>
<p>I will be using FireWatir on my mac for impromptu testing, since more recently I&#8217;ve found it beneficial to write automated test cases to provide consistent input when recording load test scenarios in JMeter or LoadRunner. For those interested in even more x-browser support, check out SafariWatir as well: <a href="http://safariwatir.rubyforge.org/">http://safariwatir.rubyforge.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/firewatir-121-is-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A New Project: just_add_watir</title>
		<link>http://90kts.com/blog/2008/a-new-project-just_add_watir/</link>
		<comments>http://90kts.com/blog/2008/a-new-project-just_add_watir/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 23:19:31 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/a-new-project-just_add_watir/</guid>
		<description><![CDATA[In an effort to get more actively involved with the open source community, I&#8217;ve recently starting working with another colleague on a new site called justaddwatir.com. This is an exciting collaboration of examples for web application testing in ruby (watir - pronounced &#8220;water&#8221;). 
Watir is a simple open-source library for automating web browsers. It allows [...]]]></description>
			<content:encoded><![CDATA[<p>In an effort to get more actively involved with the open source community, I&#8217;ve recently starting working with another colleague on a new site called <a href="http://justaddwatir.com"><strong>justaddwatir.com</strong></a>. This is an exciting collaboration of examples for web application testing in ruby (watir - pronounced &#8220;water&#8221;). </p>
<blockquote><p>Watir is a simple open-source library for automating web browsers. It allows you to write tests that are easy to read and easy to maintain. It is optimized for simplicity and flexibility. Watir drives browsers the same way people do. It clicks links, fills in forms, presses buttons. Watir also checks results, such as whether expected text appears on the page.</p></blockquote>
<p>Its main purpose will be to serve as a working repository of examples that answer questions newcomers have when scripting in watir. Its secondary purpose is to act as an extended regression suite of more applied test cases, which with the blessing of the lead developers of watir (<a href="http://www.pettichord.com/">Brett Pettichord</a>) will help test future releases of watir. A working code base of unit tests is being maintained at <a href="http://code.google.com/p/justaddwatir/">http://code.google.com/p/justaddwatir/</a></p>
<p>If you&#8217;d like to get involved in the project or you have a blog about watir which you&#8217;d like to be aggregated, please send an email to tim.koops at gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/a-new-project-just_add_watir/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why do I get an &#8220;Error 501/505 - Not implemented or not supported&#8221; in JMeter?</title>
		<link>http://90kts.com/blog/2008/why-do-i-get-an-error-501505-not-implemented-or-not-supported-in-jmeter/</link>
		<comments>http://90kts.com/blog/2008/why-do-i-get-an-error-501505-not-implemented-or-not-supported-in-jmeter/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:51:49 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/why-do-i-get-an-error-501505-not-implemented-or-not-supported-in-jmeter/</guid>
		<description><![CDATA[This is most likely because the JMeter recording proxy does not support the https protocol. If it&#8217;s a screen you can live without, you can just stop/start the proxy recorder around that page (I use the Firefox plugin called FoxyProxy to quickly switch between different proxy configurations).
However, if it is vital to your script (for [...]]]></description>
			<content:encoded><![CDATA[<p>This is most likely because the JMeter recording proxy does not support the https protocol. If it&#8217;s a screen you can live without, you can just stop/start the proxy recorder around that page (I use the Firefox plugin called <a href="http://foxyproxy.mozdev.org/downloads.html"><strong>FoxyProxy</strong></a> to quickly switch between different proxy configurations).</p>
<p>However, if it is vital to your script (for example, a login page) then you can use an alternative recording tool called <a href="http://www.badboy.com.au/"><strong>Badboy Software</strong></a>. I frequently use this to record HTTPS then export the test plan to JMeter. Alternatively you can manually create the HTTPS request sample yourself.</p>
<p>JMeter can run HTTPS request samplers, it just can&#8217;t record them using the native proxy recorder.</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/why-do-i-get-an-error-501505-not-implemented-or-not-supported-in-jmeter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Generate Random Alphas in LoadRunner</title>
		<link>http://90kts.com/blog/2008/how-to-generate-random-alphas-in-loadrunner/</link>
		<comments>http://90kts.com/blog/2008/how-to-generate-random-alphas-in-loadrunner/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:38:55 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[LoadRunner]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/how-to-generate-random-alphas-in-loadrunner/</guid>
		<description><![CDATA[Just a quick post for myself so I don&#8217;t forget&#8230; I needed to generate a random alpha for use in a LoadRunner web vuser script. The native LoadRunner parameters can do random numerics and date/times but I couldn&#8217;t find a way to generate only characters, as one might need to generate a random password for [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post for myself so I don&#8217;t forget&#8230; I needed to generate a random alpha for use in a LoadRunner web vuser script. The native LoadRunner parameters can do random numerics and date/times but I couldn&#8217;t find a way to generate only characters, as one might need to generate a random password for example.</p>
<p>So a quick hack to do it in C is as follows:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="c">random_alpha<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span><span style="color: #66cc66;">*</span> param_name, <span style="color: #993333;">int</span> length<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #993333;">char</span> buff<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;&quot;</span>;
  <span style="color: #993333;">int</span> r,i;
  <span style="color: #993333;">char</span> c;
  srand<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span><span style="color: #66cc66;">&#41;</span>time<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//Seed number for rand()</span>
  <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span>i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>; i &lt; length; i<span style="color: #66cc66;">++</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">// A-Z = 65-90 = rand() % 25 + 65</span>
    r <span style="color: #66cc66;">=</span> rand<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #cc66cc;">25</span> <span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">65</span>;
    c <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span><span style="color: #66cc66;">&#41;</span>r;
		buff<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">=</span> c;
    <span style="color: #000066;">printf</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;%c&quot;</span>, c<span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
  lr_save_string<span style="color: #66cc66;">&#40;</span>buff, param_name<span style="color: #66cc66;">&#41;</span>;
  <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>I keep that as part of my functions library (referenced in globals.h) and can call on it in a script using the following syntax.<br />
<code>random_alpha(char* param_name, int length)</code></p>
<p>Example:<br />
<code>random_alpha(&quot;advertiser_name_suffix&quot;, 4);</code></p>
<p>Returns:<br />
<code>Notify: Saving Parameter &quot;advertiser_name_suffix = SDNG&quot;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/how-to-generate-random-alphas-in-loadrunner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JMeter Tips and Tricks - Correlating with Regular Expressions</title>
		<link>http://90kts.com/blog/2008/jmeter-tips-and-tricks-correlating-with-regular-expressions/</link>
		<comments>http://90kts.com/blog/2008/jmeter-tips-and-tricks-correlating-with-regular-expressions/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 01:02:05 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/jmeter-tips-and-tricks-correlating-with-regular-expressions/</guid>
		<description><![CDATA[Another post in this current theme of JMeter tips and tricks&#8230; You will hear LoadRunner consultants preaching to the converted about the requirement to correlate data accurately. What they&#8217;re referring to, is making sure that dynamic data received by the client from the server (typically in a response body, header or url), which changes from [...]]]></description>
			<content:encoded><![CDATA[<p>Another post in this current theme of JMeter tips and tricks&#8230; You will hear LoadRunner consultants preaching to the converted about the requirement to correlate data accurately. What they&#8217;re referring to, is making sure that dynamic data received by the client from the server (typically in a response body, header or url), which changes from request to request, is accurately correlated. If you don&#8217;t, you will probably &#8216;break&#8217; the application logic with most obvious signs during replay being things like HTTP Server 500 errors.</p>
<p>In practice, correlation requirements relate to things like session ids, viewstate, cookies, date time stamps and other transactional information. So more often than not you will see this data changing following a post back or response from the server. With the introduction of AJAX calls, correlation requirements probably increase (per page) as the number of transactional requests probably increases as well.</p>
<p>In LoadRunner, you typically correlate data manually using the web_reg_save_param function. This in effect is a prepared statement, placed before the request that will return the data in the response you are looking for. For example, your function will specify a left and right boundary of the data that it is looking for before you make the request. Then the request is made and if a match is found, then the data is saved in a parameter which you can later call as a variable in subsequent requests. LoadRunner also has a feature called Correlation Studio which takes affect during recording of your script, using a similar approach (left and right boundaries) and then dynamically swapping corresponding matches with the variabilzed data. All this is quite painful though, and whenever I&#8217;m specifying primitive left and right boundaries or using the flaky Correlation Studio (I can explain if you like), I&#8217;m left wishing I could just use regular expressions &#8230;</p>
<p>The trick to correlating data easily with JMeter is to first know what data it is that needs correlating! (duh&#8230;) Experience will make this easier as a lot of common web apps have common dynamic data requirements as already mentioned. Another trick is to <strong>always</strong> record the script twice (and diff to see differences between unique user sessions), then <strong>more often than not</strong> record 2+ iterations of an action within a single script (and diff to see differences between user transactions/actions). If you do this before anything else, and diff the results, you will save bucketloads of heartache in getting your script harnesses running, no matter which tool you choose.</p>
<p>But back to JMeter, once you do know what data you need to correlate, simply create a Post Processor -> Regular Expression Extractor to &#8216;variablize&#8217; that data. Huh? Read on for a more detailed explanation of this.<br />
 <a href="http://90kts.com/blog/2008/jmeter-tips-and-tricks-correlating-with-regular-expressions/#more-189" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/jmeter-tips-and-tricks-correlating-with-regular-expressions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JMeter Tips and Tricks - Better (More Pretty) Graphs</title>
		<link>http://90kts.com/blog/2008/jmeter-tips-and-tricks-better-more-pretty-graphs/</link>
		<comments>http://90kts.com/blog/2008/jmeter-tips-and-tricks-better-more-pretty-graphs/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:58:07 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/jmeter-tips-and-tricks-better-more-pretty-graphs/</guid>
		<description><![CDATA[This plugin has been around for a while and it&#8217;s definitely worth including in your JMeter library if you want to go for a glossy finish! The  StatAggVisualizer will transform your graphs
from this to this
If you roll-up your transactions into separate transaction controllers as I demonstrated in a previous post, you will get useful [...]]]></description>
			<content:encoded><![CDATA[<p>This <strong><a href="http://rubenlaguna.com/wp/better-jmeter-graphs/">plugin</a></strong> has been around for a while and it&#8217;s definitely worth including in your JMeter library if you want to go for a glossy finish! The  <strong><a href="http://rubenlaguna.com/wp/wp-content/uploads/2007/01/stataggvisualizer.zip">StatAggVisualizer</a></strong> will transform your graphs<br />
from this<a href='http://90kts.com/blog/wp-content/uploads/2008/07/old_graph.png' title='old_graph.png'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/old_graph.thumbnail.png' alt='old_graph.png' /></a> to this<a href='http://90kts.com/blog/wp-content/uploads/2008/07/new_graph.png' title='new_graph.png'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/new_graph.thumbnail.png' alt='new_graph.png' /></a></p>
<p>If you roll-up your transactions into separate transaction controllers as I demonstrated in a <a href="http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/">previous post</a>, you will get useful summary views for all your transactions:<br />
<a href='http://90kts.com/blog/wp-content/uploads/2008/07/transaction_summary.png' title='transaction_summary.png'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/transaction_summary.png' alt='transaction_summary.png' /></a></p>
<p>Alternatively, drop a stat agg visualizer listener under a single controller to get a graph for a single transaction, useful if clients are only interested in certain transactions.<br />
<a href='http://90kts.com/blog/wp-content/uploads/2008/07/stat_add_individual.png' title='stat_add_individual.png'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/stat_add_individual.png' alt='stat_add_individual.png' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/jmeter-tips-and-tricks-better-more-pretty-graphs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HttpWatch, a Free Alternative Using Ruby</title>
		<link>http://90kts.com/blog/2008/httpwatch-a-free-alternative-using-ruby/</link>
		<comments>http://90kts.com/blog/2008/httpwatch-a-free-alternative-using-ruby/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 00:21:01 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[OSX]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/httpwatch-a-free-alternative-using-ruby/</guid>
		<description><![CDATA[When performance testing I often need to spy on TCP (http) traffic between the client and server on a frequent basis. This is pretty much a staple of any performance test script development effort.
In the past I&#8217;ve relied heavily on trace options within LoadRunner and the like, but often find this a tad cumbersome. LiveHTTPHeaders [...]]]></description>
			<content:encoded><![CDATA[<p>When performance testing I often need to spy on TCP (http) traffic between the client and server on a frequent basis. This is pretty much a staple of any performance test script development effort.</p>
<p>In the past I&#8217;ve relied heavily on trace options within LoadRunner and the like, but often find this a tad cumbersome. <a href="http://livehttpheaders.mozdev.org/">LiveHTTPHeaders</a> is a great plugin for Firefox but it only captures header information. <a href="http://www.wireshark.org/">WireShark</a> is great if you need to &#8216;go deep&#8217;, but often equates to opening a walnut with a sledgehammer. <a href="http://www.getfirebug.com/">FireBug</a> and <a href="http://www.microsoft.com/downloadS/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&#038;displaylang=en">IE Developer Toolbar</a> are great to see what&#8217;s happening on a page-by-page basis. <a href="http://www.tcpdump.org/">TCPdump</a> is great if I&#8217;m on a <a href="http://docs.info.apple.com/article.html?artnum=107952">Mac</a> or Linux box, but it can be tricky parsing binary data. In any case most client sites are windows based for me.</p>
<p>So that&#8217;s a great list of tools to help you correlate and sniff out dynamic data, but the closest I&#8217;ve found for IE to doing what I want, that is, capturing all HTTP data going back and forth with the ability to filter for specific information from a console/command line is <a href="http://httpwatch.com/">HttpWatch</a>. A $295USD price tag / crippled basic (free) edition really forced me down this path&#8230;to roll my own HttpWatch using Ruby and the WEBBrick proxy.</p>
<p>Read on for a description of the code.<br />
 <a href="http://90kts.com/blog/2008/httpwatch-a-free-alternative-using-ruby/#more-181" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/httpwatch-a-free-alternative-using-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NumbrCrunchr - Performance Monitoring Using Sparklines</title>
		<link>http://90kts.com/blog/2008/numbrcrunchr-performance-monitoring-using-sparklines/</link>
		<comments>http://90kts.com/blog/2008/numbrcrunchr-performance-monitoring-using-sparklines/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 08:00:01 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Statistics]]></category>

		<category><![CDATA[Analysis]]></category>

		<category><![CDATA[Tuning]]></category>

		<category><![CDATA[SiteScope]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/numbrcrunchr-performance-monitoring-using-sparklines/</guid>
		<description><![CDATA[I&#8217;ve been working on a light weight performance monitoring solution which can be hosted on a LAMP (or WAMP, or OSX =) installation and uses the Google chart API to present data. Data is populated by custom Ruby scripts that either use ssh or perfmon (typeperf) to collect performance metrics from remote Unix and Windows [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a light weight performance monitoring solution which can be hosted on a LAMP (or WAMP, or OSX =) installation and uses the <strong><a href="http://code.google.com/apis/chart/">Google chart API</a></strong> to present data. Data is populated by custom Ruby scripts that either use ssh or perfmon (typeperf) to collect performance metrics from remote Unix and Windows machines.</p>
<p>The intent is to keep the data collection process detailed enough but simple. Presentation of the collected data then uses the API to present charts in a <a href="http://en.wikipedia.org/wiki/Sparkline"><strong>sparkline</strong></a> format.</p>
<blockquote><p>Sparkline is a type of information graphics, that presents in a simple and condensed way trends and variation, associated with a measurement such as average temperature or stock market activity. These are often used as elements of a small multiple with several lines used together.</p>
<p>The Sparkline is proposed by Edward Tufte for &#8220;small, high resolution graphics embedded in a context of words, numbers, images&#8221; Tufte describes sparklines as &#8220;data-intense, design-simple, word-sized graphics&#8221;. Sparklines are intended to be succinct, memorable, and located where they are discussed.</p></blockquote>
<p>The finished product looks like this:<br />
<a href='http://90kts.com/blog/wp-content/uploads/2008/07/numbrcrunchr.png' title='NumbrCrunchr'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/numbrcrunchr.png' alt='NumbrCrunchr' /></a></p>
<p>Other functionality includes the ability to automatically &#8216;band&#8217; expected data ranges for each metric collected, using a 30 day (customizable) sample that shows the 20 - 80th percentile. This should offer some insight into trends, and leverage off the sparkline format in being able to quickly assess a large range of metrics or performance data.</p>
<p>There&#8217;s also a SiteScope plugin, or in fact an emulator, so that if you&#8217;re still using LoadRunner you will be able to dip into the same metrics collected by NumbrCrunchr in a similar fashion to SiteScope with minimal configuration changes.</p>
<p>I&#8217;ve decided to go open source with this project in the interests of improving and continually updating its capabilities. If you&#8217;d like to contribute to the source please go to the <a href="http://code.google.com/p/numbrcrunchr/"><strong>project</strong></a> for more information. If you&#8217;d just like to see a quick demo, please go to <strong><a href="http://numbrcrunchr.com/">NumbrCrunchr.com</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/numbrcrunchr-performance-monitoring-using-sparklines/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Job Interview Question #11 - Summing Numbers</title>
		<link>http://90kts.com/blog/2008/job-interview-question-11-summing-numbers/</link>
		<comments>http://90kts.com/blog/2008/job-interview-question-11-summing-numbers/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 07:07:49 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/job-interview-question-11-summing-numbers/</guid>
		<description><![CDATA[I&#8217;ve recently started following a blog which sets weekly programming challenges. I&#8217;m getting sick of Nintendo DS brain training and thought I&#8217;d try something more relevant to my line of work. Also, this gives me a good opportunity to learn more about my favoured scripting language at present, which is Ruby. So this week&#8217;s challenge [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently started following a <strong><a href="http://www.dev102.com/misc/a-programming-job-interview-challenge-11-summing-numbers/">blog</a></strong> which sets weekly programming challenges. I&#8217;m getting sick of Nintendo DS brain training and thought I&#8217;d try something more relevant to my line of work. Also, this gives me a good opportunity to learn more about my favoured scripting language at present, which is Ruby. So this week&#8217;s challenge states:</p>
<blockquote><p>Given a list of n integers and another integer called m, determine (true / false) if there exist 2 numbers in that list which sum up to m.<br />
Example: 2,6,4,9,1,12,7 and m=14 -> 2 and 12 sum up to 14, so the answer is true.<br />
Provide the best algorithm in both manners: performance and memory to solve this puzzle. Don’t forget to mention the complexity of your solution!</p></blockquote>
<p>Read on for my thoughts in solving this challenge.<br />
 <a href="http://90kts.com/blog/2008/job-interview-question-11-summing-numbers/#more-177" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/job-interview-question-11-summing-numbers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JMeter Tips and Tricks - Application Simulation Models</title>
		<link>http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/</link>
		<comments>http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 10:50:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Testing]]></category>

		<category><![CDATA[JMeter]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/</guid>
		<description><![CDATA[I&#8217;ve been working with JMeter of late and after speaking with some people at conferences and the like, I thought it would be good to share what I&#8217;ve learned along the way in building, structuring and executing JMeter test plans.
One of the first things I like to do when performance testing is establish in reasonable [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with JMeter of late and after speaking with some people at conferences and the like, I thought it would be good to share what I&#8217;ve learned along the way in building, structuring and executing JMeter test plans.</p>
<p>One of the first things I like to do when performance testing is establish in reasonable detail what the Application Simulation Model (ASM) will entail. You can create an ASM visually using something like <a href="http://www.ibm.com/developerworks/rational/library/5219.html"><strong>UCML</strong></a>. This is a good starting point for performance testers looking to structure their test planning efforts.</p>
<blockquote><p>UCML™ is a set of symbols that can be used to create visual system usage models and depict associated parameters. When applied to Performance Testing these symbols can serve to represent the workload distributions, operational profiles, pivot tables, matrixes, and Markov chains that performance testers often employ to determine what activities are to be included in a test and with what frequency they&#8217;ll occur.</p></blockquote>
<p>More often than not though, I create an ASM using a spreadsheet format as I find this easiest to communicate with people from the business teams. If people are interested I will share some of the spreadsheet templates. The following screenshot gives you an idea of what I&#8217;m talking about:<br />
<a href='http://90kts.com/blog/wp-content/uploads/2008/07/asm.png' title='example asm'><img src='http://90kts.com/blog/wp-content/uploads/2008/07/asm.png' alt='example asm' /></a></p>
<p>The pertinent points for an ASM, is that it should:</p>
<li> describe the user community distibution in terms the amount of concurrent users and their daily/hourly profiles in terms of concurrent load.</li>
<p>e.g. &#8220;we have 3 user groups with a total of 150 users, 80% of them are helpdesk support, 10% are team leads and 10% are management&#8221;</p>
<li> describe transaction quantities and percentage distibutions. </li>
<p>e.g. &#8220;we&#8217;re aiming for around 240 trans/hour, of which 50% are searches, 25% are updates and 25% are reports&#8221;</p>
<p>Read on to discover how to turn ASMs into working JMeter test plans.<br />
 <a href="http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/#more-170" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/jmeter-tips-and-tricks-application-simulation-models/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just Another Framework - for developing watir test cases</title>
		<link>http://90kts.com/blog/2008/just-another-framework-for-developing-watir-test-cases/</link>
		<comments>http://90kts.com/blog/2008/just-another-framework-for-developing-watir-test-cases/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 11:19:19 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Automation]]></category>

		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/just-another-framework-for-developing-watir-test-cases/</guid>
		<description><![CDATA[Recently I attended Railscamp 08 in Sydney Australia for a weekend of code, beer and bzflag. For my &#8216;project&#8217; I decided on brushing up my my Ruby skills and constructing a simple framework from which I could structure watir test cases.
Specifically I wanted to achieve the following:
Create some form of script that could &#8216;learn&#8217; objects [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I attended Railscamp 08 in Sydney Australia for a weekend of code, beer and bzflag. For my &#8216;project&#8217; I decided on brushing up my my Ruby skills and constructing a simple framework from which I could structure watir test cases.</p>
<p>Specifically I wanted to achieve the following:</p>
<li>Create some form of script that could &#8216;learn&#8217; objects from the application under test, minimizing the amount of code I would have to write for tests (using reflection) and providing a mechanism to compare application changes between code releases.
</li>
<li>Pick a test framework to use as my test runner, for this I had two options in mind using TestUnit or RSpec.</li>
<li>Provide test set dynamic data using something *other* than Microsoft Excel.</li>
<p>To that end I was reasonably successful. The only limitation was that I only had my macbookpro with me and probably would have been shunned even if I attempted to load a windows XP virtual machine at a rails camp full of mac and linux geeks. So I chose FireWatir as my test platform running on my Mac, but am reasonably comfortable you can easily port this framework for use with Watir.</p>
<p>Now on with the framework contents &#8230;<br />
 <a href="http://90kts.com/blog/2008/just-another-framework-for-developing-watir-test-cases/#more-168" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/just-another-framework-for-developing-watir-test-cases/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Establishing Mysql DB Connectivity from Ruby</title>
		<link>http://90kts.com/blog/2008/establishing-mysql-db-connectivity-from-ruby/</link>
		<comments>http://90kts.com/blog/2008/establishing-mysql-db-connectivity-from-ruby/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 02:27:49 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/establishing-mysql-db-connectivity-from-ruby/</guid>
		<description><![CDATA[If you are a rails fan you will probably recommend using active record instead, but if you just want to hack away at your mysql db from within your Ruby code, you may find this handy&#8230;
I&#8217;m currently using a wamp box to serve up content for performance metrics. What I needed was a Ruby script [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a rails fan you will probably recommend using active record instead, but if you just want to hack away at your mysql db from within your Ruby code, you may find this handy&#8230;</p>
<p>I&#8217;m currently using a <strong><a href="http://en.wikipedia.org/wiki/WAMP">wamp</a></strong> box to serve up content for performance metrics. What I needed was a Ruby script which could interrogate data on this installation.</p>
<p>You can download the binary required for this from <a href="http://rubyforge.org/projects/mysql-win">here</a>. After you install the gem (I do this off-line as my command prompt doesn&#8217;t allow me internet access here at work) you may find that you get an error similar to the following:<br />
<code>&quot;NameError: uninitialized constant Mysql&quot;</code></p>
<p>See what&#8217;s happening?<br />
 <a href="http://90kts.com/blog/2008/establishing-mysql-db-connectivity-from-ruby/#more-166" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/establishing-mysql-db-connectivity-from-ruby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CITCON 2008 - Melbourne</title>
		<link>http://90kts.com/blog/2008/citcon-2008-melbourne/</link>
		<comments>http://90kts.com/blog/2008/citcon-2008-melbourne/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 00:33:11 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/citcon-2008-melbourne/</guid>
		<description><![CDATA[I recently attended the 2008 conference for Continuous Integration in Melbourne, and mixed with like minded professionals involved with all aspects of CI and testing in general. 
In short this is a great (free) opportunity to attend a conference using an open session format. By that I mean the conference is run/organized like a wiki, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently attended the 2008 conference for <strong><a href="http://www.citconf.com/wiki">Continuous Integration in Melbourne</a></strong>, and mixed with like minded professionals involved with all aspects of CI and testing in general. </p>
<p>In short this is a great (free) opportunity to attend a conference using an open session format. By that I mean the conference is run/organized like a wiki, where the attendees nominate topics they&#8217;d like to discuss or facilitate and then a user vote system organizes and makes it happen.</p>
<p>I avoided the performance testing oriented sessions and went for sessions that spoke about exploratory testing, defect management, benefits of test driven development, skills required for test automation and the last one titled &#8216;do we still need testers?&#8217; &#8230;</p>
<p>They all generated a healthy amount of discussion and it was great to hear other people&#8217;s experienced opinions on the subject matter. It was also a great opportunity to network, find out who&#8217;s working on similar problems in the local industry and from afar. There was a healthy interest in using JMeter as a performance test tool to support CI, so I&#8217;ll be posting some more targeted blogs about this in the near future, as well as some consolidated info on performance metrics collection (without SiteScope) which a few people were also interested in.</p>
<p>Anyway, if you haven&#8217;t heard about the conference, keep an eye out for next years version. It&#8217;s well worth the zero dollar commitment, free beer and t-shirt. All you have to do is &#8216;use your feet&#8217;.<br />
=)</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/citcon-2008-melbourne/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Diff&#8217;ing Made Easier</title>
		<link>http://90kts.com/blog/2008/diffing-made-easier/</link>
		<comments>http://90kts.com/blog/2008/diffing-made-easier/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 02:59:56 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/diffing-made-easier/</guid>
		<description><![CDATA[If diff -u or wdiff isn&#8217;t cutting it for your correlating requirements when scripting load harnesses, you might want to try daisydiff as an alternative &#8230;
    * Works with badly formed HTML that can be found &#8220;in the wild&#8221;.
    * The diffing is more specialized in HTML than XML [...]]]></description>
			<content:encoded><![CDATA[<p>If diff -u or wdiff isn&#8217;t cutting it for your correlating requirements when scripting load harnesses, you might want to try <a href="http://code.google.com/p/daisydiff/">daisydiff</a> as an alternative &#8230;<br />
<blockquote>    * Works with badly formed HTML that can be found &#8220;in the wild&#8221;.<br />
    * The diffing is more specialized in HTML than XML tree differs. Changing part of a text node will not cause the entire node to be changed.<br />
    * In addition to the default visual diff, HTML source can be diffed coherently.<br />
    * Provides easy to understand descriptions of the changes.<br />
    * Allow easy browsing of the modifications through keyboard shortcuts. </p></blockquote>
<p>Of late have been working with pesky AJAX controls inside a web-app, and one of my gripes with more traditional tools such as wdiff or diff, is that they don&#8217;t tell you *where* in the line the change has occurred. Read on for some hacky ways I&#8217;ve implemented <strong>daisydiff</strong> with LoadRunner and other open source tools in general &#8230;<br />
 <a href="http://90kts.com/blog/2008/diffing-made-easier/#more-159" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/diffing-made-easier/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RailsCamp 08</title>
		<link>http://90kts.com/blog/2008/railscamp-08/</link>
		<comments>http://90kts.com/blog/2008/railscamp-08/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 02:26:04 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/railscamp-08/</guid>
		<description><![CDATA[Went to the third RailsCamp held in a scout hall near Gosford NSW last weekend; my brain has just about got back to normal after 3 solid days of drinking and coding =)
RailsCamp is a get together of mostly Rails developers, but also a fairly eclectic mix of Ruby hackers and geeks in general. 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Went to the third RailsCamp held in a scout hall near Gosford NSW last weekend; my brain has just about got back to normal after 3 solid days of drinking and coding =)</p>
<p><a href="http://wiki.railscamp.net/w/show/HomePage">RailsCamp</a> is a get together of mostly Rails developers, but also a fairly eclectic mix of Ruby hackers and geeks in general. 3 nights of drinking, camping and coding with NO internet. Possibly the hardest habit to kick is to stop checking for emails every 5 minutes.</p>
<p>For those with harder to kick habits such as Twittering, there was a &#8216;Twetter&#8217; clone amongst other cool apps such as the &#8216;Duke&#8217;. The Duke was a user vote playlist driver for winamp (I think) and I got to observe just how close the geek community is when it comes to music tastes. Daft Punk was on fairly high rotation. Of mention was the first time we got <a href="http://en.wikipedia.org/wiki/Never_Gonna_Give_You_Up">Rick Rolled</a>, which then led to a flurry of hack attempts at the guy hosting it on his Mac.</p>
<p>Guitar Hero was in force, as was Urban Terror and a touch of BZFlag. Nice.</p>
<p>Accommodation, setup and food was awesome, the organisers really did do a good job in getting this together. Big thanks to those guys! Perhaps the best part was the ability to network with like-minded people and discuss all things related to Ruby or Rails in a collaborative manner. I managed to get a little work done relating to a test framework for use with FireWatir which I&#8217;ll post later.</p>
<p>IF you didn&#8217;t or couldn&#8217;t make it, keep an eye out for the next one to occur. Definitely worth the $100 to nerd on for a full weekend &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/railscamp-08/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Firewatir on Mac OSX</title>
		<link>http://90kts.com/blog/2008/installing-firewatir-on-mac-osx/</link>
		<comments>http://90kts.com/blog/2008/installing-firewatir-on-mac-osx/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 08:14:50 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Automation]]></category>

		<category><![CDATA[watir]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/installing-firewatir-on-mac-osx/</guid>
		<description><![CDATA[By now you&#8217;ve probably heard of watir or Web Application Testing In Ruby, a great automation framework which supports Microsoft Internet Explorer, and recently came in at number 3 as a popular oss tool on this blog.
I&#8217;ve been using this tool mostly from a windows box, and knew of the firefox equivalent, aptly named &#8216;Firewatir&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>By now you&#8217;ve probably heard of <a href="http://wtr.rubyforge.org/">watir</a> or Web Application Testing In Ruby, a great automation framework which supports Microsoft Internet Explorer, and recently came in at number 3 as a popular oss tool on this <a href="http://www.opensourcetesting.org/survey.php">blog</a>.</p>
<p>I&#8217;ve been using this tool mostly from a windows box, and knew of the firefox equivalent, aptly named &#8216;Firewatir&#8217; which is currently a Google code <a href="http://code.google.com/p/firewatir/">project</a>. The beauty of this version, is that it allows you as a tester to explore functionality on your favourite platform for development, as I like to leave windows at work, and take OSX with me on the train. </p>
<p>Read on for some simple instructions in getting this running on your Macbook Pro &#8230;<br />
 <a href="http://90kts.com/blog/2008/installing-firewatir-on-mac-osx/#more-155" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/installing-firewatir-on-mac-osx/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using SFTP with LoadRunner Java Vusers</title>
		<link>http://90kts.com/blog/2008/using-sftp-with-loadrunner-java-vusers/</link>
		<comments>http://90kts.com/blog/2008/using-sftp-with-loadrunner-java-vusers/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 04:12:14 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
		
		<category><![CDATA[LoadRunner]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://90kts.com/blog/2008/using-sftp-with-loadrunner-java-vusers/</guid>
		<description><![CDATA[Recently had a requirement to construct a LoadRunner harness that could sftp files (over ssh) to and from remote servers. As some of the harnesses were already written in Java (for loading of JMS queues) it made sense to use a Java Vuser to achieve the result required.
A work colleague found a knowledge base reference [...]]]></description>
			<content:encoded><![CDATA[<p>Recently had a requirement to construct a LoadRunner harness that could sftp files (over ssh) to and from remote servers. As some of the harnesses were already written in Java (for loading of JMS queues) it made sense to use a Java Vuser to achieve the result required.</p>
<p>A work colleague found a knowledge base reference that recommended using an RTE Vuser for secure FTP recording and replay. Document ID 41820 refers. I don&#8217;t know, but that seemed like a <a href="http://en.wikipedia.org/wiki/Kludge">kludge</a> to me, and I wasn&#8217;t keen on a multi-protocol harness, so we went searching on Google for a Java alternative.<br />
 <a href="http://90kts.com/blog/2008/using-sftp-with-loadrunner-java-vusers/#more-152" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://90kts.com/blog/2008/using-sftp-with-loadrunner-java-vusers/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
