<?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>No One Is Perfect &#187; NIO</title>
	<atom:link href="http://watchitlater.com/blog/tag/nio/feed/" rel="self" type="application/rss+xml" />
	<link>http://watchitlater.com/blog</link>
	<description>A reluctant foray into the world of blogging.</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:32:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Thumper &#8211; web application performance testing</title>
		<link>http://watchitlater.com/blog/2008/02/thumper-web-application-performance-testing/</link>
		<comments>http://watchitlater.com/blog/2008/02/thumper-web-application-performance-testing/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 01:22:20 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[My Code]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[BeautifulSoup]]></category>
		<category><![CDATA[event-driven]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NIO]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[Twisted]]></category>

		<guid isPermaLink="false">http://watchitlater.com/blog/archives/7</guid>
		<description><![CDATA[Over the years I&#8217;ve been involved with writing a number of web applications. Some I am proud of, some I never want to see again. During each project, testing of the application&#8217;s performance, stability under load, and regression testing of user journeys always comes up. There are a number of great bits of hardware (eg. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years I&#8217;ve been involved with writing a number of web applications. Some I am proud of, some I never want to see again. During each project, testing of the application&#8217;s performance, stability under load, and regression testing of user journeys always comes up.</p>
<p>There are a number of great bits of hardware (eg. <a href="http://www.spirentcom.com/enterprise/products/avalanche/a2500/default.asp">Avalanche</a>), and software (eg. <a href="http://grinder.sourceforge.net/">Grinder</a>) that help you test applications. I&#8217;ve even had a fun time using a room full of Grinder clients to test web services for a client &#8211; a great way to run a denial of service attack <img src='http://watchitlater.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>One of my pet peeves about most software tools, including Grinder, is that they are thread-based, so that if you want to simulate a specific number of concurrent users, you have to worry about the number of threads, processors (JVMs), and sleep periods. In addition, thread-based tools can suffer from blocked threads, where the tool fails to produce a load on the server if all of its client threads become blocked waiting on the server to respond, forcing you to worry about setting up and handling timeouts. What I really want is software tools that allow me to perform rate-based testing &#8211; fire off requests (or begin user journeys) at a constant rate (maybe with some random variation to simulate real world burstiness). Human beings don&#8217;t get blocked by threads.</p>
<p>Consequently, I have started a project on SourceForge called Thumper (<a href="http://sourceforge.net/projects/thumper">http://sourceforge.net/projects/thumper</a>) to provide a sandbox for the creation of testing tools using non-blocking or event-driven techniques. Right now, there&#8217;s a little bit of code there for a Java NIO client, and for a Python client using the <a href="http://twistedmatrix.com/trac/wiki">Twisted</a> framework for network events and <a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> to parse HTML responses. In the future I hope to add more code there in Java, Python, Ruby, Erlang, Haskell and other languages not yet born.</p>
<p>Ideas, discussions, patches and offers of help are always welcome. There&#8217;s got to be a better way to do this stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://watchitlater.com/blog/2008/02/thumper-web-application-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

